deadやmxcash、viruslogフォルダなど特定フォルダに膨大な数のファイルが蓄積されたときのパフォーマンス低下現象について

メールサーバの日々の運用では、メール作業フォルダにログがたまりすぎないようにしたり、放置されたメールボックスフォルダにメールがたまりすぎないようにして、注意をしていただくことが必要であり、こうしたことは、運用の常識として理解されているものと思われます。

一方で、E-Post Mail Serverシリーズ/E-Post SMTP Serverシリーズ製品を長年にわたって運用を続けている場合、これらのフォルダ以外のフォルダに、思わずファイルが蓄積され続け、1フォルダ内に1万を超える数のファイルがたまった結果、Windowsファイルシステムのパフォーマンス低下を引き起こす事態になってしまうことが、サポート問い合わせの中で報告されています。

長年にわたって運用を続けている場合、ファイルが蓄積されている可能性があるのは、「メール作業フォルダ」下の次のフォルダです。
deadフォルダは、どこにも配送できなくなったメールデータが格納されるフォルダです。配送失敗したメールは、faillogに記録され、同時に配送エラー通知メールが発信者に戻されますが、この場合にはdeadフォルダに配送失敗したメールデータはたまりません。deadフォルダにはどこにも配送できなくなったメールデータが格納されます。DMやメールマガジンなど大量のメールを送ることの多いサーバのdeadフォルダには、思わぬ数のメールデータファイルが蓄積されていることがあります。
また、mxcashフォルダは、外部への配送の際、MXレコードを参照するときに、キャッシュファイルを自動作成しておき、2回目からキャッシュファイルを呼び出すことで高速化をはかるものです。mxcashフォルダは、配送時にMXレコードを参照したときのキャッシュファイルが蓄積されますが、こちらもさまざまな外部ドメイン宛へ送信しているところほど、キャッシュファイルが多数蓄積されている可能性があります。現行の仕様では、このキャッシュファイルを更新する機能はある一方で、削除する機能はありません。ファイルが蓄積されすぎてしまったときは、手動で削除する必要があります。
一方、viruslogフォルダは、メールフィルタ機能を設定している場合に迷惑メールの隔離・保管をするフォルダです。同時にアンチウイルス機能がある Enterprise II 版では、検出されたウイルスメールの隔離・保管も行います。メールフィルタ機能を設定している場合は、迷惑メールの隔離・保管のためすぎに注意してください。ファイルが多数蓄積されてきたときは、手動で削除してください。

これらのフォルダに膨大なファイルが蓄積されていたときの対処方法

1フォルダ内に1万を超え、10万に近づくような膨大な数のファイルがたまると、Windowsファイルシステムのパフォーマンス低下を引き起こし、いくら強大なパワーのCPUや豊富なメモリがあっても、サーバマシンのパフォーマンスが極度に下がってしまうことがわかっています。これは、Windowsファイルシステムの持つ問題です。
万が一、上記のdeadフォルダやmxcashフォルダ内にたくさんのファイルが蓄積されていることが判明した場合、単純なファイル削除操作を行うと、非常に時間がかかってしまうことが考えられますので、下記の手順で操作をおこなってください。
  1. EPSTDSサービスを停止
  2. deadフォルダまたはmxcashフォルダを任意の別名にリネーム
  3. EPSTDSサービスを再開
    ※サービスを再開した後、新しく空のdeadフォルダやmxcashフォルダが自動的に作られます。
  4. リネームした後でフォルダ内の不要ファイルを削除、フォルダを削除
viruslogフォルダにたくさんのファイルが蓄積されていることが判明した場合、単純なファイル削除操作を行うと、非常に時間がかかってしまうことが考えられますので、下記の手順で操作をおこなってください。
  1. EPSTRSサービスを停止
  2. viruslogフォルダを任意の別名にリネーム
  3. EPSTRSサービスを再開
    ※サービスを再開した後、新しく空のviruslogフォルダが自動的に作られます。
  4. リネームした後でフォルダ内の不要ファイルを削除、フォルダを削除

mxcashフォルダにキャッシュファイルを自動生成しない設定

mxcashフォルダに関して、キャッシュファイルを自動生成しない設定が可能です。その場合は次の操作を行ってください。
  1. Mail Control画面の「サービス制御」タブを開く
  2. EPSTDSサービスを停止
  3. EPSTDSサービスの「詳細」ボタンをクリック
  4. 「詳細」ダイアログボックスで、MXキャッシュファイルを自動生成しない設定値であるMXキャッシュ更新間隔を"0"にして、最後に[OK]ボタンクリック
  5. EPSTDSサービスを再開
    ※このとき、送信ごとにDNSサーバのMXレコードへの問い合わせが発生することになりますが、実際には、OSのDNSキャッシュ情報が肩代わりされることになります。

deadフォルダに配送失敗メールデータを保管しない設定

deadフォルダに関して、配送失敗のメールデータを蓄積せず保管させない設定が可能です。その場合は次の操作を行ってください。
以下の通り、レジストリを操作してDWORD値10進で作成、値を"0"に設定した後、SMTP配送サービス(EPSTDS)を再起動してください。

HKEY_LOCAL_MACHINE
 SYSTEM
  ->CurrentControlSet
   ->Services
    ->EPSTDS
     ->SaveDead
        (DWORD) Default:1 0:保管しない、1:保管する

なお、レジストリを設定していないときは、設定値として"1"が設定されているときと同値として扱われ、どこにも配送てきなくなったデータがdeadフォルダに保管される状態です。

(関連FAQ)
1フォルダ当たりのファイル数が膨大になるとファイルシステムのパフォーマンスが劇的に落ちるとは?