linuxのvmstatコマンドでシステムの状況をモニターする方法を確認しました。
1)vmstatコマンドの概要
・メモリ使用量、ディスク使用状況、CPU使用率などの情報を表示。
・引数に数値nを指定するとn秒間隔に測定して結果を表示する。
(実行例)
$ vmstat 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 97656 164588 151932 795708 0 0 4 11 0 0 1 0 99 0 0 0 0 97656 164332 151940 795708 0 0 0 13 61 34 0 0 100 0 0 0 0 97656 164456 151940 795708 0 0 0 0 63 32 0 0 100 0 0 0 0 97656 164320 151944 795704 0 0 0 12 108 63 1 0 99 0 0 0 0 97656 164376 151944 795708 0 0 0 0 61 32 0 0 100 0 0
2)表示結果の見方
①procs
r:実行待ちのプロセス数
b:ブロックされているプロセス数
・ブロックされているプロセスは、ハードウェア、特にディスク処理を待機しているため実行できない。
・bの値が高い場合は、ディスクがボトルネックとなっている可能性が高い。
・rがCPUコアの数より多い場合は、性能の低下を引き起こすので要注意。
②memory
swpd:仮想メモリ(スワップメモリ)がどれだけ使用されているか?
free:アイドルメモリ
buff:バッファとして使用されているメモリ
cache:キャッシュとして使用されているメモリ
③swap
si:スワップからreadされたバイト(/s)
so:スワップに書き込まれたバイト(/s)
・スワップが発生している場合は、物理メモリが不足している。ディスク待ちでブロックされているプロセス数が増加する。
④io
bi:ブロックデバイス(ハードディスク)からreadされたバイト(blocks/s)
bo:ブロックデバイス(ハードディスク)に書き込んだバイト(blocks/s)
・ディスクがボトルネックとなっている場合は、この数値を下げる対策を検討する。
⑤system
in:CPU割り込みの数(/s)
cs:コンテキストスイッチの数(/s)
・コンテキストスイッチは、CPUが処理するプロセスを切替えたり、割り込みを処理する場合などに行われる。この数が著しく高い場合は性能に影響が出る。
⑥cpu
us:非カーネルのユーザーコードで実行された時間
sy:カーネルのコードで実行された時間
id:アイドルタイム
wa:I/O待ちの時間
st:仮想マシンに使用された時間
・waが高い場合は、ioやswapが高くなっていないかチェックする。 関連記事の目次
-
システム管理
- CentOSのブートの流れ、ランレベルの指定
- CentOS6のrc.sysinitスクリプトの処理内容の概要
- procファイルシステムの概要
- sysctlコマンドでカーネルパラメータの参照、変更
- cron、anacronで自動定期実行
- at、batchコマンドの概要
- CentOS6のシステムログ
- rsyslogの設定方法
- システムログのローテート設定
- CentOSのハードウェア情報を表示するコマンド
- CentOSでパーティション、スワップ、ディスク情報を確認
- LinuxのLVMの概要と表示コマンド
- ボリュームグループ、論理ボリューム作成、ファイルシステム作成、マウント設定、物理ボリュームを追加
- CentOSで論理ボリューム、ext4ファイルシステムを拡張
- CentOSのLVMでボリュームグループから物理ボリュームを削除
- WindowsからCentOS6にリモートデスクトップする手順
- viエディタの使用方法
- HTMLのマニュアルをLinuxのターミナル画面上で読む
- findコマンドで直近に更新されたファイルを調べる方法
- Linuxでディスク使用量が多いディレクトリを調べる方法(1)
- Linuxでディスク使用量が多いディレクトリを調べる方法(2)
- psコマンドで全プロセスを表示する方法と表示結果の見方
- プロセス階層、プロセスグループ、セッションを確認するには?
- psコマンドでスレッドに関する情報を表示するには?
- netstat、nmapを使ってリッスンポートを確認する方法
- vmstatコマンドでシステムの状況をモニター
- シェル変数と環境変数の違い
- CentOSのユーザー環境設定ファイル(bashrc、profile)
- 日本語設定、シェル環境設定
- umaskはどこで設定されている?
- CentOS6の各種ネットワーク設定ファイルとインタフェース制御スクリプト
- CentOS6のTCPラッパーの概要と設定方法
- LinuxのNetworkManagerプロセスの概要
- CentOS6のユーザー管理の概要とコマンド操作
- ファイルのパーミッション設定、ディレクトリは要注意
- Linuxでスティッキービットが設定されているか確認する方法
- sudoで特定のコマンドのみをroot権限で実行する
- RHEL6、CentOS6の64ビットサポートとhuge pages
- RHEL6、CentOS6の64ビットサポートとNUMA
Linuxコマンド操作
シェル環境設定
ネットワーク関連
ユーザー管理、権限
64ビットサポート