5

.NET MVCアプリの1つからCPUとメモリの使用量が非常に多く、その原因を突き止めることができないようです。私たちのグループはWebサーバー自体にアクセスできませんが、代わりに特定の制限(CPUまたはメモリの90%以上)に達すると自動的に通知されます。ローカルで実行すると、問題を見つけることができないようです。私たちが原因だと思ういくつかのアイテム

  • ユーザーが特定のアクションを実行すると、アプリにはバックグラウンドで実行されている多数のスレッドがあります
  • memcachedを使用しています(Webサーバーとは別のマシンで)
  • Webソケットを使用しています

それを除けば、このアプリはWebアプリケーションに関してはかなり標準的です。ここにいくつかのフォーム、そこにログイン/ログアウト、ユーザーとデータを管理するためのいくつかの管理機能。何も超派手ではありません。

私は2つの異なる解決策を検討していて、何が最善か疑問に思っています。

  1. 使用されているメモリとCPUに関する情報を表示するページをアプリ自体の内部に作成します(アプリ管理者のみが利用できます)。この例はありますか、それとも可能ですか?
  2. Webサーバーにインストールされ、アプリのCPUとメモリの使用率が高い原因を特定するためにドライブダウンできるサードパーティのプロファイリングサービスまたはアプリケーションを使用します。
4

3 に答える 3

2

asp.net mvc ミニプロファイラーをお勧めします。http://miniprofiler.com/

実装と拡張が簡単で、運用モードで実行でき、その結果を SQL Server に保存できます。難しいパフォーマンスの問題を見つけるために何度も使用しました。

もう 1 つの可能性は、http://getglimpse.com/ を miniprofiler glimpse-plugin https://github.com/mcliment/miniprofiler-glimpse-plugin と組み合わせて使用​​することです

どちらのツールもオープン ソースであり、サーバーへの管理者アクセスは必要ありません。

于 2013-03-25T21:05:05.747 に答える
1

Preemptive の Runtime Intelligence を接続できます。- http://www.preemptive.com/

それ以外の場合は、プロファイラーまたは負荷テストが問題の発見に役立つ可能性があります。実際のマシンの状態を監視するものはありますか? (プロセッサ使用率、メモリ使用率、ディスク キューの長さなど)。

http://blogs.msdn.com/b/visualstudioalm/archive/2012/06/04/getting-started-with-load-testing-in-visual-studio-2012.aspx

Visual Studio にはプロファイラーが組み込まれています(バージョンとエディションによって異なります)。問題のある Web サーバーにWMI クエリを実行したり、診断記録/監視ツールを作成/提供して、アクセス権を持つ人に引き渡すことができる場合があります。

出力キャッシュはありますか? IIS のバージョンは何ですか? 警告を受けている 90% のプロセッサ使用率は、Web プロセスが実際にそれを実行していることを示していますか? (アラートが不適切に構成されている場合、おそらくそれはあなたのアプリではありません)

于 2012-12-21T13:10:24.000 に答える
-2

同様の状況があり、このプロジェクトに基づいてアプリ管理者にシステム モニターを作成しました

于 2013-03-25T21:01:32.383 に答える