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.