性能・負荷を把握するためのコマンドについて
Linuxで性能・負荷を把握するための方法を覚えたいなと思って、まずはそのためにもボトルネックを見極める作業をベースに性の方法とそのためのコマンドを整理しておきたい、と思ったので書いておく。
ボトルネック見極め作業の基本的な流れ
ロードアベレージを見る
- ロードアベレージは、システム全体の負荷状況を示す指標。
- ロードアベレージの数値は、1分、5分、15分の間に、単位時間あたり待たされたタスクの数(平均的にどの程度のタスクが待ち状態であったかを報告する数値)を表す。
- ロードアベレージを把握するためには、top, uptimeを利用する。
- ロードアベレージが低い場合にもかかわらずスループットが上がらない場合は、ソフトウェアの設定や不具合、ネットワーク、リモートホスト側に原因がないかを疑う。
CPU、I/Oのいずれがボトルネックかを探る
- ロードアベレージが高い場合、CPU、I/Oのどちらかに原因があるかを探る。
- sar, vmstatを利用することで、時間経過とCPU使用率やI/O待ち率の推移を確認することができる。この結果を参考にして、CPU、I/Oの当たりを付ける。
CPU負荷が高い場合
- ユーザプログラム、システムプログラム、なんの処理がボトルネックの原因かをtop,sarを利用して見極める。
- psを利用して、確認できるプロセスの状態やCPU使用時間などを見ながら、原因となっているプロセスを特定する。
- プロセスの特定後、より詳細を調査したい場合は、starceでのトレース、oprofileでのプロファイリング、などを行い、ボトルネック箇所を絞り込む。
- ディスクやメモリ容量などその他の部分がボトルネックとなっていないにもかかわらず、スループットが上がらない場合は、サーバ増設やプログラムのロジックやアルゴリズムの改修で対応。
- プログラムが暴走してCPUに必要以上の負荷がかかってしまっている場合は、発生している不具合を取り除く。
I/O負荷が高い場合
- たいてい、プログラムからの入出力が多くて負荷が高いか、スワップが発生してディスクアクセスが発生しているのか、が原因。そのため、sar,vmstatを利用して、スワップの発生状況を確認して問題を切り分ける。
- psを利用して特定のプロセスが極端にメモリを消費していないかを確認する。
- プログラムの不具合でメモリを使い過ぎている場合は、プログラムを改善する。
- 搭載メモリが不足している場合は、メモリ増設(スケールアップ)で対応する。メモリが増設できない場合は、分散を検討する。
- メモリ増設でキャッシュ領域を拡大できる場合、メモリを増設する。
- メモリ増設で対応できない場合、データの分散やキャッシュサーバの導入等を検討する。また、プログラムの改修によるI/O頻度の軽減を検討する。
性能、負荷計測に利用するコマンド(OS)
top
ある瞬間のOSの状態のスナップショットを表示する。
ps
ps(Report Process Status)は、プロセスが持つ情報を出力するツール。
よく使うpsコマンドの例。
$ ps aux | sort -nr -k2 | head -5 #CPU使用率の高い順5件を表示 $ ps aux | sort -nr -k3 | head -5 #Memory使用率の高い順5件を表示
sar
sar(System Activity Reporter)は、OSが報告する各種指標を参照するツール。
2つの用途がある。
- 過去の統計データにさかのぼってアクセスする(デフォルト)
- 現在のデータを周期的に確認する
sarが利用出来るように、sysstatパッケージに含まれているため、sysstatパッケージをインストール。
$ sudo yum install sysstat
よく使うsarのオプションとその内容。
コマンド・オプション | 内容 |
---|---|
sar -u | CPU使用率を見る |
sar -q | ロードアベレージを見る |
sar -r | メモリの利用状況を見る |
sar -W | スワップ発生状況を見る |
vmstat
vmstat(Report Virtual Memory Statistics)は、仮想メモリ関連情報を参照するツール。
参考書籍
[24時間365日] サーバ/インフラを支える技術 ?スケーラビリティ、ハイパフォーマンス、省力運用 (WEB+DB PRESS plusシリーズ)
- 作者: 安井真伸,横川和哉,ひろせまさあき,伊藤直也,田中慎司,勝見祐己
- 出版社/メーカー: 技術評論社
- 発売日: 2008/08/07
- メディア: 単行本(ソフトカバー)
- 購入: 128人 クリック: 2,215回
- この商品を含むブログ (283件) を見る