Amélioration de la vitesse d'écriture mdadm RAID-6

8

J'ai un mdadm RAID-6 dans mon serveur domestique de disques durs verts WD 5x1 To. La vitesse de lecture est largement suffisante - 268 Mb / s en jj. Mais la vitesse d'écriture n'est que de 37,1 Mb / s. (Les deux testés via dd sur un fichier de 48 Go, la taille de la RAM est de 1 Go, la taille de bloc utilisée dans les tests est de 8 Ko)

Pourriez-vous s'il vous plaît suggérer pourquoi la vitesse d'écriture est si faible et existe-t-il des moyens de l'améliorer? L'utilisation du processeur pendant l'écriture n'est que de 25% (c'est-à-dire la moitié d'un cœur d'Opteron 165) Aucune donnée critique pour l'entreprise et le serveur ne sont sauvegardés par UPS.

mdstat est:

Personalities : [raid6] [raid5] [raid4]
md0 : active raid6 sda1[0] sdd1[4] sde1[3] sdf1[2] sdb1[1]
      2929683456 blocks super 1.2 level 6, 1024k chunk, algorithm 2 [5/5] [UUUUU]
      bitmap: 0/8 pages [0KB], 65536KB chunk

unused devices: <none>

Aucune suggestion?

Des choses comme l'écriture différée, la barrière, le nobh n'ont pas aidé. DD blocksize = 1M, 8M n'a rien changé. On dirait que mdadm lit physiquement les secteurs pour calculer la parité même si cela n'a pas d'importance ... Est-ce correct?

Mise à jour: la dégradation de la vitesse après la modification du cache de bande était en fait parce qu'un disque dur a probablement échoué pendant les tests, bien :-D

Résolu: après avoir augmenté le cache de bande et basculé vers un bitmap externe, mes vitesses sont de 160 Mo / s en écriture, 260 Mo / s en lecture. :-RÉ

BarsMonster
la source
Hey Bars .. Qu'avez-vous modifié et après quel changement les performances ont-elles chuté à 120 Mo / s? J'ai un problème similaire, mais mes performances sont bien pires :( Toutes les suggestions seraient utiles! Merci!
Dans mon cas, j'ai eu un échec de disque au milieu de l'optimisation :-)
BarsMonster

Réponses:

9

Avez-vous essayé de régler / sys / block / mdX / md / stripe_cache_size?

Selon cet article du forum (en norvégien, désolé) "le réglage de ce paramètre est d'autant plus essentiel que vous disposez de plus de disques et d'un système plus rapide":

Sur mon système, j'obtiens les meilleures performances en utilisant la valeur 8192. Si j'utilise la valeur par défaut de 256, les performances d'écriture chutent de 66%.

Citant sa vitesse de comparaison:

Disques: 8xSeagate 2 To LP (5900 tr / min) dans mdadm RAID6 (-n 512) (stripe_size_cache = 8192).

Processeur: Intel X3430 (4 x 2,4 GHz, 8 Go de RAM DDR3 ECC)

Vitesse: 387 Mo / s en écriture séquentielle, 704 Mo / s en lecture séquentielle, 669 recherches aléatoires par seconde.

Mon serveur domestique a presque les mêmes disques que vous, en utilisant RAID 5:

Disques: 4x1,5 To WD Green en RAID 5 (stripe_size_cache = 256 - la valeur par défaut)

Processeur: Intel i7 920 (2,66 GHz, 6 Go de RAM)

Vitesse: 60 Mo / s en écriture séquentielle, 138 Mo / s en lecture séquentielle (selon Bonnie ++)

Il semble donc que les performances d'écriture séquentielle représentent environ 50% des performances de lecture.

Pour quelles performances attendre, le Wiki Raid Linux dit à propos de RAID 5:

Les lectures sont presque similaires aux lectures RAID-0, les écritures peuvent être soit assez coûteuses (nécessitant une lecture avant l'écriture, afin de pouvoir calculer les informations de parité correctes, comme dans les opérations de base de données), soit similaires à RAID-1 écritures (lorsque des écritures séquentielles plus importantes sont effectuées et que la parité peut être calculée directement à partir des autres blocs à écrire).

Et à propos de RAID 6:

Les performances de lecture sont similaires à RAID-5 mais les performances d'écriture sont pires.

jg-faustus
la source
La vitesse d'écriture a chuté à 15-20 Mb / s, la vitesse de lecture à 110: -S Cela n'a tout simplement pas de sens :-(
BarsMonster
Essayez d'autres valeurs, voyez ce qui se passe. Pas un expert en la matière, mais j'ai WD Greens (4x1.5TB) en md RAID 5 avec le même problème - vitesse d'écriture plutôt lente. Mon système est en panne pour le moment, mais je vais également expérimenter de mon côté et mettre à jour ici si je parviens à l'améliorer.
jg-faustus
BTW: Avez-vous activé AHCI? Quel système de fichiers - ext3, ext4?
jg-faustus
Vous n'êtes pas sûr de l'AHCI, il est très difficile de jeter un œil au BIOS. ext4.
BarsMonster du
Merde, coincé avec une vitesse de lecture de 120 Mo / s, je ne peux pas revenir à mon 268 :-( C'est tellement frustrant ... Je ne vois pas pourquoi mdadm ne peut pas lire ou écrire des données linéairement à ~ 3x90 Mo / s. .. C'est juste idiot.
BarsMonster
4

essayer

echo 32768 > /sys/block/md0/md/stripe_cache_size

et vérifie ;)

DM1
la source
Dans la réponse précédente, nous testions différentes tailles de stripe_cache_sizes. La définition de 32768 n'a rien amélioré. Je suis toujours à ~ 100Mb / sec écrit même après la mise à niveau (CPU E8500, ram 8Gb et baie 8x1Tb)
BarsMonster
ABSURDE! Cela a instantanément augmenté mes performances d'écriture de ~ 70 Mo / s à ~ 360 Mo / s!?! Oh mon Dieu. WTF n'est-ce pas par défaut?!?
stolsvik
Oh ma parole. Cela fonctionne vraiment ... De [================> ....] récupération = 82,1% (1604609136/1953382144) finish = 122,7min speed = 47348K / sec to [ ================> ....] récupération = 82,3% (1607712880/1953382144) finition = vitesse 56,2min = 102451K / sec
Lmwangi
Lors de mes tests, la valeur de 8192 semble suffisante. Malgré le lancement de tout ce que je devais tester avec un tableau, je n'ai pas pu faire en sorte que stripe_cache_active atteigne un pic supérieur aux 7000 bas.
Jody Lee Bruchon