運用サーバーの W3WP プロセスは常に高くなっています。100% で最大になることはありませんが、90%sa の公正なビットにジャンプします。これを調べるために、JetBrains dotTrace を使用してライブ アプリケーションのプロファイルを作成しました。
結果は予想通りでした。遅いメソッドはすべて、データベースにクエリを実行する NHibernate 関数でした。私の質問は、データベースサーバーが別のマシン上にあるため、これらの遅い方法が実際に Web サーバーの CPU に影響を与えるかどうかです。確かに、データベース サーバーが何らかの作業を行っている場合、Web サーバー jsut は応答を待機し、CPU は上昇しないはずですか?
この場合、dotTrace (または必要に応じて別のツール) を使用して、サーバーが他の場所からの応答を待っているのではなく、CPU が使用されている場所を特定するにはどうすればよいですか?
ホットスポットの dotTrace スクリーンショット
スクリーンショットからわかるように、ほとんどの時間は、外部 HTTP 要求が完了するまでの待機に費やされています。ただし、これらは私が考えていたWebサーバーのCPU使用率に影響を与えるべきではありません