1.2. リソース使用率とトラブルシューティング
リソース使用率の測定では現時点における各種リソースの利用状況を計測を行う。
これはキャパシティプランニングやパフォーマンスチューニングのために実施する。
1.2.1. 総合的なリソース使用率の測定
各コマンドで確認できる項目は以下の通り。
- CPU- システム全体CPU使用率の表示- top(htop), vmstat, iostat, mpstat ALL
 
- プロセスごとのCPU使用率表示- top(htop) ps aux
 
- CPUの平均負荷の表示- top(htop), uptime, w
 
 
- システム全体CPU使用率の表示
- 物理メモリ- システム全体物理メモリ使用率の表示- top(htop), free, vmstat, sar -r
 
- プロセスごとの物理メモリ使用率の表示- top(htop), ps aux
 
 
- システム全体物理メモリ使用率の表示
- スワップ領域- スワップ領域の使用状況の表示- top(htop), free, vmstat, sar -S, swapon -s
 
- スワップイン/アウトの表示- vmstat
 
 
- スワップ領域の使用状況の表示
- ディスクI/O- iostat, iotop, vmstat, sar -b
 
- ネットワークI/O- iptraf, netstat -i/-s, sar -n DEV|EDEV
 
- プロセスのPID- pstree -p, ps aux, top, lsof
 
topコマンド
システムリソースの使用状況やプロセスの実行状況などを継続的に表示することができるコマンド。
top [オプション]| オプション | 説明 | 
|---|---|
| -b | 対話モードではなくバッチモードで実行する | 
| -d 秒 | 表示をする間隔を指定する | 
| -n 回 | 指定した回数だけ更新すると終了する | 
| -u ユーザ | 指定したUIDのプロセスのみ監視する | 
| -p PID | 指定するPIDのプロセスのみ実行する | 
実行した結果は以下の通り。

htopコマンド
全体およびプロセスごとのCPUやメモリの使用状況を一定時間ごとに更新して表示するコマンド。
htopvmstatコマンド
物理メモリやスワップ領域の詳細な情報やプロセスやCPUの統計情報などを継続的に表示するコマンド。 スワップやブロックのI/Oの値を出力可能。
vmstat [表示間隔(秒) [回数]]
iostatコマンド
CPUの利用状況およびディスクI/Oの状況などを継続的に表示するコマンド。
iostat [オプション] [表示間隔(秒) [回数]]| オプション | 説明 | 
|---|---|
| -c | CPU使用率のみを出力する | 
| -d | ディスクI/O情報のみを出力する | 
| -k | ブロック単位ではなくKB単位で表示する | 
| -t | 時間を表示する | 

