Jika Anda mencari utilitas baris perintah yang dapat Anda gunakan untuk mengakses informasi tentang proses, aktivitas CPU, memori, dan lainnya, Anda akan senang mengetahui bahwa vmstat melakukan ini untuk Anda.
Pada artikel ini, kita akan membahas dasar-dasar alat ini menggunakan beberapa contoh yang mudah dipahami. Namun sebelum kita melakukannya, perlu disebutkan bahwa semua contoh dalam artikel ini telah diuji pada mesin Ubuntu 20.04 LTS, tetapi akan bekerja pada CentOS dan Debian juga.
Perintah Linux vmstat
Perintah vmstat di Linux melaporkan statistik memori virtual. Berikut sintaksnya:
vmstat [options] [delay [count]]
Dan inilah cara halaman manual alat menjelaskannya:
vmstat reports information about processes, memory, paging, block IO,
traps, disks and cpu activity.
The first report produced gives averages since the last reboot. Addi?
tional reports give information on a sampling period of length delay.
The process and memory reports are instantaneous in either case.
Berikut adalah beberapa contoh gaya Tanya Jawab yang akan memberi Anda gambaran yang lebih baik tentang cara kerja perintah vmstat:
Q1. Bagaimana cara menggunakan vmstat?
Untuk penggunaan dasar, cukup jalankan 'vmstat' tanpa opsi apa pun.
vmstat
Misalnya, dalam kasus saya, perintah di atas menghasilkan output berikut:
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 401160 100252 1307468 0 0 5 17 49 70 0 0 100 0 0
Seperti yang ditunjukkan baris pertama, output dibagi menjadi enam bagian. Halaman manual alat berisi informasi rinci tentang nilai-nilai ini. Berikut petikannya:
Procs
r: The number of runnable processes (running or waiting for run time).
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 disk (/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 switches 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. Prior to Linux 2.5.41, included in idle.
st: Time stolen from a virtual machine. Prior to Linux 2.6.11, unknown.
Q2. Bagaimana cara membuat vmstat memperbarui outputnya secara otomatis?
Secara default, vmstat menghasilkan output sekali. Namun, jika Anda ingin vmstat memperbarui outputnya secara otomatis, Anda dapat melakukannya dengan menetapkan nilai numerik sebagai input ke perintah.
Nilai numerik ini bertindak sebagai penundaan (dalam detik) setelah output diperbarui. Misalnya:
vmstat 3
Dengan cara ini, output vmstat akan disegarkan setiap 3 detik.
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 410928 100276 1307480 0 0 5 17 49 70 0 0 100 0 0
0 0 0 410920 100284 1307480 0 0 0 181 108 143 0 0 100 0 0
0 0 0 410920 100292 1307480 0 0 0 7 92 132 0 0 100 0 0
0 0 0 410920 100292 1307480 0 0 0 0 87 124 0 0 100 0 0
...
...
...
Q3. Bagaimana cara membuat vmstat menampilkan slabinfo?
Untuk slabinfo, Anda perlu menggunakan opsi baris perintah -m. Perhatikan bahwa kernel distribusi Linux Anda perlu mendukung slabinfo agar opsi ini berfungsi. Jika ada dukungan, Anda harus menjalankan perintah dengan izin sudo.
sudo vmstat -m
Sebagai contoh, dalam kasus saya, berikut kutipan dari output yang dihasilkan:
Cache Num Total Size Pages
ufs_inode_cache 0 0 808 40
qnx4_inode_cache 0 0 680 48
hfsplus_attr_cache 0 0 3840 8
hfsplus_icache 0 0 896 36
hfs_inode_cache 0 0 832 39
minix_inode_cache 0 0 672 48
ntfs_big_inode_cache 0 0 960 34
ntfs_inode_cache 0 0 296 55
jfs_ip 0 0 1280 25
xfs_dqtrx 0 0 528 31
xfs_dquot 0 0 496 33
xfs_buf 0 0 384 42
xfs_rui_item 0 0 696 47
xfs_rud_item 0 0 176 46
xfs_inode 0 0 1024 32
xfs_efd_item 0 0 440 37
xfs_buf_item 0 0 272 30
xfs_trans 0 0 232 35
xfs_da_state 0 0 480 34
xfs_btree_cur 0 0 224 36
...
...
...
Q4. Bagaimana cara membuat statistik ringkasan aktivitas disk laporan vmstat?
Gunakan opsi baris perintah -D untuk itu.
vmstat -D
Inilah output yang dihasilkan oleh perintah ini di sistem saya:
10 disks
2 partitions
15066 total reads
5937 merged reads
1272794 read sectors
20063 milli reading
155026 writes
103687 merged writes
4602472 written sectors
105279 milli writing
0 inprogress IO
126 milli spent IO
Q5. Bagaimana cara membuat vmstat menambahkan cap waktu ke setiap baris keluaran?
Untuk memastikan perintah vmstat menambahkan stempel waktu ke setiap baris keluaran, gunakan baris perintah -t:
vmstat -t
$ vmstat 2 -t
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- -----timestamp-----
r b swpd free buff cache si so bi bo in cs us sy id wa st UTC
2 0 0 410116 100432 1308160 0 0 5 17 49 70 0 0 100 0 0 2020-05-08 09:40:05
0 0 0 410116 100432 1308160 0 0 0 88 100 136 0 0 100 0 0 2020-05-08 09:40:07
0 0 0 410116 100440 1308160 0 0 0 18 90 139 0 0 100 0 0 2020-05-08 09:40:09
0 0 0 410116 100440 1308160 0 0 0 0 93 126 0 0 100 0 0 2020-05-08 09:40:11
0 0 0 410368 100448 1308160 0 0 0 10 107 144 0 0 100 0 0 2020-05-08 09:40:13
0 0 0 410368 100448 1308160 0 0 0 0 86 122 0 0 100 0 0 2020-05-08 09:40:15
0 0 0 410368 100448 1308160 0 0 0 0 101 135 0 0 100 0 0 2020-05-08 09:40:17
Entri yang disorot menunjukkan stempel waktu yang disertakan di setiap baris.
Kesimpulan
Bergantung pada jenis pekerjaan yang Anda lakukan di baris perintah Linux, perintah vmstat terbukti sangat membantu. Terlepas dari opsi yang dibahas di sini, ada banyak opsi baris perintah lain yang ditawarkan alat ini. Buka di sini untuk mempelajari lebih lanjut.