Auteur | Message |
---|---|
Bool
| Inscrit le : 09/05/2005 |
# Le 01/10/2012 à 10:07 Dans les divers docs (et mailing list OVH) on évoque souvent l'overhead qu'implique le RAID6, sans pour autant le quantifier. | IO/s | Ko lus/s |Ko écr./s | Voyons comment ça se traduit «physiquement» : | IO/s | Ko lus/s |Ko écr./s | Ce qui nous donne ce joli ratio : | IO/s | Ko lus/s |Ko écr./s | => Pour ma part j'interprète ces chiffres de cette façon : pour atteindre les 2000 IO/s demandés par le système, la couche RAID6 est contrainte de générer 12'000 IO/s (en moyenne 1000 par disque) ! Si on se base uniquement sur les IO/s, le fait d'avoir 12 disques au lieu d'un seul ne permettrait donc que de doubler les perfs... N'obtenant pas les performances attendues j'ai donc tenté une configuration différente sur le serveur B, qui pour le coup utilise des chunk de 8Ko, correspondant un peu plus à ce que demande MySQL, mais malmenant les SSD (c'est à dire que peu importe les chiffres ici, les perfs des SSD seront amoindries). Je vous donne directement le récap du serveur B : | IO/s | Ko lus/s |Ko écr./s | => Les ratios sont un peu meilleurs : l'overhead coté IO/s n'est plus que de 250% ; c'est à dire que pour atteindre les 1900 IO/s demandés par le système, la couche RAID6 est contrainte de générer près de 7'000 IO/s (en moyenne 570 IO/s). Là encore si on se base uniquement sur les IO/s, le fait d'avoir 12 disques au lieu d'un seul permettrait de multiplier les perfs par trois uniquement. Ce surcoût du RAID6 vient du fait qu'il travaille par blocs, et que ces blocs sont très gros. Ici avec 12 disques, j'ai dans le premier cas des blocs de 1280Ko ((12 disques - 2 disques de parités) * 128Ko), et dans le second des blocs de 80Ko. Et donc, pour que MySQL puisse écrire 8Ko dans un bloc, le système RAID doit d'abord lire le bloc en entier (les 1280Ko dans le cas du serveur A), modifier ce bloc en mémoire, puis ré-écrire la totalité des 1280Ko. Dans le pire des cas on se retrouve donc avec 1280Ko lus + 1280Ko écrits, soit un traitement 300 fois plus lent que prévu... Je n'ai pas de chiffres pour le RAID5, mais théoriquement le principe est le même, avec un seul disque de parité. Les performances risquent donc d'être similaires. La solution ? Pour ma part je ne l'ai pas encore trouvée. Certains d'entre vous ont de gros besoins en IO (Dob ?) et ont peut-être fait des tests similaires, voir trouvé une meilleure solution. De mon coté je commence des tests en confiant le RAID à Btrfs, qui gère ça assez différemment. Les écritures devraient être très optimisées, mais les lectures seront très fragmentées... à voir ce que ça donne sur du SSD. |
Bool
| Olivier Inscrit le : 09/05/2005 |
# Le 01/10/2012 à 10:21 A titre de comparaison, sur un RAID10 de 4 SSD (chunks de 512Ko) : | IO/s | Ko lus/s |Ko écr./s | Ici il y a moins d'IO, c'est probablement lié à l'ordonnanceur CFQ qui fausse les mesures. Mais si on se base sur les lectures, ainsi que sur les écritures, les ratios sont plutôt très bon (pour du RAID10, 100% est le meilleur ratio en lecture, et 200% est le meilleur ratio en écriture... bizarre qu'on ait légèrement moins). Mais ici, malgré une taille de bloc totale d'1Mo, et une charge MySQL uniquement, je ne retrouve pas le phénomène d'écritures aléatoires... à moins que cela vienne du fait qu'il n'y ait pas de disque de parité, et donc pas besoin de ré-écrire tout le bloc ? |
devtribu
| Olivier Inscrit le : 16/06/2005 |
# Le 01/10/2012 à 10:28 Salut Bool, Février 2019, mon futur livre Tout JavaScript chez Dunod https://amzn.to/2PoLd0f |
Bool
| Olivier Inscrit le : 09/05/2005 |
# Le 02/10/2012 à 13:39 Non non, je ne suis pas non plus à fond là, heureusement d'ailleurs. Là c'est de la production. |
Vous ne pouvez pas participer au forum, car votre inscription n'a pas été validée. Pour vous faire valider en tant que Membre, cliquez ici.
© MHN - Tous droits réservés | CNIL N°844440 | 23/11/2024 15:09:09 | Généré en 7.67ms | Contacts | Mentions légales |