Comment diagnostiquer un ralentissement ?

Mon site a connu un ralentissement léger et soudain lors du chargement des pages dernièrement. J’ai eu un problème où une sauvegarde a été générée et a dépassé l’espace sur mon volume DigitalOcean, ce qui a mis le site hors service. Depuis lors, j’ai eu du mal à reconstruire le site. Ces événements pourraient être liés en raison du calendrier. Actuellement, le site semble être dans un état stable, mais juste plus lent que ce à quoi je suis habitué.

Je pourrais entrer dans les détails de ce qui s’est passé davantage, mais je préférerais poser une question plus générale. Quelles sont les techniques pour diagnostiquer la cause d’un ralentissement ? Mon droplet a une utilisation moyenne du CPU de 20 %, j’ai donc apparemment suffisamment de ressources (4 Go de mémoire / 2 vCPU AMD / 80 Go de disque, ~15 000 pages vues par jour).

Tous les conseils sont appréciés.

3 « J'aime »

Ma première étape serait
vmstat 5 5
sur la ligne de commande.

3 « J'aime »

Merci pour la suggestion. Je ne connais pas cette commande, y a-t-il quelque chose en particulier que je devrais rechercher ?
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----\n r b swpd free buff cache si so bi bo in cs us sy id wa st\n 1 0 475136 144304 20296 1786100 2 3 2622 447 44 50 19 3 72 1 4\n 0 0 475136 143076 20304 1785312 0 0 65 25 622 584 2 1 95 0 1\n 0 0 475136 141080 20456 1789144 0 0 800 3 459 473 2 1 96 0 1\n 3 0 475136 143092 20572 1783408 0 17 11598 51 733 966 14 6 67 2 12\n 0 0 475648 134688 20376 1791036 0 81 38915 394 1323 1784 10 8 61 8 13\n

1 « J'aime »

Merci ! Si vous aviez une pénurie de mémoire, les chiffres du cache seraient petits, et si vous paginiez beaucoup, les colonnes si et so seraient grandes. Mais ce n’est pas le cas.

Nous constatons un pic important dans bi et bo, ce qui correspond généralement à une activité disque. Je me demande si quelque chose, quelque part, est en train de construire, de réparer ou de scanner quelque chose.

Essayez peut-être de lancer
ps auxrc
toutes les cinq secondes pendant une minute environ, pour voir si vous pouvez attraper un processus occupé en flagrant délit.

Il existe d’autres utilitaires qui ne sont peut-être pas encore installés : cherchez peut-être “Comment surveiller les E/S disque dans un système Linux” ou quelque chose de similaire.

Il est à noter que si vous avez des doutes sur l’intégrité de votre système, le reconstruire à partir d’une sauvegarde pourrait être le moyen le plus rapide d’avancer. Mais assurez-vous d’avoir une copie hors site de la sauvegarde, sinon deux, en cas d’accident. Et, idéalement, faites l’installation sur une nouvelle instance et conservez l’existante jusqu’à ce que la nouvelle fonctionne correctement.

5 « J'aime »

C’est un excellent conseil, merci !

J’utilise 80 % de ma mémoire. Est-ce typique ? La baisse est due à l’arrêt et au redémarrage de l’application via le lanceur.

droplet : 4 Go de mémoire / 2 vCPU AMD / 80 Go de disque

J’ai lancé un nouveau droplet et y ai restauré une sauvegarde du forum (sans images) et j’obtiens un comportement similaire.

Sortie htop, triée par mémoire :

80 % ne me semble pas problématique.

Plus intéressant, c’est que vous ayez beaucoup de processus sidekiq et pourtant je vois l’annotation « 0 sur 5 occupés » – vous en avez plus de 5. Vous semblez également avoir beaucoup de threads unicorn.

Je suggère un nouveau sujet ici, avec votre sortie htop, y compris votre configuration yml quant à savoir si vous avez ajusté votre nombre d’unicorn. Demandez si cet ensemble de processus semble raisonnable.

J’ai un htop très similaire sur le même VPS (processeur différent, cependant) et je n’ai rien changé par défaut.

Sans rien savoir, j’affirmerais que cela ne montre qu’une chose : il n’y a pas trop de trafic, s’il y en a, à ce moment-là.

1 « J'aime »

Ah oui, j’aurais dû vérifier mon propre htop : très similaire.

Une autre idée très différente, pour l’observation initiale d’un « ralentissement » : activer le mini-profiler avec Alt-P, puis accéder à une page typique et volumineuse de votre forum, et voir quelles requêtes sont effectuées et combien de temps elles prennent, en cliquant sur le chiffre du temps qui apparaît en haut à droite.

1 « J'aime »

J’ai pu faire une mise à niveau apt et aussi une reconstruction. Ce problème : Pups error on rebuild 🐕 m’empêchait de reconstruire pendant un certain temps.

Depuis la reconstruction, cela semble amélioré. Je n’aime pas fonctionner au feeling dans ce cas, je préférerais avoir des analyses et des données mesurables. J’apprécie les conseils @Ed_S, ils seront utiles pour un suivi plus poussé.

Je me demande s’il est possible de capturer certaines de ces données de profilage pour montrer la « santé » de l’instance via la page d’administration. Peut-être une idée de plugin potentiel ou une future fonctionnalité principale ?

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.