Chinaunix

标题: lvs后的nginx status页数据问题 [打印本页]

作者: 剑啸易水寒    时间: 2013-05-08 17:32
标题: lvs后的nginx status页数据问题
本帖最后由 剑啸易水寒 于 2013-05-08 17:34 编辑

lvs+keepalived--->nginx+apache 结构,未上lvs前nginx+phpcgi单台并发2K,

LVS:(DR模式)
Prot LocalAddressort Scheduler Flags
  -> RemoteAddressort           Forward Weight ActiveConn InActConn     
TCP  192.168.3.100:80 wlc persistent 60
  -> 192.168.3.101:80              Route   100    447        614      
  -> 192.168.3.102:80              Route   100    481        330

同一台RS:
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
TIME_WAIT 2236
FIN_WAIT1 4
FIN_WAIT2 2
ESTABLISHED 437
SYN_RECV 18
CLOSING 1
LAST_ACK 12

页面: http://localhost/status
Active connections: 11780
server accepts handled requests
390245 390245 1834096
Reading: 614 Writing: 834 Waiting: 10332

两种查看并发的方法,数据差距很大
是否是内核设置或者长连接问题?该从何处入手?

lvs :
ipvsadm -Ln --timeout
Timeout (tcp tcpfin udp): 120 60 120

nginx:
keepalive_timeout 60;
proxy_connect_timeout   600;
proxy_send_timeout      600;
proxy_read_timeout      600;

apache:
Timeout 30
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 5

请各位帮忙看一下是什么问题。谢谢。
作者: 剑啸易水寒    时间: 2013-05-09 09:23
这个问题只有靠CU解了,跑了好多论坛都搞不定
作者: xiaodylan    时间: 2013-05-09 13:49
TIME_WAIT 2236 TIME_WAIT数量稍微有点高
建议查看一下net.ipv4.tcp_fin_timeout 这个参数的设置。
作者: 剑啸易水寒    时间: 2013-05-09 15:50
回复 3# xiaodylan


    net.ipv4.tcp_fin_timeout = 1

   
作者: xiaodylan    时间: 2013-05-09 16:07
建议根据你的业务情况设置为10或者20 试试看,如果在不行,就问一下开发,是不是有某些PHP代码没有close()回复 4# 剑啸易水寒


   
作者: 剑啸易水寒    时间: 2013-05-09 17:51
回复 5# xiaodylan


    下午我尝试在lvs上ipvsadm --set 30 5 60 ,nginx状态页的数据涨幅没有以前那么快了,但是还是会不断增加,直至503重启
作者: xiaodylan    时间: 2013-05-10 10:34
本帖最后由 xiaodylan 于 2013-05-10 10:36 编辑

"还是会不断增加,直至503重启"    不太了解你的环境到底是什么样的!再有你的 Waiting: 10332  waiting连接好大...我觉得好像还是你的系统参数设置问题..回复 6# 剑啸易水寒


   
作者: 剑啸易水寒    时间: 2013-05-10 11:16
回复 7# xiaodylan


    您可以看到,当时命令行下TIME_WAIT 2236,这个才是实际值,也就是说三个数据(lvs ActiveConn、nginx status、netstat EST)不对称,lvs ActiveConn和netstat EST是近似的,nginx status和其他差距很大
作者: 剑啸易水寒    时间: 2013-05-10 11:16
回复 7# xiaodylan


    您可以看到,当时命令行下TIME_WAIT 2236,这个才是实际值,也就是说三个数据(lvs ActiveConn、nginx status、netstat EST)不对称,lvs ActiveConn和netstat EST是近似的,nginx status和其他差距很大
作者: xiaodylan    时间: 2013-05-10 11:27
/proc/sys/net/ipv4/ip_conntrack_max
/proc/sys/fs/file-max
这两个值 分别是多少?
作者: 剑啸易水寒    时间: 2013-05-10 22:14
回复 12# xiaodylan


    net.ipv4.ip_conntrack_max = 1310720000
    fs.file-max = 1024000

这个应该没有问题吧
作者: Exhalo    时间: 2013-05-11 09:48
这个脚本我很喜欢..也很实用,可是为什么我这边总是什么都不返回,不好使呢!没办法只好grep 挨个查,哎..  netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' 回复 1# 剑啸易水寒


   
作者: 剑啸易水寒    时间: 2013-05-22 23:08
这个问题还没有解决,,请各位援手




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2