Explication:
Nous avons un serveur:
- Modèle: HP ProLiant DL160 G6
- 4 disques SSD de 240 Go (RAID-10)
- 72 Go de RAM DDR3
- 2 x L5639
- Contrôleur RAID HP P410 (256 Mo, V6.40, version Rom: 8.40.41.00)
Les disques SSD sont 4 tout nouveaux Intel 530 de 2,5 pouces avec une vitesse de lecture de 540 Mo / s et une vitesse d'écriture de 490 Mo / s
- CentOS 6
- Les systèmes de fichiers sont ext4
mais voici le résultat du test de vitesse de lecture lors du raid 10:
hdparm -t /dev/sda
/dev/sda:
Timing buffered disk reads: 824 MB in 3.00 seconds = 274.50 MB/sec
[root@localhost ~]# hdparm -t /dev/mapper/vg_localhost-lv_root
/dev/mapper/vg_localhost-lv_root:
Timing buffered disk reads: 800 MB in 3.01 seconds = 266.19 MB/sec
et c'est pour la vitesse d'écriture:
dd bs=1M count=512 if=/dev/zero of=test conv=fdatasync
512+0 records in
512+0 records out
536870912 bytes (537 MB) copied, 4.91077 s, 109 MB/s
nous espérions une vitesse de lecture de 1 Go avec le raid 10, mais 270 Mo ne sont même pas la vitesse d'un seul disque!
Des questions:
- Pourquoi est-ce si lent?
- Est-ce à cause du contrôleur RAID?
Mise à jour 1 - Même vitesse de lecture / écriture:
Après avoir modifié certains paramètres comme mentionné dans les réponses, j'ai le résultat ci-dessous:
(Quelqu'un sait pourquoi il affiche 4 Go au lieu de 400 Mo comme vitesse de lecture?!)
EDIT: il semble que la commande était erronée et nous aurions dû utiliser -s144g pour cette quantité de RAM, c'est pourquoi elle affiche 4 Go (comme suggéré dans les commentaires par ewwhite)
[root@192 ~]# iozone -t1 -i0 -i1 -i2 -r1m -s56g
Iozone: Performance Test of File I/O
Version $Revision: 3.408 $
Compiled for 64 bit mode.
Build: linux
Record Size 1024 KB
File size set to 58720256 KB
Command line used: iozone -t1 -i0 -i1 -i2 -r1m -s56g
Output is in Kbytes/sec
Each process writes a 58720256 Kbyte file in 1024 Kbyte records
Children see throughput for 1 initial writers = 135331.80 KB/sec
Children see throughput for 1 rewriters = 124085.66 KB/sec
Children see throughput for 1 readers = 4732046.50 KB/sec
Children see throughput for 1 re-readers = 4741508.00 KB/sec
Children see throughput for 1 random readers = 4590884.50 KB/sec
Children see throughput for 1 random writers = 124082.41 KB/sec
mais l'ancienne hdparm -t /dev/sda
commande affiche toujours:
Lectures du disque en mémoire tampon: 810 Mo en 3,00 secondes = 269,85 Mo / sec
Mise à jour 2 (pack tuned-utils) - La vitesse de lecture est désormais de 600 Mo / s:
Enfin un peu d'espoir, nous avons désactivé le cache du contrôleur de raid et avons fait d'autres choses plus tôt sans succès, mais parce que nous avons rechargé le serveur et réinstallé le système d'exploitation, nous avons oublié d'installer des "tuned-utils" comme suggéré dans la réponse d'ewwhite (merci ewwhite pour ce package génial que vous avez suggéré)
Après avoir installé tuned-utils
et choisi le enterprise-storage
profil, la vitesse de lecture est maintenant de ~ 600 Mo / s + mais la vitesse d'écriture est toujours très lente (~ 160 Mo) (:
Voici le résultat de la iozone -t1 -i0 -i1 -i2 -r1m -s144g
commande:
Children see throughput for 1 initial writers = 165331.80 KB/sec
Children see throughput for 1 rewriters = 115734.91 KB/sec
Children see throughput for 1 readers = 719323.81 KB/sec
Children see throughput for 1 re-readers = 732008.56 KB/sec
Children see throughput for 1 random readers = 549284.69 KB/sec
Children see throughput for 1 random writers = 116389.76 KB/sec
Même avec une hdparm -t /dev/sda
commande, nous avons:
Lectures du disque en mémoire tampon: 1802 Mo en 3,00 secondes = 600,37 Mo / sec
Des suggestions pour la vitesse d'écriture très lente?
Mise à jour 3 - Quelques informations demandées dans les commentaires:
La vitesse d'écriture est toujours très faible (~ 150 Mo / s, ce qui n'est même pas 1/3 d'un seul disque)
Sortie pour df -h
et fdisk -l
:
[root@192 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda1 441G 3.2G 415G 1% /
tmpfs 36G 0 36G 0% /dev/shm
[root@192 ~]# fdisk -l
Disk /dev/sda: 480.0 GB, 480047620096 bytes
255 heads, 63 sectors/track, 58362 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00040c3c
Device Boot Start End Blocks Id System
/dev/sda1 * 1 58363 468795392 83 Linux
iozone -t1 -i0 -i1 -i2 -r1m -s144g
. :(