[Sitecore][Tool]トラブルシューティングとしてリクエスト一覧を見る
概要:
最近プロダクションにて特定の時間帯にて、CUPが100%となり、サイトのロード速度が
遅くなってしまいました。その原因は特定のIPより、特定のページへのリクエストを継続的
にされていたことが原因だった。そのトラブルシューティングする際に、IISマネージャーの
リクエスト一覧を使用していましたが、これは案外知られていないようで、メモ書きとして
書き留めます。
サイトのロード速度が落ちるのはいろいろな原因があります。その一つのチェックポイントとして、
CPUの使用状況の確認です。その際によく、IISのWorkerプロセスがCPUをリソースを使っている
ことが分かりながら、その原因を突き止めるにはいろいろなツールがあり、また、サイトコアの
ログを見ることも一つの手です。今回のように、特定の時間帯で起きることで、最初にインディクス
再構築が原因かと思ってけど、なにかリクエストーされているかを見てみると、特手のページへ
特定のIPよりサイトの速度を落としていることをが分かった。その際に使ったツールをはIIS
マネージャーにあるリクエストの一覧でした。
もし、この機能がインストールされていなかったら、下記の手順にて、インストールすればいい。
Server Manager -> Add Roles.
- Web Server (IIS)
- Web Server
- Health and Diagnostics
- Request Monitor
- Health and Diagnostics
- Web Server
リクエストを見るには、IISマネージャーを起動し、WorkerProcessesを選択
ここにて、現時点のリクエストの一覧を見ることができます。
例えばお客さんより、ページのレスポンスが遅いと言えれ、このにてサーバーのリスエストの情報が
見ることができます。
例えば、TimeElapsedのコラムをみると、特手のページが時間がかかっていることが一目瞭然です。
この場合はカタログのページが時間がかかっているので、カタログ関連のトラブルシューティングすればいい。またフィールダーを使て、簡単に時間がかかるれクエストを特定することができます。リアルタイムなので、F5で最新のリクエストが表示されます。
また、appcmdを使って、同じリクエストをコマンドプロンプトにて見ることができます。
C:\Windows\System32\inetsrv>appcmd list requests
もし、データーをコピーしたいなら、CLIPを使えばいい。
C:\Windows\System32\inetsrv>appcmd list requests | clip
さらに、下記のように、特定のサイトにて時間がかかるリクエストをフィールダーすることができます。
例えば、二分以上かかるリクエストの一覧を見るには:
C:\Windows\System32\inetsrv>appcmd list requests /site.name "sitecore" /elapsed:120 | clip