"Ton Code est LENT !!!" 🤬

developpement Sep 12, 2022

Client : C'est lent

Dev : Ca marchait bien sur mon poste. C'est surement le serveur de prod

Admin : Mon serveur est optimisé. C'est surement ton code !!!

C'est le discours que j'ai souvent entendu.

Pour essayer de remettre un peu d'ordre dans tout ça et faciliter ta vie de Dev, voyons comment on peut procéder

Je te propose 46 questions à te poser et à poser aux différents intervenants

Ces questions permettent de réduire drastiquement et rapidement les causes possibles

Oui, il y aura quand même un peu d'investigation, mais au moins tu sauras être celui qui guide plutôt qu'être celui qui ronchonne :p (oui, oui, je veux bien aider les Dev, mais je vais pas me priver de quelques blagues)

On va prendre l'exemple d'une app web pour faire simple.

Le client se plaint que c'est "lent" chez lui.

C'est parti pour l'interrogatoire :

  • Qu'est-ce qui est lent ? Toute l'appli ? Juste une partie ? Un écran en particulier ? La lecture d'une table ? L'envoi de donnée ? L'upload d'un fichier ? Un nouveau module ? Un ancien module ? L'affichage de la page ? Le chargement de la page ? ...

  • Quelles sont les étapes pour reproduire la lenteur de façon systématique ?

  • Si c'est sur un écran/table en particulier qu'est-ce qui serait différent entre la prod et la dev ?

  • Est-ce que c'est lent que chez le client ? Ou bien l’on arrive à reproduire les lenteurs ailleurs ?

  • Y'a-t-il un endroit où l’on n’arrive pas à reproduire les lenteurs ? Juste en étant sur le serveur de prod par exemple ? Derrière le pare-feu ? Devant le pare-feu ?

  • Est-ce que la bande passante du serveur de prod n'est pas saturée ?

  • Est-ce que le FAI du client entre en jeu ? Est-ce le cas chez tous les FAI ?

  • Est-ce le réseau chez le client qui est pourri ? Est-ce que si l’on fait les tests au plus près du serveur c'est aussi lent ?

  • Est-ce le navigateur du client qui pose problème ? Est-ce la version de son navigateur ? Est-ce qu'il a des plugins qui pourraient interférer ? Est-ce que le client a un firewall sur son poste ? Sur son réseau ? Est-ce qu'il utilise un antivirus ? A-t-il des équipements de sécurité qui interceptent le trafic réseau ?

  • Est-ce que le serveur de prod est identique à mon environnement de dév ? Numéro de version de Apache/Php par exemple ? Est-ce qu'il y a les mêmes extensions/modules d'installées ?

  • Est-ce que le serveur de prod n'a pas un problème de disque, ram, cpu, swap ? Est-ce qu'il n'est pas sur une infra saturée ou mutualisée ?

  • Est-ce que le serveur de BDD est le même que sur l'environnement de Dev ? Numéro de version ? Même question au niveau Ram, Disque, cpu ... que pour le serveur de prod ? Est-ce que le schéma de BDD est identique ? Est-ce qu'il n'y a pas un index qui est cassé ? Est-ce qu'il y a autant de données que sur le serveur de dev ?

  • Est-ce que le serveur de prod est très utilisé en ce moment ? Est-ce que les lenteurs se font même quand il n'y a plus personne ?

  • Y'a-t-il une heure en particulier où c'est lent ? C’est tout le temps ?

Alors, je t'ai donné les questions en vrac. Mais normalement, en fonction des 1ère réponses, tu peux en éviter un paquet et t'orienter plus facilement.

Par exemple, si la lenteur ne se produit que chez le client et pas ailleurs... tu sais que c'est de son côté.

Idem, si la lenteur se fait ressentir partout et même sur le serveur de prod directement, tu sais que ce n'est pas un problème réseaux, firewall ...

Conclusion :

Le but est de faire comme au Cluedo. On élimine le maximum de pistes rapidement pour se focaliser sur les causes les plus probables.

Voilà :)

Imrane 🏖

La newsletter pour ne rien louper

Rejoins les 2500 lecteurs de  la newsletter pour obtenir des conseils, des stratégies et des ressources pour développer et monétiser tes compétences Tech.