1

各POSコンピューターにローカルデータベースがあり、IISでホストされているWCFを使用してサーバーと通信するPOSアプリケーションを開発しています。このアプリケーションは、1年以上にわたって複数の顧客に導入されています。

約1週間前、IISがホストされているサーバーの速度が非常に遅いというお客様からの報告を受け取り始めました。問題を確認したところ、8 cpuサーバーでプロセスロケットを使用したアプリケーションプールがほぼ100%cpuになっていることがわかりました。

SQLアクティビティモニターとネットワークボリュームを確認しましたが、通常見られる以上の重大な過負荷は見られませんでした。

Process Explorerでスレッドをチェックすると、多くのスレッドがCreateApplicationContextを繰り返し呼び出しているのがわかりました。ネット上で見つけたいくつかの投稿によると、.Net 2.0 SP1をインストールしようとしましたが、問題は解決せず、関数呼び出しをCLRCreateManagedInstanceに置き換えました。

IISプロセスのadplusとwindbgを使用してダンプをキャプチャし、何が問題なのかを突き止めようとしています。

誰かがこのようなことに遭遇したことがありますか、またはどのディレクトリをチェックする必要があるか考えていますか?

ps同じバージョンのアプリケーションが別の顧客にデプロイされており、そこでは問題なく動作します。また、バージョン(非常に古いバージョンでも)をロールバックしてみましたが、それでもまったく同じように動作します。

編集:まあ、問題は解決しました。結果セットを制限しないSQLクエリがそこにあり、顧客が特定の行数を超えると、サーバーがダウンし始めました。ログに周囲の騒音があったため、2日かけて見つけましたが、夜を待ってダンプを取り、すぐに質問が表示されました。

4

4 に答える 4

2

通常、これはハードウェアとは関係なく、IIS の構成方法と実行時間のわずかに長いクエリ (100 ミリ秒以上) が関係しています。

アプリケーション プールの構成で、Web ガーデンの設定を 20 以上に設定します。

Web ガーデンの設定は、アプリケーションの要求を処理するために使用できるスレッドの数です。1 に設定すると、単一のクエリが完了するまで、他のリクエストの処理がブロックされる可能性があります。

1 日に 350 万件近くのリクエストを処理するアプリがあります。Web ガーデンが 1 に設定されたとき、Web サーバーの CPU は 100% のままで、多くの要求がドロップされました。50 に上げたところ、Web サーバーの CPU は 2% 弱まで低下し、リクエストはドロップされませんでした。

于 2008-12-31T01:33:47.317 に答える
1

純粋に勘に頼って完全な推測を行うと、一種の例外が発生している可能性があるように思えます。例外はglobal.asaxのグローバル例外ハンドラーでキャッチされており、例外ハンドラーも例外をスローしてダンプしています処理する。ウイルス スキャン ユーティリティが一部のファイルをロックしている可能性もあります。しかし、私はかなり離れている可能性があります。

于 2008-12-30T20:25:04.740 に答える
0

ハードウェアの問題の可能性を排除しないでください。サーバーの動作が遅いのですが、マザーボードの問題であることがわかりました。保証期間内に交換されました。

于 2008-12-30T22:02:27.163 に答える