Windows Server 2019構築、DNS.exeの使用メモリが肥大

メモリが枯渇

Windows Server 2019リモートデスクトップのライセンスには、ADサーバが必須となり、渋々従ってサーバを構築。

in trouble

テスト段階では特に影響がなかったのだが、実稼働の段階でメモリ枯渇問題が浮上。前もってリソース測定を行っているにも関わらずこうなる。ここがサーバスペック選定の難しい所だ。

その中で通常100Mも行かないDNSのメモリが1G程度まで膨らんでいた。

動作速度も心もとないので、CPUを追加したのだが、更に肥大し、1.2G程度まで膨らんでしまった。

色々調べると、コアの数に比例してメモリが消費されるとの事。確かにコア数は多い。しかし、ソケットプール値を制限する事で押されられるという事を知った。

対処方法

基本、レジストリ値に「SocketPoolSize」指定してやるのだが、コマンドでも可能。

ADサーバでコマンドプロンプトを「管理者として実行」し、次のコマンドを実行する。

Dnscmd /Config /SocketPoolSize 1000

※1000と言う数字は200ユーザ程度を意味する。環境に合わせて変更可能。20人程度であれば100で十分との事。

このコマンドが成功すれば、レジストリのHKEY_LOCAL_MACHIN\SYSTEM\CurrentControlSet\services\DNS\Parameters に SocketPoolSize が追加されている。

追加後、サーバを再起動するか、

net stop dns && net start dns

を実行するとDNSサービスが再起動され、メモリの減少が期待できる。

少なすぎると、マイクロソフト セキュリティ情報 MS08-037 に影響が出るので注意が必要。

宜しければ、シェアお願いします。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA