🕌
Nginx で (99: Cannot assign requested address) のエラーが頻発する件
問題
ElasticBeanstalk 環境で負荷テストを行なった際、以下のエラーが頻発。
[crit] connect() to 127.0.0.1:8080 failed (99: Cannot assign requested address)
ターゲット側の 5XX エラーが頻発 😥
TIME_WAIT がいっぱい。。。
$ netstat -an | grep TIME_WAIT | wc -l
28240
対応
TIME-WAIT ソケットの再利用を有効にする。
$ sudo sysctl -w net.ipv4.tcp_tw_reuse=1
ターゲット側の 5XX エラーもなくなった 😄
半分くらいに減った。
$ netstat -an | grep TIME_WAIT | wc -l
14470
ElasticBeanstalk での対応
.ebextensions/net-ipv4-tcp_tw_reuse.config
container_commands:
00-cmd:
test: '[ ! -f /root/.net-ipv4-tcp_tw_reuse.txt ]'
command: |
sysctl -w net.ipv4.tcp_tw_reuse=1
logger -t net-ipv4 "sysctl -w net.ipv4.tcp_tw_reuse=1"
touch /root/.net-ipv4-tcp_tw_reuse.txt
logger -t net-ipv4 "touch .net-ipv4-tcp_tw_reuse.txt"
Discussion