当前位置: 技术问答>linux和unix
Socket高手帮忙看一下,来者有分
来源: 互联网 发布时间:2015-11-08
本文导语: 我有个往服务器写数据的socket的程序,起了3个进程,开始运行6-8个小时没有问题,后来觉的速度逐渐减慢,我用如下命令在服务器端发现Recv-Q,和Send-Q逐渐增多,到一定程度就不动了,往Server写数据的socket也逐渐变慢,但是连接...
我有个往服务器写数据的socket的程序,起了3个进程,开始运行6-8个小时没有问题,后来觉的速度逐渐减慢,我用如下命令在服务器端发现Recv-Q,和Send-Q逐渐增多,到一定程度就不动了,往Server写数据的socket也逐渐变慢,但是连接也没有断,也没有超时,另外我起用了TcpNoDelay,也设置了超时.
$ netstat -n | grep 192.168.0.12
tcp 8310 13032 192.168.0.11:8001 192.168.0.12:41801 ESTABLISHED
tcp 78431 13032 192.168.0.11:8001 192.168.0.12:43972 ESTABLISHED
tcp 14022 13032 192.168.0.11:8001 192.168.0.12:41439 ESTABLISHED
在这里谢过各位了,希望高手帮忙把把脉,另外Recv-Q和Send-Q是做什么用的?体现什么现象?
$ netstat -n | grep 192.168.0.12
tcp 8310 13032 192.168.0.11:8001 192.168.0.12:41801 ESTABLISHED
tcp 78431 13032 192.168.0.11:8001 192.168.0.12:43972 ESTABLISHED
tcp 14022 13032 192.168.0.11:8001 192.168.0.12:41439 ESTABLISHED
在这里谢过各位了,希望高手帮忙把把脉,另外Recv-Q和Send-Q是做什么用的?体现什么现象?
|
Recv-Q : The count of bytes not copied by the user program connected to this socket.
Send-Q : The count of bytes not acknowledged by the remote host.
Send-Q那么多,你的client程序在做什么呢?client的负载有那么大吗?
另外要求实时交互吗?不用启用TCP_NODELAY试试?
Send-Q : The count of bytes not acknowledged by the remote host.
Send-Q那么多,你的client程序在做什么呢?client的负载有那么大吗?
另外要求实时交互吗?不用启用TCP_NODELAY试试?
|
数据处理得太慢。
|
Recv-Q和Send-Q是接收的包和发送的包。
顺便mark
顺便mark