Essayer de dépanner le goulot d'étranglement I/O Wait

Version résumée :

  • Le système a été mis à genoux pendant quelques minutes par iowait sous une charge modérée
  • Aucune activité I/O disque significative n’était en cours à ce moment-là
  • DigitalOcean assure qu’aucune activité inhabituelle n’a été détectée sur l’hyperviseur

Version détaillée :
Nous exécutons actuellement un droplet à 8 cœurs / 16 Go sur DigitalOcean, récemment passé d’une configuration 4 cœurs / 8 Go pour anticiper un trafic plus intense à court terme.

Au moment des faits, db_shared_buffers était configuré à 2 Go et le nombre de workers Unicorn à 8. J’ai depuis augmenté ces deux paramètres.

Une forte activité de publication sur un seul sujet a eu lieu pendant un événement en direct d’environ 2 heures, avec environ 200 utilisateurs au total durant cette période, soit une moyenne d’environ 70 utilisateurs simultanés selon Analytics.

Le système est resté stable pendant plus d’une heure. Les moyennes de charge sont restées autour de 4, le CPU à environ 30 % et la mémoire à environ 35 %. Aucune activité disque significative, aucun problème sur le forum.

Soudainement, le nombre d’utilisateurs indiqué par Analytics a doublé. Je ne sais pas s’il s’agissait de vrais utilisateurs ou d’une anomalie liée à un autre problème. Nous ne sommes pas une communauté importante ou notable. Personne ne nous fait de liens, et il serait très inhabituel de gagner soudainement un grand nombre de nouveaux utilisateurs.

Au même moment, iowait est devenu très rouge avec des avertissements supérieurs à 50 % de manière soutenue. La moyenne de charge sur 1 minute a atteint 12, celle sur 5 minutes a dépassé 8. L’ensemble du système est devenu très lent, le forum a ralenti considérablement et de nombreuses déconnexions temporaires dues à une charge élevée se sont produites. Le CPU n’a jamais dépassé 40 %.

Cela a duré 3 à 4 minutes, puis tout est revenu progressivement à la normale sur les 10 minutes suivantes. Selon les graphiques de DigitalOcean, les opérations I/O disque sont restées inférieures à 1 Mo/s pendant toute la durée, principalement des écritures.

Est-il possible que cela soit dû à un problème de configuration ou de forum ? DigitalOcean ment-elle et s’agit-il en réalité d’un problème matériel ? Si c’est le premier cas, avez-vous des suggestions pour éviter que cela ne se reproduise (ce n’était pas la première fois) ?

Un autre événement ponctuel important pour la communauté, générant un trafic élevé, se profile prochainement. Je n’ai pas le luxe de procéder par essais et erreurs pour voir ce qui fonctionne. Je n’ai qu’une seule chance de bien faire (ou de mal faire).

Je ne suis pas sûr que cela soit lié à votre problème, mais récemment, il y a eu beaucoup de discussions sur les événements en direct et les pics d’activité qu’ils provoquent.