Eu tenho servidor dedicado com 3 discos rígidos. Disco do sistema, disco de backup (igual ao disco do sistema) e disco de dados. Quando copio muitos dados com o cp (digamos, entre o disco de backup e o disco de dados), a média de carregamento fica muito alta.
Por exemplo, a média de carga no momento é de cerca de 0,57, quando a cópia de dados pode ir além de 50 ou mais.
Copiar com rsync and with --bwlimit=10000
não tem problema. Valores mais altos causam alta carga.
O sistema de arquivos é ext3.
sda - disco do sistema:
% hdparm -Tt /dev/sda
/dev/sda:
Timing cached reads: 13444 MB in 2.00 seconds = 6730.82 MB/sec
Timing buffered disk reads: 232 MB in 3.02 seconds = 76.73 MB/sec
sdb - disco de dados:
% hdparm -Tt /dev/sdb
/dev/sdb:
Timing cached reads: 13740 MB in 2.00 seconds = 6879.30 MB/sec
Timing buffered disk reads: 430 MB in 3.00 seconds = 143.10 MB/sec
sdc - disco de backup:
% hdparm -Tt /dev/sdc
/dev/sdc:
Timing cached reads: 13796 MB in 2.00 seconds = 6907.75 MB/sec
Timing buffered disk reads: 336 MB in 3.01 seconds = 111.45 MB/sec
iostat -x 1 (quando não está copiando):
link
iostat -x 1 (ao copiar: sdc > sdb):
link
% cat /sys/block/sda/queue/scheduler
noop anticipatory deadline [cfq]
Outros dois discos são "deadline" agora, mas eram "cfq" também. Apenas tentei ver se haveria alguma diferença. Não há.
Quaisquer operações mais intensivas em disco estão matando o servidor. Se algum processo usa mais memória e há necessidade de troca, a carga é muito alta. Às vezes eu tenho que matar algum serviço para que a carga caia. Houve momentos em que a carga foi para 500 por causa da troca.
O servidor tem 4 GB de RAM e o Xeon X3220 a 2.40 GHz. Eu posso aceitar um desempenho ruim quando não há RAM suficiente, mas apenas copiar não deve matar o servidor. Isso simplesmente não parece certo.
Alguma ideia do que poderia ser o problema? O que mais devo verificar? Poderia ser um controlador ruim da placa-mãe?
Adicionado:
% fdisk -l
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 13 104391 83 Linux
/dev/sda2 14 1318 10482412+ 83 Linux
/dev/sda3 1319 2623 10482412+ 83 Linux
/dev/sda4 2624 60801 467314785 5 Extended
/dev/sda5 2624 3928 10482381 83 Linux
/dev/sda6 3929 4189 2096451 82 Linux swap / Solaris
/dev/sda7 4190 60670 453683601 83 Linux
/dev/sda8 60671 60801 1052226 83 Linux
Disk /dev/sdb: 2000.3 GB, 2000398934016 bytes
255 heads, 63 sectors/track, 243201 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdb1 1 243201 1953512001 83 Linux
Disk /dev/sdc: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Device Boot Start End Blocks Id System
/dev/sdc1 * 1 60801 488384001 83 Linux
% cat / proc / scsi / scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: ATA Model: WDC WD5002ABYS-0 Rev: 02.0
Type: Direct-Access ANSI SCSI revision: 05
Host: scsi0 Channel: 00 Id: 01 Lun: 00
Vendor: ATA Model: WDC WD2003FYYS-0 Rev: 01.0
Type: Direct-Access ANSI SCSI revision: 05
Host: scsi1 Channel: 00 Id: 00 Lun: 00
Vendor: ATA Model: WDC WD5002ABYS-0 Rev: 02.0
Type: Direct-Access ANSI SCSI revision: 05