詳解 システムパフォーマンスを読む⑯ メソドロジー USEメソッド②
前回の続き
P.46あたりから
メソドロジ
USEメソッド
機能ブロックダイアグラム
各リソース間が何でどうやってつながっているかを図示する。
これを行うことで、データフロー間のボトルネックを洗い出すことができる。
指標
リソースリストの完成後、指標のタイプを検討すべき。
タイプとは、飽和や使用率といったもの。
例)
CPU 使用率 CPUの使用率
CPU 飽和 ランキューの長さ
メモリ 使用率 利用可能フリーメモリ
メモリ 飽和 無名ページングなど
各リソースに対して、使用率、飽和、エラーのタイプ別で指標を取り入れる
簡単に取れるものと取れないものがあるが、取れないことがわかっているだけでも良い(Known-Unknown)
ソフトウエアリソース
アプリケーション全体ではなく、小さなコンポーネントを対象とする
例)
ミューテックスのロック
使用率:ロックされていた時間
飽和:ロックを待ってキューイングされていたスレッド
として定義
スレッドプール
飽和はスレッドプールからのサービス待ちになっていた要求の数として定義される
プロセス/スレッドの容量
飽和は、限定した資源の割り当て待ち状態である
エラーは、割り当てに失敗したときである
ファイル記述子の容量
解釈方法の提案
使用率:使用率100%は一般的にボトルネックを起こしている兆候と考えられる
一方で、使用率60%であっても、例えば瞬間的に100%になっている可能性があるし、割り込み不可なリソースによって遅延が顕著に表れることもある
飽和:飽和は、少しでも起きていればそれだけで問題が起きている可能性がある
エラー:エラーカウントが0でなければ、精査をすべきである
→低使用率/低飽和/エラーなしの場合は、リソースには問題がなさそう、ということを端的に示していると言える
クラウドでは各リソースが設定により制限されているが、
その制限についてもUSEメソッドで調べることが可能である。
以上