ניטור ביצועי Linux עם פקודות Vmstat ו־Iostat

זהו סדרת ההמשך של Linux Commands ו-Linux Performance Monitoring שלנו, במאמר זה, תלמד על Vmstat ו-Iostat פקודות, שזמינות בכל המערכות הפעלה המרכזיות Unix-like (Linux/Unix/FreeBSD/Solaris).

vmstat פקודה (הידועה גם ככלי הסטטיסטיקה של זיכרון וירטואלי) מציגה מידע על תהליכים, זיכרון, דיסק ופעילות מעבד בלינוקס, ואילו פקודת iostat משמשת לניטור שימוש במעבד, סטטיסטיקות קלט/פלט מערכת עבור כל הדיסקים והחלקים.

אם הפקודות vmstat ו-iostat אינן זמינות במכשיר הלינוקס שלך, אנא התקן את החבילה sysstat. הפקודות vmstat, sar, ו-iostat הן אוסף של חבילה הכלולה ב-sysstat – כלי הניטור של המערכת.

אפשר להוריד ולהתקין sysstat באמצעות חבילת המקור מהקישור sysstat, אך אנו ממליצים על התקנה דרך מנהל החבילה.

להתקין Sysstat בלינוקס

$ 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]    
Install Sysstat in Linux

למד איך להשתמש בפקודת Vmstat בלינוקס

בקטע זה, תלמד על 6 דוגמאות לשימוש בפקודת vmstat ושימוש עם תצוגות מסך.

1. רשימת זיכרון פעיל ולא פעיל

בדוגמה שלהלן, יש שישה עמודות. החשיבות של העמודות מוסברת בדף העזר של vmstat בפירוט. השדות החשובים ביותר הם free תחת זיכרון ו-si, so תחת עמודת החילוץ.

[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
  • Free – כמות השטחים בזיכרון חופשי/מופעל.
  • si – מחולק כל שנייה מהכונן ב-KiloBytes.
  • so – מחולק כל שנייה לכונן ב-KiloBytes.

הערה: אם תפעיל 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. מעקב אחרי סטטיסטיקות דיסקים בלינוקס

פקודת vmstat עם אפשרות -d מציגה את כל הסטטיסטיקות של הדיסקים בלינוקס.

[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 בלינוקס

בקטע זה תלמד על 6 דוגמאות לפקודת iostat והשימוש בהן עם צילומי מסך.

7. הצגת סטטיסטיקות מעבד ו-I/O של דיסקים

פקודת iostat ללא ארגומנטים מציגה את סטטיסטיקות ה-מעבד וה-I/O של כל המחיצות כפי שמוצג למטה.

[root@tecmint ~]# iostat

Linux 2.6.32-279.el6.i686 (tecmint.com)         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. הצגת סטטיסטיקות מעבד בלינוקס

פקודת iostat עם ארגומנטים -c מציגה רק את סטטיסטיקות ה-מעבד כפי שמוצג למטה.

[root@tecmint ~]# iostat -c

Linux 2.6.32-279.el6.i686 (tecmint.com)         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 של דיסקים בלינוקס

פקודת iostat עם ארגומנטים -d מציגה רק את סטטיסטיקות ה-I/O של כל המחיצות כפי שמוצג.

[root@tecmint ~]# iostat -d

Linux 2.6.32-279.el6.i686 (tecmint.com)         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 (tecmint.com)         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 (tecmint.com)         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 מכילים מספר עמודות ודגלים שאולי לא ניתן להסביר בפירוט. אם ברצונך לדעת יותר על כך, תוכל לעיין בדף העזרה של vmstat ושל iostat.

# man vmstat
# man iostat

אנא שתף אם מצאת מאמר זה מועיל באמצעות תיבת התגובות שלנו למטה.

Source:
https://www.tecmint.com/linux-performance-monitoring-with-vmstat-and-iostat-commands/