これはPGroonga 2.X and 3.X用のドキュメントです。古いPGroongaを使っているならPGroonga 1.xのドキュメントを見てください。
通常、PGroongaはデフォルトで高速に動くため、特別にPGroongaをチューニングする必要はありません。
しかし、非常に大きなデータベースを扱う必要がある場合など、PGroongaをチューニングする必要がある場合がいくつかあります。PGroongaのバックエンドはGroongaです。つまり、Groongaのチューニング方法はPGroongaにも適用できます。PGroongaをチューニングするにはGroongaのチューニングドキュメントも参考にしてください。
nofile
PGroongaを使って大量のデータを挿入・更新しているとき、pgroonga.log
に次のようなエラーが出力されていることがあります。
SQLSTATE[58000]: <<Unknown error>>: 7 ERROR: pgroonga: [insert] failed to set column value: system call error: Too many open files: [io][open] failed to open path: <base/121469/pgrn.00001C4>
PGroongaを使っているPostgreSQLプロセスが大量のファイルを開く必要があったのにシステムの設定で許可されていません。これを解決するには次のような内容の/etc/security/limits.d/postgresql.conf
を作成します。
postgres soft nofile 65535
postgres hard nofile 65535
この例では1つのPostgreSQLプロセスは最大で65535個のファイルを開けます。
何個のファイルを開ければ十分かを計算するにはGroonga:チューニング:1プロセスで開ける最大ファイル数を参照してください。
vm.overcommit_memory
PGroongaで検索するとき、pgroonga.log
に次のような警告が出力されていることがあります。
vm.overcommit_memory kernel parameter should be 1: <0>: See INFO level log to resolve this
この警告を抑制するにはvm.overcommit_memory
カーネルパラメーターを1
にする必要があります。これは次の内容の/etc/sysctl.d/groonga.conf
を作ることで設定できます。
vm.overcommit_memory = 1
この設定はすステムを再起動するか次のコマンドを実行することで適用できます。
sudo sysctl --system