Vitesse de lecture / écriture SSD (Intel 530) très lente avec RAID 10

11

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:

  1. Pourquoi est-ce si lent?
  2. 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/sdacommande 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-utilset choisi le enterprise-storageprofil, 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 -s144gcommande:

    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/sdacommande, 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 -het 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
Ara
la source
Pour ce test, vous devez probablement spécifier le double de la quantité de RAM installée sur le serveur.
ewwhite
Pouvez-vous nous dire la version du firmware de votre contrôleur Smart Array P410?
ewwhite
@ewwhite merci pour votre commentaire, la version du firmware est p410 (256 Mo, V6.40) et la version rom est 8.40.41.00, ma commande iozone était-elle incorrecte? Si oui, pourriez-vous me dire la bonne commande avec laquelle tester? parce que tout ce que j'essaye j'obtiens la vitesse de lecture en GB
Ara
Quelque chose ne va pas ici. Vous n'obtenez que ~ 122 Mo / s d'écritures. Les chiffres de 4 Go / s que vous voyez sont des opérations à partir du cache, donc votre chaîne de commande devrait ressembler iozone -t1 -i0 -i1 -i2 -r1m -s144g. :(
ewwhite
@ewwhite Merci beaucoup, la vitesse de lecture est maintenant très bonne (détaillée comme mise à jour 2 dans ma question), mais la vitesse d'écriture est très décevante, avez-vous des suggestions à ce sujet?
Ara

Réponses:

16

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-performancesupprimer 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.

[root@mdmarra /data/tmp]# iozone -t1 -i0 -i1 -i2 -r1m -s56g
        Iozone: Performance Test of File I/O
                Version $Revision: 3.394 $
                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  =  478209.81 KB/sec
        Children see throughput for  1 rewriters        =  478200.84 KB/sec
        Children see throughput for  1 readers          =  677397.69 KB/sec
        Children see throughput for 1 re-readers        =  679523.88 KB/sec
        Children see throughput for 1 random readers    =  437344.78 KB/sec
        Children see throughput for 1 random writers    =  486254.41 KB/sec
ewwhite
la source
Merci beaucoup, le modèle est "DL160 G6", oui, il y a un fond de panier impliqué :( je serais même heureux avec 600 Mo ici, mais 270 Mo est vraiment lent, ce que vous pensez que je devrais faire, le raid logiciel aide-t
Ara
2
D'accord, avec un DL160 G6, vous devriez avoir deux câbles allant du contrôleur RAID au fond de panier de disques ... 8 emplacements de disques. Votre problème ici est le débit du lecteur, votre méthodologie de test et les paramètres du serveur. Essayez les autres suggestions que j'ai énumérées dans ma réponse.
ewwhite
Un peu intéressant sur le P410 qui ne fait que la 3G sur SATA, et les meilleures pratiques spécifiques. Mod up. (LVM ne devrait cependant pas être un gros frappeur en termes d'impact négatif sur les performances, également noté ici: unix.stackexchange.com/questions/7122/… )
Roman
1
@Ara Il n'y a pas de contrôleur SATA 6G pour le ProLiant. C'est le but. Vos SSD ne fonctionneront qu'à la vitesse 3G sur cette plate-forme, sauf si vous utilisez des SSD SAS .
ewwhite
1
@Ara Software RAID impliquerait de se connecter à un autre contrôleur, comme un HBA SAS (par exemple le LSI 9211-8i) ... cela vous permettrait de voir la bande passante complète de vos disques, mais il existe d'autres facettes des performances SSD au-delà de la pure bande passante de lecture / écriture séquentielle.
ewwhite
12

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:

  • Le contrôleur a-t-il même le débit nécessaire? (-> Fiches techniques)
  • Le contrôleur a-t-il même suffisamment de bande passante pour l'hôte (il le fait, même à la version 1.0, car il est x8)
  • Le chipset du système a-t-il un débit suffisant (CPU-Controller)? (inconnue)
  • Quelle stratégie d'écriture avez-vous demandé au contrôleur d'utiliser? ( c'est ce qui vous a probablement le plus mordu )
  • Tout est-il aligné (Partition démarre, LV, PV)?
  • Les tailles de blocs sont-elles harmonisées? (Taille de bande RAID, taille de bloc, blocs FS, ...)
  • Le système de fichiers est-il optimisé pour la configuration RAID? (Niveau et taille de bloc)

É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).

romain
la source
C'est vraiment plus difficile que je ne le pensais, je pensais que c'était aussi simple que de mettre à niveau le RAM du contrôleur Raid à 512 Mo! , merci Roman, permettez-moi de vérifier une partie de ce que vous venez de dire en espérant trouver la raison
Ara
La plupart des stratégies ci-dessus sont des stratégies de dépannage valides pour les cas marginaux, mais ne s'appliquent pas aux spécificités de la configuration de l'affiche originale. Le contrôleur a ici le débit et la bande passante requis, le CPU est bien, le contrôleur RAID par défaut à 25:75 R / W cache ratio (devrait être entièrement désactivé pour une utilisation SSD), CentOS6 aligne correctement les partitions et il y a trop d'abstraction potentielle pour obtenir les tailles de blocs "harmonisées". Les trois problèmes sont les suivants: les disques 6G sont limités à des vitesses 3G, les barrières d'écriture du système de fichiers sont probablement activées et l'ascenseur d'E / S est le CFQ par défaut.
ewwhite
1
Le modèle de serveur n'a malheureusement pas été noté lors de ma réponse. Bon à savoir sur la limitation. Je pense que les barrières et CFQ n'ont pas coûté cher dans ce «benchmark» spécifique, mais des informations précieuses néanmoins.
Roman
@Roman Désolé, je n'ai pas mentionné le modèle plus tôt, j'apprécie vraiment votre aide, j'essaie à la fois le vôtre et les guides d'ewwhite pour atteindre 500-600 Mo, je suppose que c'est la vitesse la plus élevée que je puisse atteindre avec cette limite 3G
Ara
1
Aucun problème du tout. Assurez-vous de suivre les liens dans les réponses d'ewwhite, car il y a des choses spécifiques à faire avec le P410 en conjonction avec les SSD. Assurez-vous également que vous distribuez les quatre disques uniformément sur les deux connexions du fond de panier au contrôleur.
Roman