nginx tcp_nopush tcp_nodelay チューニング

tcp_nopush

tcp_nopushディレクティブはsendfileが有効なときに、FreeBSDの場合はTCP_NOPUSHソケットオプション、Linuxの場合はTCP_CORKソケットオプションを使うかを設定します。このオプションを使うと、レスポンスヘッダとファイルの内容をまとめて送るようになり、少ないパケット数で効率良く送ることができます。デフォルトの設定値はoffです。

nginx連載3回目: nginxの設定、その1 - インフラエンジニアway - Powered by HEARTBEATS

ところで、tcp_nopushは本来tcp_nodelay(nginxではデフォルトで有効)とは反対の動きをするのですが、nginxはこの二つを組み合わせてもうまく動作するように実装されているようです。(NGINX OPTIMIZATION: UNDERSTANDING SENDFILE, TCP_NODELAY AND TCP_NOPUSH)

nginxのパラメータチューニングとh2o - Qiita