2010-12-28 13 views
2

Webアプリケーションが実行されており、約100人のユーザーがログインし、すべてのクライアントがwebsyncを使用してサーバーに接続しています。私はセッションが常に生きているという要件を持っていたので、期限切れになるとセッションを再生成しています。Webアプリケーションがロックされ、CPU使用率が100%に達しました

しかし、3日か4日後にCPUが100%に達してアプリケーションがロックされていることが判明したので、サーバーを再起動して動作させる必要があります。

事前にソリューションを提供いただき、ありがとうございます。

おかげ

+0

ライセンスを購入した場合(10人以上の同時ユーザーをサポートする必要があるため)、サポートチームに連絡することをお勧めします:) – Anton

答えて

2

は、なぜあなたはだけではなく、それを再生する非常に長いことをセッション期間を延長していませんか?

100%CPUに達したときにサーバーに対してプロファイラを実行しましたか?これにより、いくつのスレッドでどのメソッド/クラスが実行されているかを効果的に伝えることができます。この情報を使って、アプリケーションがなぜ私が推測しているところでそれらのメソッド/クラスをスレッドが大量に実行しているのかを理解することができます。

+0

これを引き起こす手順を見つけるためにサーバーに対してCPUをテストする方法。 –

+0

良い.Netプロファイラのためにこのスレッドを参照してください。 http://stackoverflow.com/questions/3927/what-are-some-good-net-profilers –

1

これまで説明してきたように、Windowsのアップデートでは100%のCPUの理由が考えられます。

2

数万人の同時接続でWebSyncを使用しているクライアントがたくさんあります(また、オンデマンドクラスタは毎日何千人ものユーザーがいます)ので、CPUロックアップが発生した場合は、おそらくあなたのコードでスレッドの問題が発生している可能性があります(おそらくWebSyncコードに関連していると仮定します)。

WebSyncイベントはすべて静的であることを忘れないでください。共有リソースを使用している場合は、それに応じて管理する必要があります(つまり、それらがマルチスレッドであることを考慮する必要があります) )。すべてのWebSyncメソッド自体はスレッドセーフですが、自分のイベントに何かがある場合は、自分で管理する必要があります。

@Antonが示唆しているように、私たちと直接チャットしても大丈夫です!

関連する問題