off;}クエリーログは以下のようなケースで有用です:スロークエリーを見つける。クエリーログを解析できます。このパッケージは有用なツールを提供しています。クエリーログを解析するツールがあります。これを使えば、スロークエリーを見つけることができます。クエリーログ内のすべてのクエリーを再生するツールもあります。これを使えば、新しいGroongaをプロダクション環境にデプロイする前に網羅的にテストすることができます。以下のディレクティブはgronoga-httpdの性能に関連しているディレクティブです。最適なパフォーマンスを得るためには、CPU数あるいはコア数と同じ数になるようにこのディレクティブを設定してください。場合、GroongaのクエリーはCPU負荷が高いものとなり、複数のCPU/コアを使い切るためには、このディレクティブを設定する必要があります。このディレクティブはgroonga-httpdのディレクティブではなく、nginxのディレクティブです。デフォルトで、このディレクティブには1が設定されています。ブロックで指定します。明示的に無効にできます。ブロックで指定します。マルチワーカーの設定をしている場合はこの設定をすることをオススメします。ベースのパスを指定すると、メモリーキャッシュではなく永続キャッシュを使えます。永続キャッシュを使うと、ワーカー間でクエリーキャッシュを共有できます。複数のワーカー間で同じレスポンスを1回だけキャッシュするので複数ワーカー設定のときに効率的です。永続キャッシュにはもう1つメリットがあります。groonga-httpdを再起動した後にキャッシュをウォームアップ必要がありません。groonga-httpdが停止しても永続キャッシュは消えません。そのため、既存の永続キャッシュを再利用することができます。これは永続キャッシュは無効ということです。メモリーキャッシュが使われます。メモリーキャッシュはワーカー毎に独立しています。複数のワーカーがそれぞれで同じレスポンスをキャッシュする可能性があるため、複数ワーカー設定のときはメモリーキャッシュは効率的ではありません。永続キャッシュはメモリーキャッシュよりも少し遅いです。通常、この差によるパフォーマンスの影響は軽微です。このベースとなるパスはメモリーファイルシステム上のパスを指定するべきです。ディスク上にベースとなるパスを指定するとキャッシュが遅くなります。これでは意味がありません。proxy_cache¶まとめると、Groonga組み込みのクエリーキャッシュ機能の代わりにnginxのリバースプロキシとキャッシュの仕組みを使うこともできます。コマンド用にクエリーキャッシュ機能を提供しています。この機能は多くのケースで性能向上を実現します。コマンドを使っていないあるいはワーカー数が1だけの場合はgroonga-httpd上でもきちんと動作します。コマンドは使わないので、多くの場合は問題がありません。コマンドを使ったときの問題点を説明します。groongaのクエリーキャッシュは同じプロセス内で有効です。これは、同じキャッシュを複数のワーカー間で共有できないということです。キャッシュサイズを変更しないならこれは大きな問題ではありません。コマンドでキャッシュサイズを変更したいなら問題になります。すべてのワーカーのキャッシュサイズを変更する汎用的な方法がないのです。3は1つもリクエストを受けとっていません。そのため、これらのワーカーのキャッシュサイズは変更されていません。コマンドですべてのワーカのキャッシュサイズを変更することができないのです。3この方法ではすべてのワーカーで同じキャッシュの設定を利用できますが、HTTPで動的にキャッシュの設定を変更することはできません。...}パラメーターの詳細は以下のnginxのドキュメントを見てください:http://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_pathhttp://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cache_validhttp://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_cachehttp://nginx.org/en/docs/http/ngx_http_proxy_module.html#proxy_passGroongaに新しいデータをロードしたときは自分でnginxが作ったキャッシュファイルを削除しなければいけないことに注意してください。/var/cache/groonga-httpd/*Groongaのクエリーキャッシュ機能を使うと、手動でキャッシュを失効する必要はありません。ディレクティブを使うことで出力できます。以下の例は、デフォルトのnginxのログ設定です。ディレクティブを使って、ログのフォーマットを指定できます。nginxのアクセスログは、処理終了時に出力されます。リクエスト処理時間を出力したい場合は、以下のように設定する必要があります。全てのHTTPの標準モジュールが利用可能です。Expressions)がない場合はHttpRewriteModuleは無効になります。