Analyse de la charge serveur
Comment surveiller l'utilisation du CPU, de la mémoire vive, du disque et du réseau sur un serveur Linux.
La charge serveur désigne le pourcentage d'utilisation des ressources clés — CPU, RAM et espace disque. Surveiller ces métriques permet d'identifier rapidement la cause des problèmes de performance.
Le matériel d'un serveur se décompose en quatre composants principaux : CPU, mémoire, disque et interface réseau. L'analyse de charge consiste à collecter et à interpréter les statistiques de chacun.
CPU
L'utilitaire top offre une vue en temps réel de l'utilisation du CPU :
top
Exemple de sortie :
top - 13:29:39 up 7 days, 1:10, 1 user, load average: 0.03, 0.03, 0.00
Tasks: 104 total, 2 running, 102 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.3 us, 1.0 sy, 0.0 ni, 97.0 id, 0.0 wa, 0.0 hi, 1.3 si, 0.3 st
MiB Mem : 969.5 total, 68.8 free, 635.9 used, 264.8 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 106.7 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
823 mysql 20 0 1852008 401812 0 S 1.0 40.5 81:24.20 mysqld
13 root 20 0 0 0 0 R 0.3 0.0 26:11.00 rcu_sched
695 redis 20 0 66776 4216 2100 S 0.3 0.4 19:55.21 redis-server
Métriques clés à surveiller :
us— temps CPU consacré aux processus utilisateur. Une valeur élevée indique que votre application sollicite fortement le CPU.id— temps d'inactivité du CPU. Doit rester entre 80 et 100 % dans des conditions normales.wa— temps d'attente des opérations d'E/S. Une valeur élevée signale une surcharge du sous-système disque.
Si us dépasse régulièrement 20 %, envisagez d'optimiser votre application ou de faire évoluer votre infrastructure.
Pour des statistiques par cœur, installez mpstat depuis le paquet sysstat :
apt-get install sysstat
mpstat -P ALL
Exemple de sortie :
Linux 5.15.0-46-generic (dsde1139-22869.fornex.org) 09/06/2022 _x86_64_ (1 CPU)
02:37:21 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
02:37:21 PM all 0.90 0.00 0.74 0.13 0.00 0.96 0.32 0.00 0.00 96.95
02:37:21 PM 0 0.90 0.00 0.74 0.13 0.00 0.96 0.32 0.00 0.00 96.95
Pour une vue plus visuelle, htop affiche la charge CPU dans un format facile à lire :
apt-get install htop
htop
Monitoring du CPU dans htop
Mémoire
Utilisez la commande free pour vérifier l'utilisation de la RAM :
free
Exemple de sortie :
total used free shared buff/cache available
Mem: 992724 655200 73968 86748 263556 104972
Swap: 0 0 0
Portez une attention particulière à Swap — il indique quelle quantité d'espace disque est utilisée comme mémoire de débordement lorsque la RAM est épuisée. Un faible niveau de RAM libre n'est pas critique en soi, mais une augmentation du Swap nécessite une action immédiate : ajoutez de la mémoire ou répartissez la charge sur plusieurs serveurs.
Pour une analyse détaillée de l'utilisation de la mémoire :
cat /proc/meminfo
Exemple de sortie :
MemTotal: 992724 kB
MemFree: 73192 kB
MemAvailable: 104864 kB
Buffers: 10856 kB
Cached: 226868 kB
SwapCached: 0 kB
...
Disque
Commencez par vérifier l'espace disque disponible :
df -h
Exemple de sortie :
Filesystem Size Used Avail Use% Mounted on
tmpfs 97M 732K 97M 1% /run
/dev/vda1 9.8G 8.5G 846M 92% /
tmpfs 485M 0 485M 0% /dev/shm
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 97M 0 97M 0% /run/user/0
La colonne Use% indique le taux d'occupation de chaque partition.
Pour surveiller l'activité de lecture/écriture par processus, utilisez iotop :
apt-get install iotop
iotop
Exemple de sortie :
Total DISK READ: 0.00 B/s | Total DISK WRITE: 0.00 B/s
Current DISK READ: 0.00 B/s | Current DISK WRITE: 0.00 B/s
TID PRIO USER DISK READ DISK WRITE SWAPIN IO> COMMAND
1 be/4 root 0.00 B/s 0.00 B/s ?unavailable? init
2 be/4 root 0.00 B/s 0.00 B/s ?unavailable? [kthreadd]
...
Métriques clés :
Actual DISK READ— données effectivement lues depuis le disque (cache pris en compte).Actual DISK WRITE— données effectivement écrites sur le disque.
Recommandations en cas de forte charge disque :
- Forte charge de lecture depuis l'application — activez le cache APC.
- Forte charge de lecture depuis la base de données — revoyez la configuration de votre base de données.
- Forte charge de lecture depuis le serveur web — envisagez de mettre en place un cache HTTP.
- Forte charge d'écriture — vérifiez que les journaux d'accès et de débogage sont désactivés ; la base de données ou les téléversements de fichiers sont les causes les plus probables.
Réseau
L'utilitaire cbm affiche le trafic réseau en temps réel par interface :
apt-get install cbm
cbm
Exemple de sortie :
Interface Receive Transmit Total
lo 0.00 B/s 0.00 B/s 0.00 B/s
eth0 35.90 kB/s 758.75 B/s 36.65 kB/s
Un trafic réseau élevé n'est pas problématique en soi, mais des valeurs proches du pic de manière soutenue sont le signal qu'il est temps d'anticiper une montée en charge.
Statistiques combinées
L'utilitaire dstat affiche un récapitulatif en temps réel de tous les sous-systèmes, mis à jour chaque seconde :
apt-get install dstat
dstat
Exemple de sortie :
--total-cpu-usage-- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai stl| read writ| recv send| in out | int csw
2 1 97 0 0| 35k 29k| 0 0 | 0 0 | 683 702
1 0 99 0 0| 124k 0 | 39k 1162B| 0 0 |1003 822
3 4 86 6 1|3580k 8776k| 37k 522B| 0 0 |1161 1018
Colonnes clés :
total-cpu-usage— charge du CPU.dsk/total— activité disque.net/total— activité réseau.
Aide
Une question ou besoin d'un coup de main ? Écrivez-nous via le système de tickets — nous sommes toujours là pour vous aider !