Estou executando um Ubuntu Server 11.04 (amd64) em uma máquina com unidades de CPU dual-core de 1,6 GHz, 4 GB de RAM e 7200 SATA de 2 GB (ambas de 3,0 Gb / se recém-formatadas de uma nova instalação). Quando transfiro arquivos relativamente pequenos (~ 100MB) entre as duas unidades, obtenho taxas de transferência que são (melhor) que o esperado, na faixa de 300-350MB / s. No entanto, a transferência de um arquivo de 500MB atinge cerca de 50MB / seg, enquanto um arquivo de 1GB atinge cerca de 25MB / seg.
Aqui estão alguns testes que eu executei para mostrar esse comportamento:
/disk1 $ dd if=/dev/zero of=output-small.dat bs=1M count=128
bytes (134 MB) copied, 0.388619 s, 345 MB/s
/disk1 $ dd if=/dev/zero of=output-med.dat bs=1M count=500
524288000 bytes (524 MB) copied, 20.0151 s, 26.2 MB/s
/disk1 $ dd if=/dev/zero of=output-large.dat bs=1M count=1000
1048576000 bytes (1.0 GB) copied, 45.7304 s, 22.9 MB/s
/disk2 $ dd if=/dev/zero of=output-small.dat bs=1M count=128
134217728 bytes (134 MB) copied, 0.372266 s, 361 MB/s
/disk2 $ dd if=/dev/zero of=output-med.dat bs=1M count=500
524288000 bytes (524 MB) copied, 10.0856 s, 52.0 MB/s
/disk2 $ dd if=/dev/zero of=output-large.dat bs=1M count=1000
1048576000 bytes (1.0 GB) copied, 37.1851 s, 28.2 MB/s
$ time cp /disk1/output-small.dat /disk2/test-small.dat
real 0m0.532s
user 0m0.000s
sys 0m0.410s
$ time cp output-med.dat /playpen/test-med.dat
real 0m30.879s
user 0m0.010s
sys 0m3.740s
$ time cp /disk1/output-large.dat /disk2/test-large.dat
real 0m26.643s
user 0m0.010s
sys 0m3.390s
Por fim, ao executar o comando pv < /disk1/output-large.dat > /disk2/test.dat
, vejo inicialmente excelentes velocidades de transferência, mas a taxa cai para o intervalo de 1 a 10 MB / s, saltando periodicamente (muito) mais alto. Eu sei que esta não é uma medida particularmente útil do desempenho do disco, já que estou passando por pv, mas é um desempenho consistente com meus outros testes.
Eu tenho algumas perguntas:
- O que poderia fazer com que minhas velocidades de transferência diminuíssem com arquivos maiores? Não deveria estar aumentando?
- Que velocidades devo esperar para ver com esse tipo de configuração?
- O tempo gasto (presumivelmente) esperando no IO (de
time
, real
- sys
) parece suspeitamente alto para mim. É?