Aller au contenu
La méthode USE en dix minutes sur un serveur maladeLecture : 0 %

La méthode USE en dix minutes sur un serveur malade

Un tri en dix minutes : pour chaque ressource, utilisation, saturation, erreurs, avec les commandes et l'ordre. Ce que la méthode trouve vite, ce qu'elle ne trouvera jamais, et quand passer à autre chose.

Par Elias Varen7 min de lectureMembres

Le serveur est lent, quelqu'un ouvre une session, lance top, voit un processus PHP en tête de liste et conclut. Vingt minutes plus tard, le processus est redémarré, le serveur est toujours lent, et on apprend que le disque était plein à 100 % depuis le début. top trié par CPU montre ce qui consomme du CPU. Il ne dit rien de ce qui manque.

Le diagnostic par intuition a un défaut précis, il va là où il y a de la lumière. La méthode USE le remplace par une énumération. Pour chaque ressource, on se demande quelle est son utilisation, si elle est saturée et si elle produit des erreurs, et on ne conclut pas avant d'avoir fait le tour. Au bout de dix minutes, soit vous avez trouvé la ressource qui limite, soit vous savez que le problème ne vient pas d'une ressource, ce qui est une information tout aussi utile.

Utilisation, saturation, erreurs : lire l'acronyme à l'envers

L'utilisation est la part du temps pendant laquelle la ressource travaille, ou la part de sa capacité occupée. La saturation est le travail qui attend parce que la ressource ne peut pas le prendre, autrement dit une file. Les erreurs sont les opérations qui ont échoué.

L'ordre de lecture utile est l'inverse de l'acronyme. Les erreurs d'abord, parce qu'elles sont rapides à lire et qu'un disque qui renvoie des erreurs d'entrée-sortie clôt la discussion. La saturation ensuite, parce que c'est elle qui produit la latence : une requête est lente parce qu'elle attend son tour, bien plus que parce que le CPU est occupé. L'utilisation en dernier, comme contexte.

L'utilisation seule trompe dans les deux sens. Un CPU à 60 % en moyenne sur une minute peut cacher dix secondes à 100 % avec une file de processus en attente, puis cinquante secondes calmes. Une moyenne sur huit cœurs à 13 % peut cacher un cœur à 100 % occupé par un processus mono-thread. À l'inverse, un CPU à 95 % sans file d'attente signale une machine bien employée, et rien de plus.

La méthode USE en dix minutes sur un serveur malade · Deepstack