iotopコマンド
ディスクI/Oの情報がプロセスごとに表示するコマンド。
iotop
sarコマンド
システムのアクティビティ情報を定期的に収集し報告するためのコマンド。
sysstatパッケージに含まれる。sysstatdが有効になると/var/log/saX(Xは数字)でログが格納される。
定期的な実行を比較的簡易に導入できる/usr/lib/sa/sa1(sadcの定期的な実行),/usr/lib/sa/sa2(sarの定期的な実行)というスクリプトが用意されている。
具体的には以下のシステムのパフォーマンスを詳細に確認するために用いられる。
- CPUの使用率
- メモリ使用量
- I/O活動
- ネットワーク使用
sar [オプション] [ 時間間隔(回数) ]| オプション | 説明 | 使用例 | 
|---|---|---|
| -A | 全てのオプションを表示 | sar -A | 
| -u | CPU使用率を表示 | sar -u 1 3 | 
| -P | 指定したCPUの使用率表示 | sart -P 1 | 
| -r | 物理メモリ使用状況を表示 | sar -r 1 3 | 
| -b | ディスクI/O操作に関する情報を表示 | sar -b 1 3 | 
| -S | スワップ領域の使用状況を表示 | sar -S 1 3 | 
| -n DEV | ネットワークI/Oの統計を表示 | sar -n DEV 1 3 | 
| -n EDEV | ネットワークI/Oのエラー統計を表示 | sar -n EDEV 1 3 | 
| -d | ディスクI/O統計を表示 | sar -d 1 3 | 
| -q | システムの負荷平均値を表示 | sar -q 1 3 | 
| -W | スワップ領域の情報を表示する | sar -W 1 3 | 
| -f | データを取り出すログファイル指定 | sar -f logging.log | 
| -o [file] | バイナリ形式で[file]に出力 | sar -o outputfile 1 3 | 
sadfコマンド
sadcコマンドによるログをTSVやXML形式に出力するコマンド。
sadf [オプション] -- [ sarコマンドのオプション ]| オプション | 説明 | 
|---|---|
| -j | JSON形式で出力 | 
| -x | XML形式で出力 | 
| -t | ロケール日時で表示 | 
| – | sarコマンドに渡す | 
uptimeコマンド
システムの稼働時間や負荷平均などを表示するコマンド。
topの上部とほぼ同じ。
uptime表示されるload averageは1, 5, 15分での平均で表示される。
wコマンド
現在ログインしているユーザとそのプロセス情報を表示するコマンド。 システムの稼働時間や負荷平均も表示できる。
w [オプション] [ユーザ名]| オプション | 説明 | 
|---|---|
| -h | ヘッダを非表示 | 
| -s | ログイン時刻、JCPU、PCPUを表示しない | 
1.2.2. CPU使用率の測定
psコマンド
稼働中のプロセスおよび、プロセス毎のCPUやメモリの使用量を表示するコマンド。
ps [オプション]
ps aux # すべてのプロセス表示| オプション | 意味 | 
|---|---|
| a | 端末を持つ全てのプロセスを表示する | 
| e | コマンド名の後に環境変数などを表示する | 
| x | 端末を持たない全てのプロセスを表示する | 
| u | 実行ユーザ名も表示する | 
| r | 実行中のプロセスだけを表示する | 
| l | 長いフォーマットで表示する | 
| -C コマンドリスト | 実行ファイル名を指定して表示する | 
| -u ユーザーリスト | ユーザーを指定して表示する | 
| -e | すべてのプロセスを表示 | 
| -f | 引数を含めた完全フォーマットで表示 | 
| -l | ロング形式で表示 | 
| -p PID | PIDで選択 | 
| -t tty | 端末名で選択 | 
| -u UID | ユーザIDで選択 | 
pstreeコマンド
動作中のプロセスの親子関係をツリー状で表示するコマンド。
pstreelsofコマンド
ファイルを開いているプロセスを表示するコマンド。
lsofiostatコマンド
CPUの利用状況およびディスクI/Oの状況などを表示するコマンド。
iostatmpstatコマンド
マルチプロセッサシステムのCPUの使用状況を表示するコマンド。
mpstat1.2.3. メモリ/スワップ領域使用量の測定
freeコマンド
メモリやスワップ領域の使用状況を表示するコマンド。
free [オプション]swaponコマンド
スワップ領域を有効/確認するコマンド。
-sオプションでスワップ領域の利用状況を確認できる。
swapon1.2.4. ディスク使用量の測定
dfコマンド
ディスクの使用量、使用割合を計測できるコマンド。
df [オプション]| オプション | 意味 | 
|---|---|
| -a | すべてのファイルシステムの情報を表示 | 
| -h | 1MB=1024MBで表示 | 
| -H | 1MB=1000KBで表示 | 
| -i | iノードの使用状況を表示 | 
| -l | ローカルファイルシステムの表示 | 
| -m | MB単位で表示 | 
| -T | ファイルシステムタイプの表示 | 
iotopコマンド
ディスクI/Oの情報がプロセスごとに確認できるコマンド。
iotop1.2.4. ネットワークトラフィック量の測定
netstatコマンド
ネットワークの状態に関する情報を表示するコマンド。
netstat| オプション | 説明 | 
|---|---|
| -i | ネットワークインターフェースの状態を表示 | 
| -s | プロトコル毎にパケットの送受信に関する情報を表示 | 
ssコマンド
netstatの後継のコマンド。
-sコマンドで接続状態統計を確認可能。
ss -snetserver/netperfコマンド
netserverコマンドはサーバ側で接続待ちするコマンド。
ポートはデフォルトで12865番が使用される。
netperfコマンドでサーバに接続し通信速度を計測する
iptrafコマンド
ネットワークのトラフィックをモニターした情報が表示できるコマンド
iptraf