Docker環境での負荷テスト・パフォーマンスチューニング方法 [Backlog変更]

最近ではコンテナ環境で利用することが増えた。

APIのパフォーマンスチューニングすることがあったので、起動時のコンテナのbacklogを変更する方法を書き溜め。

alpine linux イメージのbacklogは基本的に128が多いと思う。例えば8192にする場合、起動時のsysctlsで指定する。

backlog変更はnet.core.somaxconnを指定する。

net.core.somaxconn は acceptまちのソケット数に関するカーネルパラメータのこと。

これだけ。簡単

実際にコンテナを起動して設定ファイルが変更されているか確認。

変更されているね。

じゃあね〜〜〜。

広告

参照

backlog 引数は、 sockfd についての保留中の接続のキューの最大長を指定する。 キューがいっぱいの状態で接続要求が到着すると、クライアントは ECONNREFUSED というエラーを受け取る。下位層のプロトコルが再送信をサポート していれば、要求は無視され、これ以降の接続要求の再送信が成功するかもしれない。
backlog 引数が /proc/sys/net/core/somaxconn の値より大きい場合、その値まで静かに切り捨てられます。Linux 5.4以降では、このファイルのデフォルトは4096です。以前のカーネルでは、デフォルト値は128です。2.4.25 以前のカーネルでは、この制限は SOMAXCONN というハードコードされた値で、値は 128 であった。

https://linuxjm.osdn.jp/html/LDP_man-pages/man2/listen.2.html