IThaiのブログ

IT関連の話題やタイに関する様々なことを書いていきます。

サーバ負荷状況をみるLinuxコマンド一覧

今日はサーバの負荷状況をみるコマンドを勉強しましたので、私的メモとして残しておきます。

だいたい以下のようなものがあるようです。

uptime

ロードアベレージを表示します。 f:id:kkv:20150301012014p:plain

現在時間、サーバの稼働時間、ログインユーザ数、ロードアベレージを表示します。

*ロードアベレージについては以下が詳しいです。
パフォーマンス・モニタでCPUとディスクのロード・アベレージを表示させる − @IT

free

メモリーの使用状況を表示します。(kバイト) f:id:kkv:20150301012038p:plain

・total:全物理メモリ量、used:使用メモリ、free:使用していないメモリ、shares:共有メモリ、bufferes:バッファメモリ、cached:キャッシュメモリ、used(-/+bufferes/cache):usedからbufferesとcacheを引いたメモリ、free(-/+bufferes/cache):freeにbufferesとcacheを足したメモリ

top

topはサーバのCPUやメモリの使用状況と各プロセスの表示をするコマンドです。

f:id:kkv:20150228180809p:plain

・1行目
uptimeと同じです。

・2行目
タスクの合計数、実行中タスクの数、スリープ中のタスクの数、停止中のタスクの数、ゾンビタスクの数を表示します。

・3行目
CPU利用時間の割合を表示します。それぞれ、us:ユーザプロセス、sy:システムプロセス、ni:niceされたプロセス、id:アイドル状態のプロセス、wa:IO待ちのプロセス、hi:ハードウェア割り込みプロセス、si:ソフトウェア割り込みプロセス、st:仮想化環境で他OSのプロセスの時間です。

・4行目と5行目
Mem:メモリの使用量
Swap:スワップの量

・6行目以降
各プロセスの使用状況
PID:プロセスID、USER:プロセス実行ユーザ、PR:優先度、NI:相対優先度、VIRT:仮想メモリサイズ(スワップされたメモリ含む)、RES:使用したメモリ、SHR:共有メモリ、S:プロセスの状態、%CPU:CPU使用率、%MEM:メモリ使用率、TIME+:プロセスの実行時間、COMMAND:実行中のコマンド名

vmstat

vmstat 間隔 回数
vmstat 1 6 : 1秒間隔で6回表示する。
vmstatはメモリやCPUのディスクIOの稼働状況を表示するコマンドです。

例えば、プロセスとCPUの関係は以下の通りです。
プロセス生成→実行可能状態(R)→実行状態(O)→スリープ状態(S)
f:id:kkv:20150228180829p:plain

・procsのrは実行可能状態でいるプロセスの数
・procsのbはIO待ち状態でいるプロセスの数
・cpuのus,syはユーザ、システムが実行中でいる割合(%)
・cpuのidはアイドル状態でいる割合(%)
・cpuのwaはIO待ちでいる時間

sar

CPU使用率、ディスクI/O等の状態の表示、また過去のログを見ることができます。sysstatパッケージに含まれています。
sar -u f:id:kkv:20150301010518p:plain

・%user:ユーザプロセス使用状態、%system:システムプロセス使用状態、%iowait:ディスクIO待ち状態、%idle:アイドル状態

sar -b f:id:kkv:20150301010536p:plain

・tps:秒間I/Oリクエスト数、rtps:秒間読み込みIOリクエスト数、wtps:秒間書き込みIOリクエスト数、bread/s:ブロック単位の秒間読み込みIOリクエストのデータ量、bwrtn/s:ブロック単位秒間書き込みIOリクエストのデータ量

次回は、実際の負荷のパターンに対して、どのコマンドを使って、どの値を見ていくべきなのかを調べたいと思います。

[Web開発者のための]大規模サービス技術入門 ―データ構造、メモリ、OS、DB、サーバ/インフラ (WEB+DB PRESS plusシリーズ)

[Web開発者のための]大規模サービス技術入門 ―データ構造、メモリ、OS、DB、サーバ/インフラ (WEB+DB PRESS plusシリーズ)