.NET MVCアプリの1つからCPUとメモリの使用量が非常に多く、その原因を突き止めることができないようです。私たちのグループはWebサーバー自体にアクセスできませんが、代わりに特定の制限(CPUまたはメモリの90%以上)に達すると自動的に通知されます。ローカルで実行すると、問題を見つけることができないようです。私たちが原因だと思ういくつかのアイテム
- ユーザーが特定のアクションを実行すると、アプリにはバックグラウンドで実行されている多数のスレッドがあります
- memcachedを使用しています(Webサーバーとは別のマシンで)
- Webソケットを使用しています
それを除けば、このアプリはWebアプリケーションに関してはかなり標準的です。ここにいくつかのフォーム、そこにログイン/ログアウト、ユーザーとデータを管理するためのいくつかの管理機能。何も超派手ではありません。
私は2つの異なる解決策を検討していて、何が最善か疑問に思っています。
- 使用されているメモリとCPUに関する情報を表示するページをアプリ自体の内部に作成します(アプリ管理者のみが利用できます)。この例はありますか、それとも可能ですか?
- Webサーバーにインストールされ、アプリのCPUとメモリの使用率が高い原因を特定するためにドライブダウンできるサードパーティのプロファイリングサービスまたはアプリケーションを使用します。