GNU/Linux >> Linux の 問題 >  >> Linux

初心者向けのLinuxvmstatコマンドチュートリアル(5つの例)

プロセス、CPUアクティビティ、メモリなどに関する情報にアクセスするために使用できるコマンドラインユーティリティをお探しの場合は、 vmstatを知っていただければ幸いです。 あなたのためにこれを行います。

この記事では、わかりやすい例を使用して、このツールの基本について説明します。ただし、その前に、この記事のすべての例がUbuntu 20.04 LTSマシンでテストされていることを言及する価値がありますが、CentOSとDebianでも機能します。

Linuxvmstatコマンド

Linuxのvmstatコマンドは、仮想メモリの統計を報告します。その構文は次のとおりです。

vmstat [options] [delay [count]]

そして、ツールのマニュアルページで説明されているのは次のとおりです。

       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.

以下は、vmstatコマンドがどのように機能するかをよりよく理解するためのQ&Aスタイルの例です。

Q1。 vmstatの使用方法は?

基本的な使用法については、オプションなしで「vmstat」を実行するだけです。

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 401160 100252 1307468    0    0     5    17   49   70  0  0 100  0  0

最初の行が示すように、出力は6つのセクションに分割されます。ツールのマニュアルページには、これらの値に関する詳細情報が含まれています。抜粋は次のとおりです:

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。 vmstatに出力を自動更新させる方法は?

デフォルトでは、vmstatは出力を1回生成します。ただし、vmstatで出力を自動的に更新する場合は、コマンドへの入力として数値を指定することで更新できます。

この数値は、出力が更新されるまでの遅延(秒単位)として機能します。例:

vmstat 3

このように、vmstatの出力は3秒ごとに更新されます。

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。 vmstatにslabinfoを表示させる方法は?

slabinfoの場合、-mコマンドラインオプションを使用する必要があります。このオプションを機能させるには、Linuxディストリビューションのカーネルがslabinfoをサポートしている必要があることに注意してください。サポートがある場合は、sudo権限でコマンドを実行する必要があります。

sudo vmstat -m

たとえば、私の場合、生成された出力の抜粋は次のとおりです。

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。 vmstatがディスクアクティビティの要約統計を報告するようにするにはどうすればよいですか?

-Dコマンドラインオプションを使用してください。

vmstat -D

このコマンドが私のシステムで生成した出力は次のとおりです。

           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。 vmstatに各出力行にタイムスタンプを追加させる方法は?

vmstatコマンドが各出力行にタイムスタンプを追加することを確認するには、-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

強調表示されたエントリは、各行に含まれるタイムスタンプを示しています。

結論

Linuxコマンドラインで行う作業の種類によっては、vmstatコマンドが非常に役立つ場合があります。ここで説明するオプションとは別に、このツールが提供するコマンドラインオプションは他にもたくさんあります。詳細については、こちらをご覧ください。


Linux
  1. 初心者向けのLinuxcdコマンドチュートリアル(8例)

  2. 初心者向けのLinux日付コマンドチュートリアル(8例)

  3. 初心者向けのLinuxホスト名コマンドチュートリアル(5つの例)

  1. 初心者向けのLinux通信コマンドチュートリアル(5例)

  2. 初心者向けのLinuxdfコマンドチュートリアル(8例)

  3. 初心者向けのLinuxduコマンドチュートリアル(10例)

  1. 初心者向けのLinuxechoコマンドチュートリアル(5つの例)

  2. 初心者向けのLinuxenvコマンドチュートリアル(5つの例)

  3. 初心者向けのLinuxサイズのコマンドチュートリアル(6つの例)