サーバーのパフォーマンスを調整しようとしています。そのためにnet.core.somaxconn
、net.ipv4.tcp_max_syn_backlog
などのいくつかのsysctlパラメータをテストしたいと思いますnet.core.netdev_max_backlog
。
私の設定は次のとおりです。
nginx dockerコンテナを実行しているサーバーは、
4vCPU
静的ページを提供するテストWebサーバーとして機能します。One
16vCPU
、one8vCPU
、one4vCPU
ロードジェネレータとしてnginxサーバーでフレームワークを使用しています。locust
ネットワークサーバー仮想マシンのデフォルトのsysctlパラメータを使用すると、15k
RPSを取得できます。合計をより高い値またはより低い値に変更しても、net.core.somaxconn
結果は変更されませんでした。 RPSに設定したりしました。その後、キューがいっぱいになり、一部のパケットが破棄されたことを確認するために実行し、出力で同様の内容を予想しました。しかし、何も出力されません。net.ipv4.tcp_max_syn_backlog
net.core.netdev_max_backlog
1
15k
netstat -s | grep LISTEN
syn
accept
123456 SYNs to LISTEN sockets dropped
他のsysctlパラメータをテストしました。たとえばnet.ipv4.tcp_keepalive_time
、net.ipv4.tcp_keepalive_probes
およびすべて0に設定しましたnet.ipv4.tcp_keepalive_intvl
。ただし、実行後もnetstat -a | grep -i wait
まだ多くの接続がアクティブにTIME_WAIT
なっていることがわかります。何が問題なの?助けてください?