La charge moyenne est le nombre de processus en cours d'exécution ou en attente de l'être, moyenné sur une, cinq et quinze minutes. Seul, ce chiffre ne veut rien dire : il ne se lit qu'au regard du nombre de cœurs dont vous disposez.

uptime
#  load average: 3.20, 2.85, 1.90
nproc
#  4

Ce que disent les chiffres

  • Charge inférieure à votre nombre de cœurs — il reste de la marge.
  • Charge égale à votre nombre de cœurs — tout est utilisé, rien n'attend. C'est de l'efficacité, pas une panne.
  • Charge nettement au-dessus — le travail fait la queue, et chaque requête est plus lente qu'elle ne devrait.

Les trois chiffres ensemble donnent le sens de l'évolution. 8.0, 4.0, 2.0, c'est un pic qui vient de commencer. 2.0, 4.0, 8.0, c'est quelque chose qui se résorbe déjà.

Une charge élevée n'est pas un seul problème

Un processus qui attend un disque lent compte dans la charge exactement comme un processus qui brûle du CPU. Regardez de quoi la charge est faite avant d'acheter davantage de quoi que ce soit.

top -b -n 1 | head -20
iostat -x 2 3
  • %us élevé — votre propre code. Profilez la page lente.
  • %wa élevé — attente du disque. Regardez les requêtes et les journaux écrits à chaque requête.
  • %sy élevé — le noyau est occupé, souvent parce que trop de processus sont créés.
Un pic de charge qui coïncide avec une tâche planifiée est un problème d'horaire, pas de capacité. Déplacez la tâche, ou étalez-la.