J'exécute Ubuntu Server 11.04 (amd64) sur une machine équipée d'un processeur dual-core de 1,6 GHz, de 4 Go de RAM et de 2 disques SATA 7200 de 250 Go (tous deux de 3,0 Gb/s et récemment formatés à partir d'une nouvelle installation). Lorsque je transfère des fichiers relativement petits (~100MB) entre les deux disques, j'obtiens des taux de transfert qui sont (meilleurs) que prévus, dans la gamme 300-350MB/sec. Cependant, le transfert d'un fichier de 500 Mo atteint environ 50 Mo/sec, tandis qu'un fichier de 1 Go atteint environ 25 Mo/sec.
Voici quelques tests que j'ai effectués et qui montrent ce comportement :
/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
Enfin, en exécutant la commande pv < /disk1/output-large.dat > /disk2/test.dat
Je constate d'abord d'excellentes vitesses de transfert, puis le taux chute dans la fourchette de 1 à 10 Mo/sec, avec des sauts périodiques (beaucoup) plus élevés. Je sais que ce n'est pas une mesure particulièrement utile des performances du disque puisque je passe par le pv, mais c'est une performance cohérente avec mes autres tests.
J'ai quelques questions :
- Pourquoi la vitesse de transfert diminue-t-elle avec les gros fichiers ? Ne devrait-elle pas augmenter ?
- Quelles vitesses dois-je m'attendre à voir avec ce type de configuration ?
- Le temps passé (vraisemblablement) à attendre des entrées/sorties (de
time
,real
-sys
) me semble suspicieusement élevé. C'est le cas ?