Nginxでログをバッファーさせる


ログの出力は直接ファイルに書き込みが走るので、ディスク性能がモロに影響する。
Apache2.2で低速なディスクを使っていて、それなりにアクセスがある環境だと、BufferedLogsをOnにするだけで体感速度が変わるくらい大きな影響がある。

Nginxでも同じようにバッファーできないのかな?と思ってみたら、やはりあった。

試しに自宅サーバーで設定してみた。
設定はaccess.logの後にbuffer=サイズを追記するだけ。

[root@master01]/etc/nginx# diff nginx.conf.20160819 nginx.conf
35c35
<     access_log  /var/log/nginx/access.log custom;
---
>     access_log  /var/log/nginx/access.log custom buffer=32k;

これでNginxをrestartすればOK。
実際にログをtailで見てもちゃんとバッファーされた。
自宅サーバーだとアクセス少ないので、32kだと中々ログ出力されない笑

どの程度影響があるかわからないけれど、これは知っておいて損はなさそうに思う。
また、良さそうなパラメータがあったら設定してみたい。