Windows Server 2008でリモートデスクトップを使用してアプリケーションをリモートアプリとして実行していますが、(約40人がログインした後)サーバーが数秒間(たとえば20秒間)フリーズする状況が発生しています。 )。
この問題の原因は、プロセッサの不足やメモリの不足ではないようです。アプリケーションはかなりディスクが重いですが、ドライブをRaided SATAからより高速なSSDディスクに変更し、改善はありません。
アプリケーションは、64ビット環境と8GBのRAMで実行される32ビットアプリです。
アプリケーションは、Windows Server 2000のRDPで正常に実行されました(最大100ユーザー)(ただし、サーバーのメモリが不足すると速度が低下し始めました)
さまざまなモニターを見ると、フリーズ時にプロセッサとネットワークの使用量にピークがありますが、これは、サーバーがフリーズ解除した後に息を呑むことに関連しているようです。
ユーザーがログオンするときにハイブをアンロード/ロードすることと関係があると思いますが、これは推測です。
私の質問は...-このエラーの原因を見つけるにはどうすればよいですか? -他の誰かがこのような問題を経験しました-そしてどのようにそれを修正しましたか?
ありがとう。
私の経験では、フリーズは次のいずれかによって引き起こされます。
これは、可能性が最も高いものから最も低いものへのリストであることに注意してください。 I/Oは非常に頻繁にボトルネックになります。これは、パフォーマンスモニターを使用して診断できます。
私はこれを見て、関連する質問をしました( how-do-you-diagnose-a-server-temporarily-freezing )。
次の記事をご覧ください。 http://support.Microsoft.com/kb/9343 、それは役立つかもしれませんが、私はまだ何が起こっているのか正確にはわかりません。
クライアントはVistaで実行されていますか?非常に高性能なWindowsServer 2003および2008ボックスで、実質的に負荷がかからないという同様の問題が発生しました(当時、それらを使用したのは私だけでした)。
VistaのTCP/IPスタックには受信ウィンドウの最適化がいくつかあり、RDPなどのアプリの特定のルーターで実際にパフォーマンスが低下することがわかりました。
この問題を説明するいくつかの記事があります:
要約すると、これを試してください:
netsh interface tcp set global autotuninglevel=disabled
それが問題であることが判明しない場合は、これを使用して元に戻すことができます。
netsh interface tcp set global autotuninglevel=normal
過去に、私は自分の環境のエッジで大規模なターミナルサーバーを実行して、システムを使用している人のアクセスを制御していました。この問題は、Windows2000ターミナルサーバーを使用していたときから発生しています。私が問題であることがわかったのは、人がログインおよびログアウトしているときに、関係者全員のサーバーが「フリーズ」することでした。より多くの人がサーバーを使用するにつれて、「フリーズ」は悪化します。
私は常にNovellのクライアント32のオーバーヘッドを非難し、最終的には古いゼロ管理キットを使用して、ユーザーが可能な限り無駄のない状態になるまで、ユーザーのログオンセッションから機能を取り除きました。
その後、2003を使用するターミナルサーバーがあり、Novellはなく、同じ問題が発生しました。移動プロファイルが問題であることがわかりました。 「フリーズ」は、ネットワーク経由で新しいユーザープロファイルを読み込もうとしたときに発生します。現在、ホームドライブからオフラインファイルを同期しているときに発生します。
どのように修正しますか?
一度に大量のディスクアクセスを実行している何かが実行されているかどうかを確認してください。先週、明らかな理由もなく、MySQL 5.0が2008ターミナルサーバーを完全に間引くという問題が発生しました。MSSQLをそこに配置すると、機能しました。
(私はM $トロールではありません、そして私はこれを個人的にしませんでした、私のsupはしました。私は彼が数日間壁に頭を打ちつけているのを聞いただけで、後で彼はこれが彼がそれを「修正」した方法であると私に言いました)