La lenteur de la console donne généralement l’impression que le serveur fonctionne sous une charge élevée et que les commandes s’exécutent donc avec un long délai, mais ce n’est pas toujours le cas.
Il existe d’autres raisons à la lenteur de la réponse de la console lors de l’exécution de commandes de base, comme top, ping, iostat.
Pour déterminer la cause exacte du délai, nous utiliserons la commande strace.
1. Installation
apt install strace
2. Exemple d’utilisation
2.1 Afficher tout
strace -r top -n 1
2.2 Résumer le total
strace -r top -c 1
Comme la sortie contient trop d’informations, on peut utiliser une variante plus compacte :
strace -r -e trace=connect,poll,openat,stat -o top_small.log top -n 1
3. Analyse de la sortie
0.000231 poll([{fd=3, events=POLLIN}], 1, 5000) = 0 (Timeout)
5.003045 poll([{fd=3, events=POLLOUT}], 1, 0) = 1 ([{fd=3, revents=POLLOUT}])
L’appel système poll avec un timeout de 5000 ms n’a pas reçu de réponse du serveur DNS (8.8.8.8). Cela a pris exactement 5 secondes.
5.005113 poll([{fd=3, events=POLLOUT}], 1, 0) = 1 ([{fd=3, revents=POLLOUT}])
Immédiatement après le premier, top tente à nouveau de faire une requête, en utilisant le même serveur DNS, et attend encore 5 secondes.
4. Conclusion
Le délai de 10 secondes lors de l’exécution de la commande n’est pas lié à la charge du serveur, mais à la longue attente d’une réponse du serveur DNS indiqué dans /etc/resolv.conf.
Si vous utilisez le DNS global de Google, il peut simplement être bloqué dans certains pays, comme ce fut le cas dans notre situation. Changez-le simplement pour un autre situé dans votre pays.

