dstatコマンドでシステムリソースをモニタリングする(リアルタイム)

宮崎智広 この記事の監修:宮崎智広(Linux実務・教育歴20年以上・受講者3,100名超)
HOMELinux技術 リナックスマスター.JP(Linuxマスター.JP)Linuxtips, サーバー管理, システム管理 > dstatコマンドでシステムリソースをモニタリングする(リアルタイム)
dstatコマンドを使用すれば、
vmstat, iostat, ifstatなどのstat系コマンドを
これ1つで表示することができます。

例えば、
CPUやメモリ情報、ディスクI/OやネットワークI/Oを
リアルタイムでモニタリングできます。
表示を停止する場合は、「Ctrl+c」を実行します。

dstatコマンドがインストールされていない場合は、
下記コマンドでインストールしてください。

【この記事でわかること】

・dstatはvmstat・iostat・ifstatを1コマンドで代替できるシステムモニタリングツール
・CPU使用率・メモリ・ディスクI/O・ネットワークI/Oをリアルタイムで確認できる
・-Tclmでタイムスタンプ付きCPU+ロードアベレージ+メモリ表示が最頻出パターン
・CentOS/RHEL系はyum install dstatでインストール可能


「このままじゃマズい」と感じていませんか?
参考書を開く気力もない、同年代に取り残される不安——
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
図解60P/登録10秒/解除も3秒 / 詳細はこちら

dstatコマンドのインストール

$ su -
パスワード:    ←rootパスワードを入力します。
# yum -y install dstat


dstatコマンドのオプション

-t 時間を表示します。
-c CPU使用時間の割合を表示します。
表示項目 usr ユーザ空間で使われたCPU使用時間の割合
sys システム空間で使われたCPU仕様時間の割合
idl アイドル状態のCPU時間の割合
wai 応答の待ち状態にあったCPU時間の割合
hiq ハードウェア割り込み処理に使われたCPU時間の割合
siq ソフトウェア割り込み処理に使われたCPU時間の割合
-m メモリの状態を表示します。
表示項目 used 物理メモリ全体での使用容量
buff バッファキャッシュで使っているメモリ使用容量
cach ページキャッシュからバッファキャッシュを引いたメモリ使用容量
free 未使用のメモリ使用容量
?vm バーチャルメモリの利用状態を表示します。
表示項目 majpf 物理メモリ上に該当データがロードされなかった回数
minpf 物理メモリに該当データがロードされた回数
alloc 空きメモリを探して割り当てた回数
free メモリを解放した回数
-s スワップの利用状態を表示します。
表示項目 used スワップ全体での使用容量
free 未使用のスワップ容量
-g ページの入出力数を表示します。
表示項目 in ディスクからメモリに読み込んだバイト数
out メモリ不足時にディスクに書き出したバイト数
-d ディスクの状態を表示します。
表示項目 read ディスクの読み込みバイト数
writ ディスクの書き込みバイト数
-r ディスクへの読み書きリクエスト数(IOPS)を表示します。
表示項目 read ディスクの読み込みリクエスト数
writ ディスクの書き込みリクエスト数
-i 割り込み処理の状態を表示します。
表示項目 interrupts 実行待ちのプロセス数
-l ロードアベレージの状態を表示します。
表示項目 1m 1分平均でのCPU時間の利用割合
5m 5分平均でのCPU時間の利用割合
15m 15分平均でのCPU時間の利用割合
-p プロセスの状態を表示します。
表示項目 run 実行中プロセス数
blk ブロック中のプロセス数
new 新しく実行されたプロセス数
-y システム状態を表示します。
表示項目 int 割り込み回数
csw コンテキストスイッチの回数
?lock ファイルロックの状態を表示します。
表示項目 pos posixロック数
lck flockロック数
rea 読み込みロック数
wri 書き込みロック数
-n ネットワーク状態を表示します。
recv ネットワーク全体の受信データ量
send ネットワーク全体の送信データ量
?ipc プロセス間通信の状態を表示します。
msg メッセージキュー
sem セマフォ
shm 共有メモリセグメント
?unix UNIXドメインソケットの状態を表示します。
表示項目 dgm Datagram通信の件数
str Stream通信の件数
lis listenな通信の件数
act activeな通信の件数
-tcp TCP通信のバイト数を表示します。
表示項目 lis 待ちうけ状態の数
act ACTIVE状態の数
syn SYN状態の数
tim TIME_WAIT状態の数
clo CLOSE状態の数
?udp UDP通信のバイト数を表示します。
表示項目 lis 待ちうけ状態の数
act ACTIVE状態の数
--float 小数点も含めて表示します。
--noheaders ヘッダ表示を一回だけにします。

dstatでCPU・メモリ情報を表示する

表示を停止する場合は、「Ctrl+c」を実行します。

# dstat -Tclm
--epoch--- ----total-cpu-usage---- ---load-avg--- ------memory-usage-----
epoch |usr sys idl wai hiq siq| 1m 5m 15m | used buff cach free
1351175951| 0 1 97 1 0 0| 0 0 0|65.3M 14.6M 88.2M 839M
1351175952| 0 0 100 0 0 0| 0 0 0|65.3M 14.6M 88.2M 839M
1351175953| 0 0 100 0 0 0| 0 0 0|65.3M 14.6M 88.2M 839M
1351175954| 0 0 100 0 0 0| 0 0 0|65.3M 14.6M 88.2M 839M
1351175955| 0 0 99 0 1 0| 0 0 0|65.3M 14.6M 88.2M 839M
1351175956| 0 0 100 0 0 0| 0 0 0|65.3M 14.6M 88.2M 839M
1351175957| 0 1 99 0 0 0| 0 0 0|65.3M 14.6M 88.2M 839M^C


dstatでディスクI/O情報を表示する

表示を停止する場合は、「Ctrl+c」を実行します。

# dstat -Tcldr
--epoch--- ----total-cpu-usage---- ---load-avg--- -dsk/total- --io/total-
epoch |usr sys idl wai hiq siq| 1m 5m 15m | read writ| read writ
1351175987| 0 1 97 1 0 0| 0 0 0| 85k 5791B|2.70 0.44
1351175988| 0 0 100 0 0 0| 0 0 0| 0 0 | 0 0
1351175989| 0 0 100 0 0 0| 0 0 0| 0 0 | 0 0
1351175990| 0 1 99 0 0 0| 0 0 0| 0 0 | 0 0
1351175991| 0 0 100 0 0 0| 0 0 0| 0 0 | 0 0
1351175992| 0 0 100 0 0 0| 0 0 0| 0 0 | 0 0


dstatでネットワークI/Oを表示する

表示を停止する場合は、「Ctrl+c」を実行します。

# dstat -Tclnd
--epoch--- ----total-cpu-usage---- ---load-avg--- -net/total- -dsk/total-
epoch |usr sys idl wai hiq siq| 1m 5m 15m | recv send| read writ
1351176049| 0 1 97 1 0 0| 0 0 0| 0 0 | 81k 5580B
1351176050| 0 0 100 0 0 0| 0 0 0| 66B 822B| 0 0
1351176051| 0 0 100 0 0 0| 0 0 0| 66B 342B| 0 0
1351176052| 0 1 99 0 0 0| 0 0 0| 66B 342B| 0 0
1351176053| 0 0 100 0 0 0| 0 0 0| 66B 342B| 0 0
1351176054| 0 0 100 0 0 0| 0 0 0| 66B 342B| 0 0
1351176055| 0 0 100 0 0 0| 0 0 0| 66B 342B| 0 0
1351176056| 1 0 99 0 0 0| 0 0 0| 66B 342B| 0 0


dstatですべての情報を表示する

表示を停止する場合は、「Ctrl+c」を実行します。

# dstat -Tclmdrn
--epoch--- ----total-cpu-usage---- ---load-avg--- ------memory-usage----- -dsk/total- --io/total- -net/total-
epoch |usr sys idl wai hiq siq| 1m 5m 15m | used buff cach free| read writ| read writ| recv send
1351176114| 0 1 98 1 0 0| 0 0 0|65.2M 14.6M 88.2M 839M| 77k 5372B|2.45 0.42 | 0 0
1351176115| 0 0 100 0 0 0| 0 0 0|65.3M 14.6M 88.2M 839M| 0 0 | 0 0 | 66B 1174B
1351176116| 0 0 100 0 0 0| 0 0 0|65.3M 14.6M 88.2M 839M| 0 0 | 0 0 | 66B 470B
1351176117| 0 0 100 0 0 0| 0 0 0|65.3M 14.6M 88.2M 839M| 0 0 | 0 0 | 66B 470B
1351176118| 0 0 100 0 0 0| 0 0 0|65.3M 14.6M 88.2M 839M| 0 0 | 0 0 | 66B 470B
1351176119| 1 1 98 0 0 0| 0 0 0|65.3M 14.6M 88.2M 839M| 0 0 | 0 0 | 66B 470B
1351176120| 0 0 100 0 0 0| 0 0 0|65.3M 14.6M 88.2M 839M| 0 0 | 0 0 | 66B 470B
1351176121| 0 0 100 0 0 0| 0 0 0|65.3M 14.6M 88.2M 839M| 0 0 | 0 0 | 66B 470B


dstatで把握したリソース状況、次は安全なサーバー設計に活かしませんか?

サーバーのリソース監視は障害対応の第一歩です。ただ見るだけでなく、そのデータをもとに構成を改善できてこそ現場力になります。
現場で通用する安全なLinuxサーバー構築の「型」を体系的に身につけたい方へ、『Linuxサーバー構築入門マニュアル(図解60P)』を完全無料でプレゼントしています。

「独学の時間がもったいない」「プロから直接、現場の技術を最短で学びたい」という本気の方には、2日で実務レベルのスキルが身につく【初心者向けハンズオンセミナー】も開催しています。

無料メルマガで学習を続ける

Linuxの実践スキルをメールで毎週お届け。
登録は1分、解除もいつでも可。

登録無料・いつでも解除できます

暗記不要・1時間後にはサーバーが動く

3,100名以上が実践した「型」を無料で公開中

プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。

登録10秒/合わなければ解除3秒 / 詳細はこちら

Linux無料マニュアル(図解60P) 名前とメールで30秒登録
宮崎 智広

この記事を書いた人

宮崎 智広(みやざき ともひろ)

株式会社イーネットマーキュリー代表。現役のLinuxサーバー管理者として15年以上の実務経験を持ち、これまでに累計3,100名以上のエンジニアを指導してきたLinux教育のプロフェッショナル。「現場で本当に使える技術」を体系的に伝えることをモットーに、実践型のLinuxセミナーの開催や無料マニュアルの配布を通じてLinux人材の育成に取り組んでいる。

趣味は、キャンプにカメラ、トラウト釣り。好きな食べ物は、ラーメンにお酒。休肝日が作れない、酒量を減らせないのが悩み。最近、ドラマ「フライトエンジェル」を観て涙腺が崩壊しました。