ホームページ  >  記事  >  システムチュートリアル  >  Linux で vmstat コマンドを使用する方法

Linux で vmstat コマンドを使用する方法

WBOY
WBOY転載
2024-02-14 23:09:02724ブラウズ

vmstat は 仮想メモリ統計 の略称です。これは Linux で非常に便利な監視ツールです。メモリに加えて、ブロック IO や CPU 時間などの追加情報も提供します

######文法######

vmstat コマンドの実行には特別な権限は必要なく、一般ユーザーでも実行できます。構文は次のとおりです。 リーリー

lay

データ更新間隔を秒単位で示します。この値が指定されていない場合は、システムが起動してからの平均時間を示し、結果はこの時点で 1 回だけ出力されます

count は出力回数を表します。この値が指定されていない場合、

delay

の値が指定されている場合は、無制限の回数を意味します。 結果フィールドの説明

コマンドラインに

vmstat と入力して Enter を押すと、結果が 1 回出力されます リーリー

結果には多くのフィールドがあります。次の表に各フィールドの詳細な説明を示します

############分野###

イラスト#r実行可能プロセスの数 (実行中および準備完了状態を含む)b無中断スリープ状態のプロセスの数swpd仮想メモリの使用量 #########無料### 空きメモリバフバッファとして使用されるメモリの量キャッシュとして使用されるメモリの量siディスクからスワップされたメモリの量メモリからディスクにスワップアウトされた量バイブロックデバイスから受信したブロック数、単位:ブロック/秒ボブロックデバイスに送信されたブロック数、単位: ブロック/秒 #########で### クロック割り込みを含む 1 秒あたりの割り込み数 cs1秒あたりのコンテキストスイッチ数######私たち### ユーザーモードの実行時間syカーネルモード実行時間CPUアイドル時間IOの待ち時間仮想マシンから盗まれた時間
#########キャッシュ###
#########それで###
#id
st

表の 2 行目 無中断スリープ状態のプロセスの数 、ここでの無中断とは、特定のシステム コールを実行するときにプロセスが入る状態を指します。プロセスはブロックされており、システム コールが完了するまで中断できません

フィールドの結果は、上から下に色に従っていくつかの部分に分かれています:プロセス情報、メモリ情報、IO情報、システム割り込みとコンテキスト、CPU時間

メモリ情報の値のデフォルトの単位は KB (1024 キロバイト) です。CPU 時間フィールドは特定の時間を表すのではなく、合計 CPU 時間の割合を表します

共通オプション

オプション イラスト
-a アクティブなメモリと非アクティブなメモリを表示する
-f システム起動以降のフォークの数 (fork、vfork、clone などのシステム コールを含む)
-s システム イベント数とメモリ統計の表示
-d ディスク統計のレポート
-D アクティブディスクの統計情報
-p 指定したパーティションの詳細
-t 時間表示の列を追加します
-S 指定バイト単位で表示
-w 結果はワイドモードで表示されます
-V vmstat バージョン

常见用法

vmstat 命令主要用于识别系统的瓶颈,统计数据的时候,它不会包含自身进程

  • 按照指定时间间隔和次数输出
[root@cghost22 ~]$ vmstat 2 10
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 2  0  12552 148356 234324 3382956    0    0     1    21    4    4  2  2 97  0  0
 1  0  12552 148264 234324 3382980    0    0     0     0 14974 27478  3  2 96  0  0
 1  0  12552 148232 234324 3382984    0    0     0    14 14384 27181  3  2 96  0  0
 0  0  12552 148376 234332 3383052    0    0     0   204 14197 26812  4  2 94  0  0
 0  0  12552 148512 234332 3383088    0    0     0     4 14398 27155  3  2 95  0  0
 0  0  12552 147892 234332 3383128    0    0     0   210 15515 28802  3  2 95  0  0
 1  0  12552 148388 234332 3383156    0    0     0     0 15147 28042  3  2 95  0  0
 0  0  12552 148264 234332 3383168    0    0     0     4 14380 27395  3  1 96  0  0
 0  0  12552 148264 234336 3383216    0    0     0   198 14430 27008  3  1 95  0  0
 2  0  12552 148140 234336 3383252    0    0     0     6 14233 27161  3  2 95  0  0

2 表示每隔 2 秒输出一次结果,10 表示总共输出 10 次,10 次之后程序自动结束

  • 修改内存显示单位

输出的结果中,内存数据的单位默认是 KB,可以通过 -S 选项调整显示的单位,有下面几种单位可供选择

注意:-S 选项对 si、 so 字段无效

k    # 1000 bytes
K    # 1024 bytes
m    # 1000 * 1000 bytes
M    # 1024 * 1024 bytes
Linux 下如何使用 vmstat 命令

上图中第一个结果中内存数据显示单位是 KB , 第二个结果中单位是 MB,将第一个结果对应字段的数值除以 1024 就得到了第二个结果

  • 活跃内存和非活跃内存
Linux 下如何使用 vmstat 命令

inact 是非活跃内存,active 是活跃内存

活跃内存是进程在使用的内存,非活跃内存是未运行进程的内存

  • 系统启动以来 fork 的数量

这里的 fork 数量包括 fork、vfork 以及 clone 等系统调用

[root@cghost22 ~]# vmstat -f
        12714 forks
[root@cghost22 ~]# vmstat -f
        12715 forks
[root@cghost22 ~]# vmstat -f
        12716 forks

我们每次在控制台执行一次命令,系统就会 fork 一个新的进程来执行命令,比如像上面的例子,每执行一次 vmstat -f 命令,系统就会 fork 一个新进程

这个选项还可以用于统计某个操作消耗多少次 fork 调用,只需要在操作前后各执行一次 vmstat -f 命令,比较两次结果的差值即可

  • 每行追加一列时间

追加一列时间显示,有助于比较一段时间内的结果

Linux 下如何使用 vmstat 命令
  • 按照宽模式显示

vmstat 结果中的某些字段的数字有时会比较长,而且跟字段名的位置有偏差, 不太适合人类的观看习惯,-w 选项可以按照宽模式显示数据,使结果看起来更直观,下图是分别未使用宽模式和使用了宽模式的一个对比

Linux 下如何使用 vmstat 命令
  • 统计磁盘信息
Linux 下如何使用 vmstat 命令

磁盘信息主要分三个方面:读、写、IO ,读和写以毫秒为单位,IO以秒为单位

读
    total:     成功读取的总数
    merged:    分组读取(产生一个 IO)
    sectors:   成功读取的扇区数
    ms:        读取花费的毫秒
    
写
    total:      成功写入的总数
    merged:     分组写入(产生一个 IO)
    sectors:    成功写入的扇区数
    ms:         写花费的毫秒
    
IO
    cur:    正在进行的IO
    s:      IO花费的秒数
  • 指定磁盘分区信息
Linux 下如何使用 vmstat 命令

上图中,输出结果显示 sda3 分区设备的信息,它们包括:读计数、读取的扇区数,写计数,分区写请求总数

以上がLinux で vmstat コマンドを使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はlxlinux.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。