Ci sono molti comandi, strumenti e varianti dei due da mettere in pratica quando si tratta di statistiche di sistema in Linux. Tuttavia, se hai bisogno delle specifiche sulla memoria virtuale, puoi usare vmstat
.
Che cos'è?
Reporter di statistiche sulla memoria virtuale, noto anche come vmstat
, è uno strumento da riga di comando di Linux che riporta vari bit di informazioni di sistema. Cose come memoria, paging, processi, IO, CPU e pianificazione del disco sono tutte incluse nella serie di informazioni fornite.
Quando esegui vmstat
, tieni presente che il primo rapporto è una media delle informazioni richieste dal momento dell'ultimo riavvio. I rapporti successivi utilizzano misurazioni di ritardo e conta . Li tratterò specificamente durante la discussione sulla sintassi.
Sintassi dei comandi
La sintassi per vmstat
il comando è piuttosto semplice:
$ vmstat [opzioni][ritardo [conteggio]]
- Opzioni:queste sono trattate in dettaglio nella sezione seguente.
- Ritardo - definisce l'intervallo di tempo tra gli aggiornamenti. Se non viene specificato alcun ritardo, il rapporto viene eseguito come media dall'ultimo riavvio.
- Conteggio:definisce il numero di aggiornamenti stampati dopo l'intervallo di ritardo specificato. Se non è impostato alcun conteggio, il valore predefinito è un numero infinito di aggiornamenti ogni x secondi (dove x =ritardo).
Output di base e come dargli un senso
La forma più semplice di questo comando non utilizza alcuna opzione. Ecco lo standard output e come leggerlo:
[tcarrigan@rhel ~]$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 0 6012852 2120 817048 0 0 2805 289 797 657 21 7 71 1 0
Vengono visualizzate informazioni su processi, memoria, scambio, IO, sistema e CPU. La pagina man del comando afferma quanto segue (man vmstat
):
- Procs
- r: The number of runnable processes (running or waiting for run times)
- b: The number of processes in uninterruptible sleep.
- Memory
- swpd: the amount of virtual memory used.
- free: the amount of idle memory
- buff: the amount of memory used as buffers
- cache: the amount of memory used as cache.
- inact: the amount of inactive memory. (-a option)
- active: the amount of active memory. (-a option)
- Swap
- si: Amount of memory swapped in from disk (/s).
- so: Amount of memory swapped to a block device (/s).
- IO
- bi: Blocks received from a block device (blocks/s).
- bo: Blocks sent to a block device (blocks/s).
- System
- in: The number of interrupts per second, including the clock.
- cs: The number of context switcher per second.
- CPU
- These are percentages of total CPU time.
- us: Time spent running non-kernel code. (user time, including nice time)
- sy: Time spent running kernel code. (system time)
- id: Time spent idle. Prior to Linux 2.5.41, this includes IO-wait time.
- wa: Time spent waiting for IO. Before Linux 2.5.41, included in idle.
- st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown.
Tra le informazioni importanti qui, trovi la quantità di memoria libera sul sistema, nonché la quantità di attività di scambio che stai attualmente riscontrando.
Opzioni da sapere
Il -a
opzione ci darà la memoria attiva e inattiva del sistema:
[tcarrigan@rhel ~]$ vmstat -a
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
r b swpd free inact active si so bi bo in cs us sy id wa st
0 0 0 6022104 609656 1185980 0 0 180 40 80 79 1 1 98 0 0
Il -f
l'opzione ci darà il numero di fork dall'avvio:
[tcarrigan@rhel ~]$ vmstat -f
2911 forks
Nota che un fork è qualsiasi processo che genera un altro processo rimanendo attivo.
Il -s
l'opzione visualizza varie statistiche sulla memoria e contatori di eventi CPU e IO:
[tcarrigan@rhel ~]$ vmstat -s
8161656 K total memory
1216012 K used memory
1186276 K active memory
609632 K inactive memory
6021980 K free memory
2120 K buffer memory
921544 K swap cache
3145724 K total swap
0 K used swap
3145724 K free swap
5888 non-nice user cpu ticks
476 nice user cpu ticks
1520 system cpu ticks
529965 idle cpu ticks
331 IO-wait cpu ticks
939 IRQ cpu ticks
103 softirq cpu ticks
0 stolen cpu ticks
755494 pages paged in
167719 pages paged out
0 pages swapped in
0 pages swapped out
365026 interrupts
374126 CPU context switches
1590618807 boot time
2952 forks
Il -d
l'opzione fornisce statistiche di lettura/scrittura per vari dischi:
[tcarrigan@rhel ~]$ vmstat -d
disk- ------------reads------------ ------------writes----------- -----IO------
total merged sectors ms total merged sectors ms cur sec
sda 17019 40 1498524 10680 4683 1050 335510 1561 0 10
sdb 105 0 6232 67 0 0 0 0 0 0
sdc 105 0 6232 59 0 0 0 0 0 0
sr0 0 0 0 0 0 0 0 0 0 0
dm-0 16677 0 1469065 12431 5713 0 336816 2485 0 10
dm-1 98 0 4440 39 0 0 0 0 0 0
Il -t
l'opzione ci fornisce informazioni sul timestamp con ogni aggiornamento, visualizzate qui:
[tcarrigan@rhel ~]$ vmstat -t 5 10
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- -----timestamp-----
r b swpd free buff cache si so bi bo in cs us sy id wa st EDT
1 0 0 6021412 2120 921548 0 0 118 26 62 66 1 0 99 0 0 2020-05-27 19:00:11
0 0 0 6021300 2120 921548 0 0 0 0 349 510 1 0 99 0 0 2020-05-27 19:00:16
0 0 0 6021272 2120 921548 0 0 0 2 196 294 0 0 100 0 0 2020-05-27 19:00:21
0 0 0 6021272 2120 921548 0 0 0 0 110 161 0 0 100 0 0 2020-05-27 19:00:26
0 0 0 6021272 2120 921548 0 0 0 0 112 169 0 0 100 0 0 2020-05-27 19:00:31
0 0 0 6021272 2120 921548 0 0 0 0 171 267 0 0 99 0 0 2020-05-27 19:00:36
0 0 0 6021188 2120 921552 0 0 0 0 201 291 0 0 99 0 0 2020-05-27 19:00:41
0 0 0 6021188 2120 921552 0 0 0 0 152 233 0 0 100 0 0 2020-05-27 19:00:46
2 0 0 6021188 2120 921552 0 0 0 3 127 165 0 0 100 0 0 2020-05-27 19:00:51
0 0 0 6021188 2120 921552 0 0 0 0 95 131 0 0 100 0 0 2020-05-27 19:00:56
Vedi che ci sono 10 aggiornamenti, stampati ogni cinque secondi, con allegate informazioni sul timestamp.
Inoltre, tieni presente che tutte le statistiche sulla memoria sono visualizzate in kilobyte per impostazione predefinita.
Riepilogo
Per concludere, diamo un'occhiata a ciò che abbiamo imparato. Il vmstat
command è un potente strumento di statistiche di sistema che può essere utilizzato con o senza opzioni. Stampa gli aggiornamenti utilizzando due variabili principali (ritardo e conteggio) e possiamo personalizzare il comando e l'output in base alle nostre esigenze. Spero che questo sguardo al vmstat
ti sia piaciuto comando. Tratterò ifstat
in un prossimo articolo, quindi tienilo d'occhio!
[ Corso online gratuito:panoramica tecnica di Red Hat Enterprise Linux. ]