Il carico medio è il numero di processi in esecuzione o in attesa di esserlo, mediato su uno, cinque e quindici minuti. Da solo quel valore non significa nulla: si legge soltanto in rapporto al numero di core che hai.

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

Che cosa dicono i numeri

  • Carico sotto il numero dei core — c'è capienza da vendere.
  • Carico pari al numero dei core — sfruttato appieno, niente in attesa. Questo è efficiente, non guasto.
  • Carico ben al di sopra — il lavoro si accoda, e ogni richiesta è più lenta del necessario.

I tre valori insieme ti dicono la direzione. 8.0, 4.0, 2.0 è un picco appena cominciato. 2.0, 4.0, 8.0 è qualcosa che sta già rientrando.

Un carico alto non è un problema solo

Un processo che aspetta un disco lento pesa sul carico esattamente come uno che brucia CPU. Guarda di che cosa è fatto il carico prima di comprare più di qualsiasi cosa.

top -b -n 1 | head -20
iostat -x 2 3
  • %us alto — il tuo codice. Profila la pagina lenta.
  • %wa alto — attesa del disco. Guarda le query e i log che si scrivono a ogni richiesta.
  • %sy alto — il kernel è occupato, spesso perché si creano troppi processi.
Un picco di carico che coincide con un cron è un problema di orari, non di capienza. Sposta il lavoro, oppure distribuiscilo.