Exchange Server 2003 のメモリ使用率の最適化

 

ここでは、サーバーのメモリ使用率の監視および最適化について説明します。

メモリ使用率の監視

仮想メモリの問題は、イベント ビューアのアプリケーション ログおよびパフォーマンス ログと警告 ([管理ツール] サブメニューの [パフォーマンス]) で監視できます。アプリケーション ログには、仮想メモリの最大空きブロックが 32 MB まで減少したときに 9582 警告が表示されます。この警告が表示された場合は、次の機会に Exchange ストア プロセスを再起動する必要があります。最大空きブロックが 16 MB まで減少すると、9582 エラーが再び表示されます。このエラーは、サーバーに障害が発生する可能性があることを意味するため、できるだけ早い機会にサーバーを再起動する必要があります。これらのイベントに対処しないと、突発的なメール配信エラーおよび IMAIL 変換エラー (12800 イベント) が発生する可能性があります。

パフォーマンス ログと警告では、以下のカウンタを監視します。

  • MSExchangeIS オブジェクトの VM Largest Block Size カウンタ : 正常なサーバーの最大空きブロックは 200,000,000 バイト (200 MB) を超えます。この値が 200 MB より小さくなっている場合は、サーバーを注意深く監視する必要があります。
  • Memory オブジェクトの Pool Pages Bytes : 200 MB を超える容量になっている場合は、バックアップを実行中の場合を除き、問題が起きていることを示します。バックアップ中、キャッシュ マネージャの各ページはプール ページによってバックアップされます。
  • Memory オブジェクトの Pool Nonpaged Bytes : 100 MB を超える容量になっている場合は、問題が起きていることを示します。
  • Memory オブジェクトの Free System Page Table Entries : 3,000 未満の値は問題が起きていることを示します。
  • Process オブジェクトの Working Set : 上昇傾向にある場合は、メモリ リークの可能性を示します。

サーバーが仮想アドレス空間の不足の兆候を示している場合は、以下の設定を調整する必要があります。これらの設定が Microsoft® Exchange 用に最適化されていない場合は、イベント ビューアにイベント 9665 が表示されます。

  • サーバーで Microsoft Windows® 2000 Advanced Server または Windows Server™ 2003 を実行しており、物理メモリが 1 GB 以上ある場合は、以下の説明に従って Boot.ini ファイルに /3GB スイッチを設定します。
  • サーバーで Windows Server 2003 (すべてのエディション) を実行している場合は、以下の説明に従って /USERVA スイッチと SystemPages レジストリ キーを構成します。サーバーで Windows 2000 を実行している場合は、Windows 2000 SP3 以降がインストールされていることを確認します。
  • サーバーの物理メモリが 1 GB 以上ある場合は、以下の説明に従って HeapDeCommitFreeBlockThreshold レジストリ パラメータを設定します。
  • 必要に応じて、以下の説明に従ってストア データベース キャッシュ サイズを調整します。

イベント 9665

ストア プロセスが開始するときに、Exchange はメモリの構成が最適であるかどうかを確認します。メモリ設定が最適化されていない場合、イベント 9665 がイベント ログに書き込まれます (イベント ビューアで確認できます)。このメッセージが書き込まれるのは以下の場合です。

  • サーバーで Windows 2000 を実行しており、レジストリ内の SystemPages の値が 24000 ~ 31000 の範囲外に設定されている。
  • サーバーに 1 GB 以上のメモリがあり、/3GB スイッチが設定されていない。
  • サーバーで Windows Server 2003 を実行しており、メモリが 1 GB 以上あり、かつ /3GB スイッチが設定されているが、/USERVA が設定されていないか、3030 以外の値に設定されている。

このイベントを見つけた場合は、レジストリ内の SystemPages および HeapDeCommitFreeBlockThreshold の設定を確認してください。また、Boot.ini ファイル内の /3GB スイッチおよび USERVA の設定を確認してください。これらの各設定に対する推奨値については、以下で説明します。

note注 :
イベント 9665 をログ出力しないようにする場合は、次の表に示されているレジストリ キーを作成してください。

メモリ構成を確認しないようにするレジストリ キー

パス

HKLM\SYSTEM\CurrentControlSet\Services\MSExchangeIS\ParametersSystem\

パラメータ

Suppress Memory Configuration Notification

種類

REG_DWORD

設定

1

note注 :
メモリ構成の確認は Microsoft® Small Business Server を実行しているサーバーでは発生しません。

/3GB スイッチの設定

既定では、Windows 2000 Advanced Server および Windows Server 2003 は、Store.exe などのユーザー モード プロセスに 2 GB の仮想アドレス スペースを割り当てます。サーバーの物理メモリが 1 GB 以上ある場合は、Boot.ini ファイルに /3GB スイッチを設定して、仮想アドレス スペースを増やします。

/3GB スイッチは、次の条件を満たすサーバーにのみ設定します。

  • Exchange 2003 メールボックスまたはパブリック フォルダをホストしている。
  • 1 GB 以上の物理メモリがある。

このスイッチを、パブリック フォルダまたはメールボックス ストアが含まれていない Exchange サーバーに設定することはお勧めできません。

