どのように多くのWindowsハンドルを利用するには"あまりにも多くの"?
-
11-09-2019 - |
質問
を解決するために必要となるこの質問には答えにより異なる場合がありまレジストリ設定のバージョンのWindowsでしょう量のRAMが取り付けられていない場合はメモリ。のための質問は、このようなサーバーがたっぷりのRAM(3+GiB).
る場合、アプリケーション(第3当事者アプリケーションこの場合は漏洩ハ数百時間、多くの計処できる応用が漏れる前に他のアプリ動作のトラブル?による"トラブル"を意味し、例えば、失敗を始め、スレッドがファイルです。
いくつかのサーバーが軽くロード)でうまく実行プロセス(通常はデータベースのプロセス)を数十万の取り扱いの10000取扱いに制限がないことが明らかにでした。(やったり、プロセス制限とにかくような影響申し込んで下しました。)
できる人のいずれかの質問に対する答えたものであるバイオリソースを説明することのできるかに多くの合計を取り扱ってWindowsサーバーをする前に有効に走り出しの取扱いはその他のシステムリソース)?
解決
のレイモンド陳氏の記事を参照してください。このトピックを。ウィンドウマネージャは、プロセスごとの10Kの制限を強制し、システム全体32Kの総限界を有しています。それは「だけ」時速100本のハンドルをリークする場合、それは不正な動作を開始する前に、あなたは稼働時間の数日を持っています。
ではないすべてのハンドルが同じであることに注意してください。ウィンドウハンドルは、例えば、DBハンドルはなく、異なるルールに従うことができます。したがって、この制限は、プログラムが漏れているハンドルのどのような種類に応じて、適用されないことがあります。 また、このブログの記事をお読みください。に
他のヒント
、あなたは大まかな見積もりを取得するのSysinternalsのツールTestLimit
/ TestLimit64
を使用することができます。 x64バージョンは、特にメモリテスト(それはより多くの仮想メモリを取得するためにハードディスク(スワップファイル)を使用する場合があります)のために、しばらくの間、実行することがあります。
http://live.sysinternals.com/WindowsInternals/するまたは http://download.sysinternals.com/files/TestLimit.zip の
コマンドラインオプションます:
-p check process limit
-t check thread limit
-h check handle limit
-u check user handle limit
このに、10000によります