ค้นหาเว็บไซต์

การตรวจสอบประสิทธิภาพ 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

โปรดแบ่งปันหากคุณพบว่าบทความนี้มีประโยชน์ผ่านช่องแสดงความคิดเห็นด้านล่าง