Sly Angel a écrit :
Krystal_ : Concernant le RAID 5, dire que ça pue est abusé, c'est moins performant qu'un RAID 10 par exemple mais généralement plus intéressant en terme de rapport perfs+place/disques.
Les perfs restent très intéressantes donc et hormis le mode dégradé qui rame, ça reste un choix très sympa pour une config 4 ou 6 disques.
|
Les perfs en *lecture* reste tres interressante, mais pour tout ce qui est écriture, c'est une sainte catastrophe (dans l'absolue, ca va moin vite qu'un disque tout seul). Hors un serveur SQL est justement une machine qui fait pas mal d'ecriture. Je m'explique :
En raid 5, quand on ecrit un fichier de 192k sur, par exemple, 4 disques, avec un stripesize de 64k (re-par-exemple), voila ce qu'il se passe : les premiers 64 k sont mis sur un premier disque, de 64 a 128k, c'est sur le deuxieme, et de 128 a 192, c'est sur le 3eme. Ensuite, la parité est mise sur le 4eme (bon, c'est pas toujours cet ordre, mais la théorie est la). Pour calculer la parité, facile, il suffit de XORer l'ensemble des 3 strippes qui a été ecrit. Ca va super vite (les processeurs actuels le font a quelques centaines de Mo/s). Jusque la, toujours pas de probleme, ca va assez vite ... Il faut quand meme noter que dans l'histoire, pour ecrire un seul fichier, on a fait seeker nos 4 disques durs, donc meme si en debit continue, cela tiens le debit théorique de 3 disques, en pratique, cela fait qu'on ne peut pas faire plus de 200 ecritures differentes par seconde (vu que le seek d'un disque moyen est de 5 ms) sur l'ensemble du raid (mais ca, c'est pareil sur un raid 0).
Maintenant, si notre fichier de 192k est, par exemple, une base sql, et que l'on vient de modifier un champs, qui on va dire est au 100eme Ko du fichier, que ce passe-t-il ? Sur un disque normal, facile, le secteur qui contient le champs (de 4k) est relu, modifier, et reecrit. Sur un raid 0 (ou 10), idem. Mais sur un raid 5 ? Et bien sur un raid 5, on fait pareil, sauf qu'on a le droit de relire l'integralité des 192 ko pour recalculer la parité juste derriere. Donc refaire seeker l'ensemble de nos disques juste pour une petite écriture.
Bien entendu, tant que le fichier original est toujours dans le buffer cache (dans le cas d'un raid soft) ou dans le cache de la carte raid (dans le cas d'un raid hard), cela va vite, mais en pratique, si on met du raid 5, c'est pour avoir de la place, et il y a donc peu de chance pour que toutes nos bases tiennent en cache
A noter aussi qu'avec tout les systemes de fichier journalisé, l'impact est double, car toute ecriture est toujours doublé dans le log du fs (et vi ... meme si c'est juste 10 octets ).
Petite parenthese sur le mode dégradé : en fait, celui ci rame juste parce que la complexité de la lecture d'un bloc devient la meme que celle de l'ecriture d'un block (ie, il faut lire tout les blocks d'a coté pour pouvoir recalculer ce qui manque ... comme deja dit, le recalcul est super rapide, ce n'est donc pas un probleme, seul le fait de faire seeker tout les disques en est un). En ecriture, a priory, les perfs doivent rester les meme.
Re-petite-parenthese completement a part sur le "pourquoi que le raid 0 va toujours plus vite que le raid 5 alors que justement sur le raid 5 la parité est répartie sur les disques pour que tout les disques puissent etre utilisé en lecture" : appelez moi "read ahead" . Tout les disques mettent des données en cache lorsque l'on demande une lecture d'un secteur, ce qui est tout a fait normal, puisqu'un rapide calcul nous montre que meme pour un disque seekant en moyenne a 5 ms, il ne peut le faire que 200 fois par secondes. Donc le temps d'un seek est égal a, sur un disque debitant 40 Mo/s, environ 200 ko. Donc toute lecture inferieur a 200 ko n'est pas rentable, puisque le temps de seek deviendrait alors plus long que le temps de lecture, c'est pourquoi souvent les disques lisent systematiquement 256 ko, quelque soit la taille de ce qu'on a demandé a lire. Bien souvent, c'est un choix judicieu, mais dans le cas du raid, il se trouve que cela fait que votre disque lit systematiquement le bloc de parité en lisant le bloc précédent celui ci ... donc vous vous retrouvez, en debit brut, avec les perfs de n-1 disques a la place d'avoir les perfs de n disque ... A noter quand meme que lorsqu'il y a beaucoup d'io simultané, vous beneficiez quand meme d'un disque supplémentaire pouvant aller chercher des infos, ca vaut donc le coup par rapport a un raid 4.
Citation :
Pour le 10 Mbps, ça dépend, le forum où tu post actuellement est pas loin d'avoir ce débit entre le web et le SQL ( et ce n'est pas du mauvais code, c'est juste beaucoup de données à afficher venant de la bdd ), chez un autre client à grande échelle il a fallu upgrader le lien vers du Gigabit, donc bon tout dépend de l'utilisation et de l'échelle...
A mon avis là il manque clairement des index sur certains champs pour alléger le truc.
|
active le gzip ... héhé
Non, pour un forum tel que celui ci, cela ne m'étonne pas [trop], surtout quand on voit la taille des posts des abrutits comme moi
N'empeche que j'aimerais bien savoir quel est la part de burst et la part d'utilisation reele dans tout cela
Enfin cela n'empeche pas que pour la majorité des gens, 10 Mbits ne seront *jamais* la cause de ramage intempestif, d'ou ma remarque. (si t'as des graphs j'veux bien )