ハードウェアロードバランサーの背後に2台のサーバーがhttpd
稼働しています。RHEL 6
httpd エラーログにタイムアウトエラーが表示されます。
[Fri Feb 19 15:06:49.823372 2016] [proxy_http:error] [pid 15760] (70007)The timeout specified has expired: [client 172.X.X.187:48453] AH01095: prefetch request body failed to 172.X.X.210:21080 (host-x15) from 172.X.X.187 (), referer: http://www.example.com.au/secure/Book?cb=30938956188
[Fri Feb 19 15:07:37.113599 2016] [proxy_http:error] [pid 16312] (70007)The timeout specified has expired: [client 172.X.X.187:51600] AH01095: prefetch request body failed to 172.X.X.209:21080 (host-x14) from 172.X.X.187 (), referer: http://www.example.com.au/secure/Book?cb=182574845707719466206
私たちの場合は、apache
以下を使用して作業しています。背面にサーバーがあります。load balancer
mod_balancer_mananger
tomcat
apache load balancer
私が心配するのはtimeout
私が見ているエラーです。apache
最初の機会に切断されますか?上記のシナリオでは、172.X.X.187
ハードウェアロードバランサのIPです。172.X.X.210/209
背後にあるアプリケーションサーバーのIPはですapache load balancer
。
システムを確認すると、ロードバランサーIPからのTIME_WAIT接続がたくさん見えます。接続数が600を超える場合もあります。
$ sudo netstat -anp | grep -i time | grep 172.X.X.187 | wc -l
621
$ sudo netstat -anp | grep -i estab | wc -l
681
デフォルトのTCPカーネルパラメータが原因で接続制限がなくなりましたか?https://stackoverflow.com/questions/410616/increasing-the-maximum-number-of-tcp-ip-connections-in-linux
$ cat /proc/sys/net/ipv4/tcp_fin_timeout
60
$ cat /proc/sys/net/ipv4/ip_local_port_range
32768 61000
$ cat /proc/sys/net/ipv4/tcp_max_syn_backlog
4096
apache load balancer
構成は次のとおりです
BalancerMember host-x14:21080 min=1 max=1000 loadfactor=1 retry=1 timeout=240 route=host-x4
BalancerMember host-x15:21080 min=1 max=1000 loadfactor=1 retry=1 timeout=240 route=host-x5
提案してください。より多くの情報が必要な場合はお知らせください。