In questa sezione ci occuperemo di:
- misurare l'utilizzo di risorse
- risolvere problemi relativi all'utilizzo di risorse
- migliorare la gestione delle risorse
Strumenti standard per la gestione delle risorse che sono installati sulla maggior parte delle distro di default sono:
- vmstat
- uptime
- who
- top
- lsof
- netstat
- pstree
- lsof
- ps
Il programma "vmstat" costituisce uno dei programmi più importanti di quelli forniti di default, possiamo lanciarlo con:
vmstat
# avvia vmstat
vmstat -S M
# avvia vmstat mostrando gli utilizzi di memoria in
# MB
vmstat -a
# avvia vmstat mostrato la memoria attiva/inattiva
vmstat 5 3
# avvia vmstat, si avvierà 3 volte distanziate da 5
# secondi
vedremo diverse informazioni sullo schermo dove:
- r: numero totale di processi che aspettano tempo CPU, ergo coda processi
- b: numero totale di processi bloccati che sono in attesa di risorse come disco o rete
- Swpd: memoria virtuale usata
- Free: memoria virtuale libera
- Buff: memoria usata come buffer (percorsi delle directory e cosa c'è all'interno)
- Cache: memoria usata come cache (contenuto dei file)
- Si: quantità di memoria swappata dal disco ogni secondo
- So: quantità di memoria swappata sul disco ogni secondo
- Bi: blocchi in ingresso al secondo
- Bo: blocchi in uscita al secondo
- In: interrupt al secondo
- Cs: context switch che avvengono al secondo
possiamo utilizzare:
sudo bash -c "echo 3 > /proc/sys/vm/drop_caches"
# libera la
# memoria utilizzata dal buffer e dalla cache
Il problema con questi tool citati presenti nel package "procps" e che non ci permettono di lavorare con dati storici, quindi non possiamo visualizzare in modo comodo una history ed inoltre hanno funzionalità basilari, vedremo nelle prossime sezioni strumenti più avanzati.
Per avere un sistema di monitoring più avanzato è utile installare il pacchetto "sysstat" che costituisce un'evoluzione del precedente vmstat dal pacchetto "procps", il pacchetto " sysstat" contiene tool simili a procps come ad esempio "iostat" e "mpstat" e ci permettono di raccogliere informazioni periodicamente in modo da avere quadri precisi delle prestazioni e un monitoring più completo. I dati con sysstat vengono raccolti ogni 10 minuti e possono essere letti attraverso "sar", in pratica lo script "sa1" raccoglie dati ogni 10 minuti e lo script "sa2" ne fa un resoconto quotidiano; questi due script, sa1 e sa2 sono abilitati attraverso cron. Possiamo quindi installare sysstat con:
sudo apt-get install sysstat
sulle distro Debian-based dopo l'installazione dobbiamo abilitare il raccoglimento di dati attraverso il file "/etc/default/sysstat" andando ad abilitare la stringa "ENABLED="true""
Una volta installato possiamo visualizzare il cron relativo con:
sudo cat /etc/cron.d/sysstat
# visualizza il file di cron di
# sysstat, di default, raccoglie dati ogni 10 minuti con sa1 e fa
# un resoconto giornaliero con sa2
Gli strumenti di sysstat sono:
iostat
# fornisce informazioni su CPU e I/O disk
mpstat
# fornisce informazioni dettagliate su CPU
pidstat
# mostra informazioni sui processi
cifsiostat
# mostra informazioni su SAMBA
nfsiostat
# mostra informazioni su NFS
sar
# raccoglie e mostra dati sull'attività del sistema
Vediamo alcuni esempi applicativi:
sar -V
# mostra la versione del programma
sar
# mostra info sulla CPU
sar -q
# mostra info sul carico medio
sar -q 1 3
# mostra info sul carico medio 3 volte con un
# intervallo da 1 secondo
sar -q -f /var/log/sa/sa15
# mostra informazioni sul carico
# medio del giorno 15 del mese su distro RH-based
sar -q -f /var/log/sysstat/sa15
# mostra informazioni sul
# carico medio del giorno 15 del mese su distro Debian-based
sar -w
# processi creati al secondo e context switch al secondo
sar -n DEV
# statistiche sull'interfaccia di rete specificata
# tipo "eth0"
sar -b
# dati sulle attività di I/O generale
sar -q -s 10:00:00 -e 11:00:00
# mostra informazioni di carico
# medio dalle 10 alle 11 del giorno corrente "-s" (start time) "
# -e" (end time)
sar -w -s 14:00:00 -e 20:00:00 -f /var/log/sa/sa11
# mostra
# informazioni sui processi e i context switch tra le 14 e le 20
# dal giorno 11 del mese su distro RH-based, basta cambiare la
# locazione del file per le distro Debian-based
Per mostrare informazioni grafiche di monitoring, dobbiamo installare collectd. Possiamo installarlo attraverso:
sudo apt-get install collectd
La configurazione varia molto a differenza della distro, bisogna guardare la documentazione.Compilare programmi
Possiamo compilare programmi, innanzitutto scaricando i sorgenti, questo è possibile attraverso:
sudo apt-get source nomePGM
# scarica il codice sorgente del
# programma nomePGM
una volta scaricato il source-code possiamo trovarlo in " /usr/src/nomePGMeVersione", quindi ci sposteremo nella directory interessata per potere procedere con la compilazione