スクリプツ・ラボ ホームページ > N-gram検索エンジン MindSearch > オンラインマニュアル > MindSearchHyperマニュアル


環境変数の設定、共有メモリの最大ブロック変更



環境変数"PATH"の設定

 運用時では不要ですが、開発段階で勧める方法です。
 msdaemon, msctrl などのツール類は開発時の使用頻度が高いため、バイナリ格納パスである "〜〜/mshyper/bin" を環境変数"PATH"に追加して使われることをお勧めします。
 インストール者(あるいはアプリケーション開発者)のホームディレクトリ直下にあるシェル初期設定ファイル(bashrcなど)に"PATH"の追加のスクリプトを記述しておくと、これらのプログラムをパスを付けずに実行できるようになるので便利です。


共有メモリの最大ブロック変更

 MindSearch Hyperはインデックスの一部を共有メモリにロードしてから検索をおこなうようになっています。開発当初での小さなインデックスを扱っている場合にはOSのデフォルト値でも構いませんが、本格的な開発に入り、大きなインデックスを使うようなる時は以下で示す方法により共有メモリのブロック最大値を変更してください。但し以下の方法はLinuxでのケースであり他のOSではこれと異なることがあります。

    (1) 現在の確認
        (例)
         $ cat /proc/sys/kernel/shmmax

    (2) 変更 (root権限で行なってください)
         # echo 524288000 > /proc/sys/kernel/shmmax
         (最大ブロックサイズを500MBにする)

    (3) その他に、shmall の値も確認しておいてください(多くのマシンでは4KB単位です)

    (4) 手動による変更では次のマシン再起動で無効になってしまうため、OSの初期化ファイルにスクリプトを追加
しておくことをお勧めします。
 割り当てる必要のある共有メモリ量は作成するインデックスの大きさに比例します。
 以下は概ねの目安です。
     ----------------------------------------------------
     ファイル数(レコード数)  必要共有メモリ
     ----------------------------------------------------
      〜 50万                    260MB
      〜300万                   1500MB
     〜1000万                   5000MB
     ----------------------------------------------------

      注:上記は1レコード平均200バイトのデーターベース内の
         コンテンツの例であり、これより大きなテキストが格
         納されている場合は(物理ファイルからのインデックス
         作成など)上記より2〜3割ほど大きくなります。
マシン搭載メモリ量

 前項の「共有メモリの最大ブロック変更」記載のように、インデックスの大きさに対応した共有メモリが必要になるため、マシン搭載メモリもそれに見合う大きさにする必要があります。
 以下はおおざっぱな目安です。
     ----------------------------------------------------
     ファイル数(レコード数)  必要搭載メモリ
     ----------------------------------------------------
      〜200万                      2GB
      〜400万                      4GB
      〜600万                      8GB
     〜1000万                  8〜16GB
     ----------------------------------------------------

      注:上記は1レコード平均200バイトのコンテンツの例です。
         1レコードごとのテキストサイズが大きい場合には必要メモリも増大しますが正比例ほどではありません。



Copyright(C) 2000-2009 Scripts Lab. Inc.