こんにちは。
今回は、Windows Server 2012 と Windows Server 2012 R2 上で動作している DHCP サーバーが使用するトランザクションファイルが、大量に残存する現象について説明します。
概要
DHCP サーバーでは、管理している情報を Extensible Storage Engine (ESE) と呼ばれるデータベースに保持しています。
DHCP サーバーのインストールフォルダー (%windir%\system32\dhcp フォルダー) に、この ESE が使用するトランザクションファイルが大量に存在する現象になります。
なお、トランザクションファイルは、j50 で始まるファイルになり、 1 時間に 2 ファイルずつ作成されていきます。(サイズは 1MB)
詳細
DHCP サーバーでは、既定で 1 時間に 1 回バックアップ、およびデータベースのクリーンアップ処理が実施されます。
このタイミングで、それぞれトランザクションファイルが作成され、既存のトランザクションファイルの内容がデータベースに反映されます。
どこまでのトランザクションファイルをデータベースに反映させるのかの判断は、ESE の内部処理となっていますが、DHCP のインストールフォルダーにある j50.chk ファイルで、どこまで反映させているのかを管理しています。
通常は、適宜 j50.chk が更新され、それに伴いトランザクションファイルがデータベースに反映されます。
そして、反映されたトランザクションファイルは削除されます。
原因
原因については調査中ですが、この現象が発生するのは DHCP のトランザクションが少ない、つまり DHCP のクライアントの台数が少ない環境といった特徴があります。
この現象が発生している環境では j50.chk ファイルが更新されておらず、データベースへの反映が行われていない状況となっています。
その結果、トランザクションファイルが削除されず、残り続けます。
回避策
DHCP サーバーを再起動することで、j50.chk が更新され、その結果トランザクションファイルが削減されることが確認できています。
今回の現象は、DHCP クライアントの台数が少ない環境で発生する特徴がありますので、DHCP サービスの再起動による影響が軽微な時間帯があるかと思います。
運用環境に合わせて、DHCP サーバーを再起動するタイミングについてご検討をお願いします。