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.
À lire ensuite
Toute la rubrique InfraInfra
Flame graphs : lire avant d'optimiser
Ce qu'un flame graph encode vraiment, les six contresens qui font optimiser la mauvaise fonction, et le calcul à faire avant d'écrire une ligne : quel gain maximal ce profil autorise-t-il sur la latence que vous voulez réduire ?
7 minMembres
Infra
Les nombres à connaître en 2026
Les ordres de grandeur de latence et de coût qui servent à juger une conception en 2026, donnés avec prudence, et surtout la méthode pour les remesurer sur votre propre infrastructure avant de décider.
7 minMembres
Web
La performance comme incident
Quels budgets de performance tiennent en CI et lesquels deviennent du bruit, comment traiter une régression de terrain avec les mêmes règles qu'une panne, et à partir de quel trafic ce dispositif a un sens.
8 minMembres