sonewconn の Listen queue overflow に対応する
あまり見慣れないメッセージがログに残っていました。
どうも HTTPS のアクセスが集中した際に発生している模様。
kernel: sonewconn: pcb 0xfffff800051b3780: Listen queue overflow: 193 already in queue awaiting acceptance (23 occurrences)
kernel: sonewconn: pcb 0xfffff800051b3780: Listen queue overflow: 193 already in queue awaiting acceptance (214 occurrences)
kernel: sonewconn: pcb 0xfffff800051b3780: Listen queue overflow: 193 already in queue awaiting acceptance (17 occurrences)
いろいろ調べた結果、kern.ipc.soacceptqueue
を調整すれば良さそう。
デフォルトは128のようです。
# sysctl kern.ipc.soacceptqueue
kern.ipc.soacceptqueue: 128
# netstat -Lan | grep 443
tcp6 0/0/128 *.443
tcp4 0/0/128 *.443
ふむふむ。
しかしメッセージでは193なので不思議だったのですが、どうも2で割って3倍にするらしいです。
これで192なので、192を越えた193個目をキューに入れようとしてこのメッセージが出たという事なのでしょうね。
こちらをとりあえず倍の256にしてみます。
# sysctl kern.ipc.soacceptqueue=256
# /usr/local/etc/rc.d/nginx restart
# netstat -Lan | grep 443
tcp6 0/0/256 *.443
tcp4 0/0/256 *.443
ふえました。
これで様子を見ることにします。
ディスカッション
コメント一覧
まだ、コメントがありません