/3GB スイッチの詳細については、マイクロソフト サポート技術情報の文書番号 266096「1 GB 以上の RAM がある場合、/3GB スイッチが必要」(https://go.microsoft.com/fwlink/?linkid=3052&kbid=266096) を参照してください。

important重要 :
/3GB スイッチは Windows 2000 Advanced Server およびすべてのエディションの Windows Server 2003 用に設計されています。Windows 2000 Standard Edition では /3GB スイッチは設定しないでください。

/USERVA と SystemPages の構成

サーバーで Windows 2000 を実行している場合は、SystemPages レジストリ キーを 24000 ~ 31000 の値に設定する必要があります。SystemPages レジストリ キーは以下のパスにあります。

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\SystemPages

サーバーで Windows Server 2003 を実行している場合は、SystemPages 値を 0 に設定し、Boot.ini ファイルで /USERVA=3030 パラメータを設定します。これらの設定により、システムのスケールアップにとって重要となる、サーバー上で入力できるシステム ページ テーブル エントリの数を増やすことができます。

詳細情報については、サポート技術情報の文書番号 810371「[XADM] Windows 2003 Server ベースの Exchange Server で /Userva スイッチを使用する」(https://go.microsoft.com/fwlink/?linkid=3052&kbid=810371) を参照してください。

HeapDeCommitFreeBlockThreshold レジストリ キーの設定

HeapDeCommitFreeBlockThreshold レジストリ キーは、ヒープ マネージャがメモリをデコミット (解放) する前に、要求する空き領域の容量を制御します。既定値は 0 で、その場合、ヒープ マネージャは、ページを 4 KB 単位でデコミットして使用可能にします。時間が経つにつれて、仮想アドレス空間が断片化することがあります。物理メモリが 1 GB 以上あるサーバーでは、このレジストリ キーの値を大きくして、断片化を減らす、またはなくすことができます。次の表に従ってこのレジストリ キーを設定し、サーバーを再起動してください。HeapDeCommitFreeBlockThreshold レジストリ キーの詳細については、サポート技術情報の文書番号 315407「"HeapDecommitFreeBlockThreshold" レジストリ キーについて」(https://go.microsoft.com/fwlink/?linkid=3052&kbid=315407) を参照してください。

HeapDeCommitFreeBlockThreshold レジストリ キーの設定

パス

HKLM\SYSTEM\CurrentControlSet\Control\Session Manager

パラメータ

HeapDeCommitFreeBlockThreshold

種類

REG_DWORD

既定値

0

推奨設定*

262144

*   この値は、10 進数で表したブロック数です。推奨値は 262144 で、これは 16 進の値 0x00040000 に相当します。

ストア データベース キャッシュ サイズの調整

ストア データベース キャッシュ (拡張記憶域エンジン バッファとも呼ばれます) は、データベース トランザクションがデータベースにコミットされる前に、データベース トランザクションをキャッシュに保存します。既定では、Exchange 2003 は、/3GB スイッチがサーバー上で設定されている場合は 896 MB、/3GB オプションが設定されていない場合は 576 MB を割り当てます。以下の場合では、最大バッファ サイズを調整することにより、パフォーマンスを向上させることができます。

  • サーバーで Exchange 2003 およびその他のサーバー側アプリケーションを実行している場合は、バッファを小さくして、Exchange によるメモリ使用を制限します。
  • メモリが 2 GB を超えるサーバーでは、バッファのサイズを大きくします (最大 1200 MB まで)。

最大バッファ サイズを増やす前に、パフォーマンス ログと警告を使用して、通常の負荷状態での Virtual Bytes カウンタ (Process オブジェクト内) のストア インスタンスを監視します。Virtual Bytes カウンタは、Store.exe プロセスが使用する仮想アドレス スペースの現在のサイズ (バイト数) を示します。値は、/3GB スイッチが設定されている場合は 2.8 GB 未満、/3GB スイッチが設定されていない場合は 1.8 GB 未満になっている必要があります。これらの値より大きい場合は、最大バッファ サイズを増やさないでください。これらの値より小さい場合は、最大バッファ サイズを 1,200 MB まで増やすことができます。たとえば、/3GB スイッチが設定されており、大きい負荷状態で仮想バイト カウントが 2.5 GB の場合は、最大バッファ サイズを約 300 MB ずつ増やすことができます。

アドレス スペースの断片化の問題が発生しているサーバーでは、バッファ サイズを増やすとサーバーのパフォーマンスに悪影響を与える可能性があることに注意してください。バッファを増やすことは、仮想アドレス スペースの消費量が増えることを意味します。バッファを大きくすると、システムが不安定になる場合があります。

最大バッファ サイズを調整するには、ADSI (Active Directory サービス インターフェイス) Edit を使用して msExchESEParamCacheSizeMax 値を変更します。msExchESEParamCacheSizeMax 値の変更方法の詳細については、サポート技術情報の文書番号 266768「[XSTR] ストア データベースの最大キャッシュ サイズを変更する方法」(https://go.microsoft.com/fwlink/?linkid=3052&kbid=266768) を参照してください。値を設定した後、Active Directory® ディレクトリ サービスがフォレスト全体に値をレプリケートするまで待ちます。次に、Microsoft Exchange Information Store サービスを再起動します。

important重要 :
msExchESEParamCacheSizeMin 値を選択しないように注意してください。

次の表は、最大バッファ サイズの既定値とその推奨値をまとめたものです。値はページ カウントとして表されるため、効率を最大に高めるには正確に 8192 の倍数に設定する必要があります。

バッファ サイズの既定値と推奨値

/3GB スイッチを指定したサーバーでの既定のサイズ

229376 (896 MB)

/3GB スイッチを指定していないサーバーでの既定のサイズ

147456 (576 MB)

推奨される最大値

311296 (1.2 GB)

非常に大きなアドレス空間制約があるサーバー

196608 (768 MB)