您的位置:首页 > 其它

LVS的三种转发模型及简单调优

2012-04-14 15:48 232 查看
今天发现一个很好用的命令:ss

ss是socket statistics 的缩写,可以用来获取socket的统计信息,显示内容和netstat类似, 但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。

ss快的秘诀在于,它利用到了TCP协议栈中tcp_diag。tcp_diag是一个用于分析统计的模块,可以获得Linux 内核中第一手的信息,这就确保了ss的快捷高效。当然,如果你的系统中没有tcp_diag,ss也可以正常运行,只是效率会变得稍慢(但仍然比 netstat要快)。

ss命令部分参数项:

ss -l 显示本地打开的所有端口

ss -pl 显示每个进程具体打开的socket

ss -t -a 显示所有tcp socket

ss -u -a 显示所有的UDP Socekt

ss -o state established '( dport = :smtp or sport = :smtp )' 显示所有已建立的SMTP连接

ss -o state established '( dport = :http or sport = :http )' 显示所有已建立的HTTP连接

ss -x src /tmp/.X11-unix/* 找出所有连接X服务器的进程

ss -s 列出当前socket详细信息

其他参数项目man下。

查看socket信息:





特别要注意timewait这个项,如果值比较大的话,说明有很多处于TIME_WAIT状态的连接,系统负载会变大,这时候要系统的连接情况调优。

首先可以对系统内核参数优化下:

net.ipv4.tcp_tw_reuse

当服务器需要在大量TCP连接之间切换时,会产生大量处于TIME_WAIT状态的连接。TIME_WAIT意味着连接本身是关闭的,但资源还没有释放。将net_ipv4_tcp_tw_reuse设置为1是让内核在安全时尽量回收连接,这比重新建立新连接要便宜得多。
net.ipv4.tcp_fin_timeout
这是处于TIME_WAIT状态的连接在回收前必须等待的最小时间。改小它可以加快回收。
然后检查web服务器的连接参数设置情况,具体就不多说咯。

查看所有tcp socket:





又快信息又全,是不是很方便啊!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: