问题描述:由于步前路,完成剩下的Load Balance 测试,今天玩的是Haproxy。安装和部署
都只是碰到一些小的问题,基本上问题也不是问题了(此类为可通过Google Baidu 轻松解决)。
确认可以正常访问后,分别给两个web server web1 和web2 写了个静态页面,确认可以正常访问后,
在log 服务器上用 ab 做压力测试,按照测试的基准,从100000 请求数的静态页面开始测试
root@log:~# ab -c 10 -n 100000 http://192.168.104.132:80/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd,
http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 192.168.104.132 (be patient)
apr_poll: The timeout specified has expired
(70007)
Total of 6263 requests
completed
只完成了6263 个请求,这年头,瞎猫子碰死老鼠也不容易,因为这个系统是之前测试过Nginx 的,
理论上跟系统没有关系,不然在测试Nginx 并发的时候,就应该暴露了,检查了Haproxy 的配置文件,把
CPU 的相关东西调大一些,测试,错误依旧;进程数调多一些,测试,错误依旧;把Haproxy 超时时间
降低,错误依旧……
吃饭的时候,也没有点头绪,搞技术怕的就是找不到原因,而不是如何解决,中午休息时间,buffer
一下,睡完了起来接着整吧!
后来再想想,看看是不是TCP 连接数的问题,
root@log:~# ab -c 10 -n 100000 http://192.168.104.132:80/
This is ApacheBench, Version 2.3 <$Revision: 655654 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd,
http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/
Benchmarking 192.168.104.132 (be patient)
Completed 10000 requests
apr_poll: The timeout specified has expired
(70007)
Total of 15836 requests
completed
root@dispatch:/usr/local/haproxy# netstat -ant |grep TIME_WAIT | wc -l
8187
root@dispatch:/usr/local/haproxy# netstat -ant |grep TIME_WAIT | wc
-l
30
以上两次统计TIME_WAIT 连接数的情况是:8187 此时 ab 正在跑, 30 此数据 ab 已跑完15836
后退出。
这个情况让我觉得算是正常吧,TIME_WAIT 自动清除了,连接占用的时间也很少,放弃了查这个TIME_WAIT
相关参数。
于是还是围绕着超时的参数去转悠,找了个内核参数 /proc/sys/net/ipv4/tcp_fin_timeout 默认值是60
将其值
改成30 后,测试数据基本与上面相同,原因也不在这。
这个,情何以堪,随便再找找原因吧,看了一下/var/log/syslog 日志文件,妈呀,
dispatch kernel: [ 9984.162370] nf_conntrack: table
full, dropping packet.
大量的以上信息,我怎么才想着看系统日志,这么
,有了这个,很快就找到原来还是连接数的限制,看了

一下,系统默认的是31732,
root@dispatch:/usr/local/haproxy# cat
/proc/sys/net/ipv4/netfilter/ip_conntrack_max
31732
将其后面加了个0,再跑 ab 测试,这下OK
root@dispatch:/var/log# echo "317320" >
/proc/sys/net/ipv4/netfilter/ip_conntrack_max
耗时 58秒完成ab,结果虽然重要,过程也相当的,如果早看了系统日志,也不至于花上半天的时间摸索。
关于测试结果,这里不是重点,忽略,谨以此作为处理问题的经验罢了。
没有评论:
发表评论