どんな事でもお気軽にお問い合わせください
0120-803-656
24時間受付いたします

linuxサーバ負荷調査に「dstat」コマンドを使ってみよう。


初めに

こんにちは。
システムソリューション部運用管理課の情報処理安全確保支援士見習い兼、万年留守番係の三木田です。
日々の業務でお客様のlinuxサーバの負荷状況確認を様々なコマンドを用いて頻繁に行うのですが
先日「dstat」コマンドが利用可能な環境であれば、様々な角度から状況が確認できるとわかりました。
そこで,今回はdstatコマンドを用いて様々な負荷状況を確認する方法について書いてみたいと思います。

 

前提条件

今回の記事を作成するにあたり,利用した環境は以下の通りです。
・OS:Amazon Linux 2 AMI (HVM), SSD Volume Type
・dstatのバージョン:Dstat 0.7.2
なお、dstatコマンドですが,標準インストールではインストールされていない場合がありますので
別途インストールする必要があります。
OS標準のリポジトリを利用してyumコマンドでインストール可能ですのでご安心ください。

# yum install dstat

※本記事ではAmazon Linux で作成しておりますが,メジャーなLinuxパッケージ(CentOS等)でも
標準リポジトリに含まれていることを確認しています。

 

基本的な使い方

まずはオプション等は指定せずdstatコマンドを実行してみましょう

# dstat
You did not select any stats, using -cdngy by default.
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw
  1   1  98   0   0   0| 176k  468k|   0     0 |   0     0 |  29   552
  0   0 100   0   0   0|   0     0 |  80B 1004B|   0     0 |  15    26
  0   0 100   0   0   0|   0     0 |  40B  540B|   0     0 |   9    14
  0   0 100   0   0   0|   0     0 |  40B  540B|   0     0 |   9    14
  0   0 100   0   0   0|   0     0 |  40B  540B|   0     0 |   9    15

いかがでしょうか。
オプションを全く設定せず実行しても
CPU負荷,DISK負荷,ネットワーク負荷,SWAPのページング状況,システムの割込状況が
1秒間隔でリアルタイムに表示されることがわかるかと思います。

 

様々なオプションやプラグインを利用してみよう

次にdstatには様々なオプションや機能を拡張するプラグインがあり、こちらが利用できます。
オプションについてはmanコマンドで確認することができ
プラグインについては以下のディレクトリにpythonで記述されたものがdstatをインストールした段階で
多数作成されます。(もちろん自分でも追加作成可能です)

/usr/share/dstat/

 

使ってみて特に便利だと思った状況

私が特にdstatコマンドを使って便利だと思ったのは
「CPUのI/O wait値が高いのだけど、どのプロセスがI/O wait値を上げている原因か知りたい」
といった状況に陥ったときでした。
このような場合で、既存の「top」「vmstat」「iostat」コマンド等では特定に至るまで時間がかかりました。
dstatですと、以下のようなオプションと標準プラグインで一発で確認可能です。

# dstat -tcd --top-io-adv 

上記のコマンドでは「-tcd」がオプションで,「--top-io-adv」がプラグインとなります。
参考にddコマンドでio負荷をかける処理を行い、それを上記dstatコマンドで確認してみます。

# dstat -tcd --top-io-adv
----system---- ----total-cpu-usage---- -dsk/total- -------most-expensive-i/o-process-------
     time     |usr sys idl wai hiq siq| read  writ|process              pid  read write cpu
20-10 04:43:50|  1   0  98   1   0   0|  96k 1933k|bash                 11841 851k 827k0.0%
20-10 04:43:51|  1   1   0  98   0   0|   0   122M|dd                   12166  60M  60M3.0%
20-10 04:43:52|  0   2   0  98   0   0|   0   122M|dd                   12166  58M  58M3.0%
20-10 04:43:53|  1   1   0  98   0   0|   0   122M|dd                   12166  61M  61M4.0%
20-10 04:43:54|  0   0   0 100   0   0|   0   122M|dd                   12166  60M  60M3.0%

どうでしょう,CPUのi/O wait値とdiskのwrite値が上昇している状態で
どのプロセスが原因かが一目瞭然でわかるかと思います。

終わりに

いかがでしたでしょうか。最初からインストールされていない可能性があるといった点以外では
よく使われる「top」「vmstat」「iostat」コマンドよりより有益な情報が多角的に得られることがわかりましたでしょうか。
本記事が皆様のサーバ負荷監視ライフに少しでも貢献できましたら幸いです。では、また来月こちらのブログコーナーでお会いしましょう(多分)


お問い合わせ 採用情報 エンジニアブログ
ISO27001認証
Contact PageTop
株式会社ビヨンド

© beyond Co., Ltd. All rights reserved.