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
. :(Réponses:
Alors que l'autre réponse ici soulève certains points, vos problèmes spécifiques sont dus aux limitations de la plate-forme et à la configuration du système d'exploitation:
Votre débit est limité par l'utilisation de SSD SATA grand public sur un contrôleur RAID HP Smart Array P410 . Les disques SATA fonctionnent à 3,0 Gbit / s (3G) sur ces contrôleurs plutôt qu'à 6,0 Gbit / s (6 G). C'est donc une barrière qui affecte les vitesses de lecture de vos SSD Intel; 300 Mo / s ou moins par lecteur.
Le contrôleur Smart Array P410 a des exigences spécifiques et des meilleures pratiques lorsqu'il est utilisé avec des SSD. En bref, le contrôleur est capable de 50000 IOPS, désactivez l'accélérateur RAID pour votre volume SSD et les performances dépassent à ~ 6 disques.
Les performances du disque ne dépendent pas toujours de la vitesse de lecture / écriture séquentielle. Essayez l'analyse comparative avec un outil approprié comme iozone ou bonnie ++ . Vous bénéficiez toujours des avantages d'E / S aléatoires de vos multiples disques.
Au niveau du système d'exploitation, installez le package tuned-utils et définissez le profil pour
enterprise-performance
supprimer les barrières d'écriture de vos systèmes de fichiers et définir l'ascenseur d'E / S adapté à votre configuration. Ceci est également couvert dans d' autres questions .Il semble que vous utilisiez LVM. Cela peut aussi avoir un impact ...
Voici un rapport iozone pour un G7 ProLiant fonctionnant avec quatre SSD SATA 6G grand public (rétrogradés à des vitesses 3G) sur le même contrôleur RAID HP Smart Array P410.
Vous devriez voir environ 470 Mo / s d'écritures et 650 Mo / s + de lectures.
la source
Oh mon cher, par où commencer?
Il y a tellement de choses en jeu et vous avez besoin d'une bonne compréhension de tout. Le simple fait de lancer un tas de disques contre un contrôleur RAID ne donnera pas les résultats que vous recherchez.
Cela ne peut pas être facilement répondu. Mais au moins, voici une liste de choses que vous devez regarder:
Étant donné que votre débit par rapport à l'ensemble du RAID (sans tenir compte de FS) est nettement inférieur à celui d'un seul disque, il est probable que vous ayez mal configuré votre stratégie d'écriture; le contrôleur attend probablement que tous les disques confirment l'écriture (et à moins que la RAM de la batterie du contrôleur ne soit sauvegardée, cela pourrait être dans votre meilleur intérêt).
la source