Bufferbloat: Kossé ca??

 

Quand on utilise les valeurs par défaut des produits, on se bute quelques fois à des limitations. Dans un gros environnement ou je travaille, nous sommes au prise avec du « bufferbloat » ou plus précisément, des problèmes de latences sporadiques dues aux mauvaises valeurs par défaut.

 

Stockage

Si on regarde du coté du stockage, dans le cas qui nous intérrèsse, du NetAPP, on voit une latence très stable. Pas de gros pics ou de saturation.

 

 

Du coté des IO, la même remarque peut être faite et si on superposait la latence et les IOPS, les résultats suivraient les mêmes directions.

 

VMWARE

Par contre, lorsqu’on investigue sur une VM ou un host VMware, on voit des gros pics de performance, des lenteurs soudaines et soutenues, bref, rien n’est stable.

 

 

Que se passe-t-il donc alors?

Le bufferbloat est un probleme qui arrive lorsqu’on à assigné trop de cache à un endroit ou un autre d’un réseau switché. Ca pourrait etre du réseau SAN, du IP, du 3G, etc.

Voici une explication sommaire du problème : Nous prenons un cas ou il y’a un serveur ESX, un HBA 8Go, un Service Processor de stockage et un LUN.

Les valeurs qui nous interressent sont celles du queue length ou d’autres fois le « Execution Throttle ».

Dans notre exemple les valeurs sont les suivantes :

ESX : 64

HBA : 65535

SP : 64

LUN : 64

 

Tout ira bien dans un environnement normal mais dès qu’on tombe dans du gros load, les problemes arriveront.

 

Le HBA va remplir tranquillement sa cache avec 65535 commandes. Une fois que ca va arriver, le ESX, lui, va continuer a envoyer des demandes parce qu’il est 65471 commandes en retard.. Pour lui, il y a un bon moment que les 65471 autres commandes ont été lancées… Alors, là, il sera ralenti, la la tence de toutes la chaine va se déteriorer… ON est en probleme…

 

Le bufferbloat a un pattern distinctif, le voici :

Source : http://blog.malayter.com/2012/02/bufferbloat-on-3g-network.html

 

 

On fait quoi alors?

N’utilisons plus les valeurs par défaut.

Dans VMWare, il faut valider qu’on est bien a 64.

Dans les HBA des serveurs ESX, il faut aller forcer le Execution Throttle à 64 commandes…

Tout redémarrer et le problème devrait disparaitre. Au moins, s’il y’a de la latence ensuite, ca sera dans le moment présent. 🙂

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

À propos malabelle

Je suis spécialiste VMware, Linux et Microsoft depuis plus de 20 ans. Je travaille comme architecte à mon compte chez stockage.io. Mon temps est rempli principalement par ma super job, des jams de musique (je suis bassiste), des voyages et ma famille. J'écris de temps en temps sur des magazines en ligne et j'adore faire de la rénovation.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *