ご参考までに、個人的に解析するのは以下です。
なお、システムの特性次第ですが、サンプル数などを加味すると
週単位での解析くらいがベターだと思います。
なお、コマンドプロンプトなどからの実行する場合、
対象のログは1ファイルにまとめておいて、コマンドを1行で実行してください。
①日別アクセス数
継続的にアクセス数が伸びているか?特定日、曜日にアクセス数が集中傾向にあるか?など
システムの特性をつかむ上で取得する情報。
動かすプログラムの品質が安定していれば、
アクセス数に基づいたサーバのスケールアウトなども考えやすいが・・・
実態はそうでもないシステムも多い。
②実行時間の長いリクエストTop100
実行時間が長いプログラムの特定を行う。
動かすプログラムの品質が安定していれば、
ほとんどの処理は各システムで定義した規定時間に収まっているはずなので、
検索対象の件数が増えるオプションが指定可能だったり、
想定外のロジックを通っていたり、NW負荷が思いのほか上昇しているプログラムを
特定してシステムとしての品質改善を目指す。
ただし、請け負ったシステムでそんな安定しているところは見たことがありません。。。
日々格闘です。
③ソース毎の最大値、平均値
対象となるプログラム毎に実行時間、送信/受信などの特性をつかむために実施する。
②とあわせで改善する優先順位を決めることに用いる。
- 平均値がシステムとしての規定値を超える場合、プログラムとしてのロジックを見直す。
- IISで設定しているタイムアウト値を超えたり、NW負荷が上昇している場合、原因となるプログラムとオプションを特定して対策を行う。
うーん・・・どれも悪すぎて改修する優先順位が決まらん。
④HTTPステータスコードサマリ
HTTPステータスコードが「404」や「500」などの発生状況を確認する。
HTTPステータスの30%が「200」以外で返ってくるミラクルなシステムもありました。。。
⑤1分毎のアクセス数
サーバ負荷の分析、ピーク時間を可視化するために使用。
秒間だと傾向が埋もれてみれなかったりするので、分単位にしています。
サンプル:
働いている時間が同じだから集中しても仕方ない。。。
⑥1秒毎のアクセス数
⑤とほぼ同じ考え方だが、サーバのスケールアウトなどを考えるための分析。
まとめ
上記をバッチファイルで自動分析し、出力結果をHTML形式にまとめることで
レポート出力を自動化することもできる。
但し、レポートを出力することが目的ではなく、
自動化して蓄積したデータからシステムの特性を分析し、運用に役立てることが重要。
なお、所詮IISのログ分析なので、詳細を追っていくとなると
パフォーマンスモニタなどを仕込む必要がある。
でも、分かっている人は少ない。。。
0 件のコメント:
コメントを投稿