การตรวจสอบประสิทธิภาพ Linux ด้วยคำสั่ง Vmstat และ Iostat
นี่คือชุดคำสั่ง Linux และการตรวจสอบประสิทธิภาพ Linux ที่กำลังดำเนินอยู่ของเรา ในบทความนี้ คุณจะได้เรียนรู้เกี่ยวกับคำสั่ง Vmstat และ Iostat ซึ่งมีอยู่ใน Unix หลักทั้งหมด -like (Linux/Unix/FreeBSD/Solaris) ระบบปฏิบัติการ
คำสั่ง vmstat (หรือที่เรียกว่าเครื่องมือสถิติหน่วยความจำเสมือน) แสดงข้อมูลเกี่ยวกับกระบวนการ หน่วยความจำ ดิสก์ และกิจกรรมของ CPU ใน Linux ในขณะที่คำสั่ง iostat ใช้ในการตรวจสอบการใช้งาน CPU สถิติอินพุต/เอาท์พุตของระบบสำหรับดิสก์และพาร์ติชันทั้งหมด
หากไม่มีคำสั่ง vmstat และ iostat ในเครื่อง Linux ของคุณ โปรดติดตั้งแพ็คเกจ sysstat คำสั่ง vmstat, sar, และ iostat คือชุดของแพ็คเกจที่รวมอยู่ใน sysstat ซึ่งเป็นเครื่องมือตรวจสอบระบบ
คุณสามารถดาวน์โหลดและติดตั้ง sysstat โดยใช้ tarball ต้นทางจากลิงก์ sysstat แต่เราแนะนำให้ติดตั้งผ่านตัวจัดการแพ็คเกจ
ติดตั้ง Sysstat ใน Linux
sudo apt install sysstat [On Debian, Ubuntu and Mint]
sudo yum install sysstat [On RHEL/CentOS/Fedora and Rocky Linux/AlmaLinux]
sudo emerge -a app-admin/sysstat [On Gentoo Linux]
sudo pacman -S sysstat [On Arch Linux]
sudo zypper install sysstat [On OpenSUSE]
เรียนรู้ตัวอย่างคำสั่ง Vmstat ใน Linux
ในส่วนนี้ คุณจะได้เรียนรู้เกี่ยวกับตัวอย่างคำสั่ง vmstat 6 ตัวอย่างและการใช้งานพร้อมภาพหน้าจอ
1. แสดงรายการหน่วยความจำที่ใช้งานและไม่ใช้งาน
ในตัวอย่างด้านล่าง มีหกคอลัมน์ ความสำคัญของคอลัมน์มีการอธิบายไว้ในหน้าคู่มือของ vmstat โดยละเอียด ช่องที่สำคัญที่สุด ว่าง ใต้หน่วยความจำ และ si ดังนั้น อยู่ใต้คอลัมน์สลับ
[root@tecmint ~]# 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
1 0 0 810420 97380 70628 0 0 115 4 89 79 1 6 90 3 0
- ฟรี – จำนวนพื้นที่หน่วยความจำว่าง/ไม่ได้ใช้งาน
- si – สลับทุกๆ วินาทีจากดิสก์ในหน่วยกิโลไบต์
- งั้น – สลับออกทุกวินาทีเป็นดิสก์ในหน่วยกิโลไบต์
หมายเหตุ: หากคุณรัน vmstat โดยไม่มีพารามิเตอร์ ก็จะแสดงรายงานสรุปตั้งแต่บูตระบบ
2. ดำเนินการ vmstat 'X' วินาทีและ ('จำนวนครั้ง)
ด้วยคำสั่งนี้ vmstat จะดำเนินการทุกสองวินาทีและหยุดโดยอัตโนมัติหลังจากดำเนินการหกช่วงเวลา
[root@tecmint ~]# vmstat 2 6
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 810420 22064 101368 0 0 56 3 50 57 0 3 95 2 0
0 0 0 810412 22064 101368 0 0 0 0 16 35 0 0 100 0 0
0 0 0 810412 22064 101368 0 0 0 0 14 35 0 0 100 0 0
0 0 0 810412 22064 101368 0 0 0 0 17 38 0 0 100 0 0
0 0 0 810412 22064 101368 0 0 0 0 17 35 0 0 100 0 0
0 0 0 810412 22064 101368 0 0 0 0 18 36 0 1 100 0 0
3. Vmstat พร้อมการประทับเวลา
คำสั่ง vmstat พร้อมด้วยพารามิเตอร์ -t
จะแสดงการประทับเวลาโดยพิมพ์ทุกบรรทัดดังที่แสดงด้านล่าง
[tecmint@tecmint ~]$ vmstat -t 1 5
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ ---timestamp---
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 632028 24992 192244 0 0 70 5 55 78 1 3 95 1 0 2012-09-02 14:57:18 IST
1 0 0 632028 24992 192244 0 0 0 0 171 514 1 5 94 0 0 2012-09-02 14:57:19 IST
1 0 0 631904 24992 192244 0 0 0 0 195 600 0 5 95 0 0 2012-09-02 14:57:20 IST
0 0 0 631780 24992 192244 0 0 0 0 156 524 0 5 95 0 0 2012-09-02 14:57:21 IST
1 0 0 631656 24992 192244 0 0 0 0 189 592 0 5 95 0 0 2012-09-02 14:57:22 IST
4. สถิติของเคาน์เตอร์ต่างๆ
คำสั่ง vmstat พร้อมสวิตช์ -s
จะแสดงข้อมูลสรุปของตัวนับเหตุการณ์ต่างๆ และสถิติหน่วยความจำ
[tecmint@tecmint ~]$ vmstat -s
1030800 total memory
524656 used memory
277784 active memory
185920 inactive memory
506144 free memory
26864 buffer memory
310104 swap cache
2064376 total swap
0 used swap
2064376 free swap
4539 non-nice user cpu ticks
0 nice user cpu ticks
11569 system cpu ticks
329608 idle cpu ticks
5012 IO-wait cpu ticks
79 IRQ cpu ticks
74 softirq cpu ticks
0 stolen cpu ticks
336038 pages paged in
67945 pages paged out
0 pages swapped in
0 pages swapped out
258526 interrupts
392439 CPU context switches
1346574857 boot time
2309 forks
5. ตรวจสอบสถิติดิสก์ Linux
vmstat พร้อมตัวเลือก -d
แสดงสถิติดิสก์ทั้งหมดของ Linux
[tecmint@tecmint ~]$ vmstat -d
disk- ------------reads------------ ------------writes----------- -----IO------
total merged sectors ms total merged sectors ms cur sec
ram0 0 0 0 0 0 0 0 0 0 0
ram1 0 0 0 0 0 0 0 0 0 0
ram2 0 0 0 0 0 0 0 0 0 0
ram3 0 0 0 0 0 0 0 0 0 0
ram4 0 0 0 0 0 0 0 0 0 0
ram5 0 0 0 0 0 0 0 0 0 0
ram6 0 0 0 0 0 0 0 0 0 0
ram7 0 0 0 0 0 0 0 0 0 0
ram8 0 0 0 0 0 0 0 0 0 0
ram9 0 0 0 0 0 0 0 0 0 0
ram10 0 0 0 0 0 0 0 0 0 0
ram11 0 0 0 0 0 0 0 0 0 0
ram12 0 0 0 0 0 0 0 0 0 0
ram13 0 0 0 0 0 0 0 0 0 0
ram14 0 0 0 0 0 0 0 0 0 0
ram15 0 0 0 0 0 0 0 0 0 0
loop0 0 0 0 0 0 0 0 0 0 0
loop1 0 0 0 0 0 0 0 0 0 0
loop2 0 0 0 0 0 0 0 0 0 0
loop3 0 0 0 0 0 0 0 0 0 0
loop4 0 0 0 0 0 0 0 0 0 0
loop5 0 0 0 0 0 0 0 0 0 0
loop6 0 0 0 0 0 0 0 0 0 0
loop7 0 0 0 0 0 0 0 0 0 0
sr0 0 0 0 0 0 0 0 0 0 0
sda 7712 5145 668732 409619 3282 28884 257402 644566 0 126
dm-0 11578 0 659242 1113017 32163 0 257384 8460026 0 126
dm-1 324 0 2592 3845 0 0 0 0 0 2
6. แสดงสถิติเป็นเมกะไบต์
vmstat จะแสดงสถิติหน่วยความจำเป็นกิโลไบต์ตามค่าเริ่มต้น แต่คุณยังสามารถแสดงรายงานที่มีขนาดหน่วยความจำเป็นเมกะไบต์ด้วยอาร์กิวเมนต์ -S M
ลองพิจารณาตัวอย่างต่อไปนี้
[root@tecmint ~]# vmstat -S M 1 5
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu-----
r b swpd free buff cache si so bi bo in cs us sy id wa st
0 0 0 346 53 476 0 0 95 8 42 55 0 2 96 2 0
0 0 0 346 53 476 0 0 0 0 12 15 0 0 100 0 0
0 0 0 346 53 476 0 0 0 0 32 62 0 0 100 0 0
0 0 0 346 53 476 0 0 0 0 15 13 0 0 100 0 0
0 0 0 346 53 476 0 0 0 0 34 61 0 1 99 0 0
เรียนรู้ตัวอย่างคำสั่ง Iostat ใน Linux
ในส่วนนี้ คุณจะได้เรียนรู้เกี่ยวกับตัวอย่างคำสั่ง iostat 6 ตัวอย่างและการใช้งานพร้อมภาพหน้าจอ
7. แสดงสถิติ CPU และ I/O ของดิสก์
iostat ที่ไม่มีอาร์กิวเมนต์จะแสดงสถิติ CPU และ I/O ของพาร์ติชันทั้งหมดดังที่แสดงด้านล่าง
[root@tecmint ~]# iostat
Linux 2.6.32-279.el6.i686 (linux-console.net) 09/03/2012 _i686_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.12 0.01 1.54 2.08 0.00 96.24
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 3.59 161.02 13.48 1086002 90882
dm-0 5.76 159.71 13.47 1077154 90864
dm-1 0.05 0.38 0.00 2576 0
8. แสดงสถิติ Linux CPU
iostat พร้อมด้วยอาร์กิวเมนต์ -c
จะแสดงเฉพาะสถิติ CPU ดังที่แสดงด้านล่าง
[root@tecmint ~]# iostat -c
Linux 2.6.32-279.el6.i686 (linux-console.net) 09/03/2012 _i686_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.12 0.01 1.47 1.98 0.00 96.42
9. แสดงสถิติ I/O ของดิสก์ Linux
iostat พร้อมด้วยอาร์กิวเมนต์ -d
จะแสดงเฉพาะสถิติดิสก์ I/O ของพาร์ติชันทั้งหมดดังที่แสดง
[root@tecmint ~]# iostat -d
Linux 2.6.32-279.el6.i686 (linux-console.net) 09/03/2012 _i686_ (1 CPU)
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 3.35 149.81 12.66 1086002 91746
dm-0 5.37 148.59 12.65 1077154 91728
dm-1 0.04 0.36 0.00 2576 0
10. แสดงสถิติ I/O ของอุปกรณ์เฉพาะ
ตามค่าเริ่มต้น จะแสดงสถิติของพาร์ติชันทั้งหมด โดยมี -p
และอาร์กิวเมนต์ชื่ออุปกรณ์จะแสดงเฉพาะสถิติดิสก์ I/O สำหรับอุปกรณ์เฉพาะตามที่แสดงเท่านั้น
[root@tecmint ~]# iostat -p sda
Linux 2.6.32-279.el6.i686 (linux-console.net) 09/03/2012 _i686_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.11 0.01 1.44 1.92 0.00 96.52
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 3.32 148.52 12.55 1086002 91770
sda1 0.07 0.56 0.00 4120 18
sda2 3.22 147.79 12.55 1080650 91752
11. แสดงสถิติ LVM
ด้วยพารามิเตอร์ -N
(ตัวพิมพ์ใหญ่) จะแสดงเฉพาะสถิติ LVM ตามที่แสดง
[root@tecmint ~]# iostat -N
Linux 2.6.32-279.el6.i686 (linux-console.net) 09/03/2012 _i686_ (1 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
0.11 0.01 1.39 1.85 0.00 96.64
Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtn
sda 3.20 142.84 12.16 1086002 92466
vg_tecmint-lv_root 5.13 141.68 12.16 1077154 92448
vg_tecmint-lv_swap 0.04 0.34 0.00 2576 0
12. ตรวจสอบเวอร์ชัน Iostat
ด้วยพารามิเตอร์ -V
(ตัวพิมพ์ใหญ่) จะแสดงเวอร์ชันของ iostat ดังที่แสดง
[root@tecmint ~]# iostat -V
sysstat version 11.7.3
(C) Sebastien Godard (sysstat orange.fr)
vmstat และ iostat มีจำนวนคอลัมน์และแฟล็กซึ่งอาจไม่สามารถอธิบายโดยละเอียดได้ หากคุณต้องการทราบข้อมูลเพิ่มเติม คุณสามารถดู man page ของ vmstat และ iostat
man vmstat
man iostat
โปรดแบ่งปันหากคุณพบว่าบทความนี้มีประโยชน์ผ่านช่องแสดงความคิดเห็นด้านล่าง