Helix Coreサーバ管理者ガイド: 基本 (2019.1)

メモリ

サーバのパフォーマンスは、メモリが十分に確保されているかどうかに大きく依存します。これには2つの問題があります。第1の問題を回避するには、大量のクエリを実行中のサーバにページングをさせないようにします。第2の問題を回避するには、db.revテーブル(またはそのうち少なくとも実際に使用する分量)がメインメモリにキャッシュされるようにします。

  • 大量のクエリの実行に必要なメモリ容量は、簡単に割り出せます。サーバがページングしないようにするには、1ファイルにつき1KBのRAMが必要です。10,000ファイルある場合には、10MBのRAMが必要です。
  • db.revをキャッシュする場合は、既存のインストール環境のdb.revファイルのサイズを確認し、それを目安として使用してください。新しくインストールされたHelixサーバでは、db.revは1リビジョンにつき150~200バイトを必要とします。概算のために1ファイルにつき3リビジョンとした場合、1ファイルにつき0.5KBのRAMが必要です。
  • 大きいファイルシステムキャッシュで応えることができるI/Oリクエストは、ファイルシステムキャッシュ外で応えなければならないリクエストよりも速く完了します。

したがって、1ファイルにつき1.5KBのRAM(100,000ファイルに対して150MBのRAM)が利用可能であれば、たとえすべてのファイルに関わる動作を実行しても、サーバはページングを行いません。もちろん、大規模な動作が複数同時に実行される可能性もありますから、ページングを回避するにはより多くのメモリが必要です。ただし、大多数の動作では、小規模なサブセットのファイルしか使用しません。

十分なメモリが割り当てられているかどうかを判断する1つの方法は、データベースファイルのみが存在するデバイスの物理的な読み取り速度を調べることです。この読み取り速度は、それほど重要ではありません。