Linux运维工程师必须掌握的服务器性能参数指标(4)

时间:2018-12-17   来源:   网友评论:0   人气: 1532 作者:

netstat –all(a) –numeric(n) –tcp(t) –udp(u) –timers(o) –listening(l) –program(p)

–timers可以取消域名反向查询,加快显示速度;比较常用的有

1

2

➜ ~ netstat -antp #列出所有TCP的连接

➜ ~ netstat -nltp #列出本地所有TCP侦听套接字,不要加-a参数

3.2 sar

sar这个工具太强大了,什么CPU、磁盘、页面交换啥都管,这里使用-n主要用来分析网络活动,虽然网络中它还给细分了NFS、IP、ICMP、SOCK等各种层次各种协议的数据信息,我们只关心TCP和UDP。下面的命令除了显示常规情况下段、数据报的收发情况,还包括

TCP
# ~ sudo sar -n TCP,ETCP 1 
Linux运维工程师必须掌握的服务器性能参数指标active/s:本地发起的TCP连接,比如通过connect(),TCP的状态从CLOSED -> SYN-SENT
passive/s:由远程发起的TCP连接,比如通过accept(),TCP的状态从LISTEN -> SYN-RCVD
retrans/s(tcpRetransSegs):每秒钟TCP重传数目,通常在网络质量差,或者服务器过载后丢包的情况下,根据TCP的确认重传机制会发生重传操作
isegerr/s(tcpInErrs):每秒钟接收到出错的数据包(比如checksum失败)

UDP
# ~ sudo sar -n UDP 1 
noport/s(udpNoPorts):每秒钟接收到的但是却没有应用程序在指定目的端口的数据报个数
idgmerr/s(udpInErrors):除了上面原因之外的本机接收到但却无法派发的数据报个数
当然,这些数据一定程度上可以说明网络可靠性,但也只有同具体的业务需求场景结合起来才具有意义。

3.3 tcpdump

tcpdump不得不说是个好东西。大家都知道本地调试的时候喜欢使用wireshark,但是线上服务端出现问题怎么弄呢?附录的参考文献给出了思路:复原环境,使用tcpdump进行抓包,当之前的问题复现(比如通过观察日志显示或者某个状态显现)的时候,就可以结束抓包了。而且tcpdump本身带有-C/-W参数,可以限制抓取包存储文件的大小,当达到这个这个限制的时候保存的包数据自动rotate,所以抓取的数据包的数量总体还是可控的。此后将线上数据包拿下线来,用wireshark想怎么看就怎么看,岂不乐哉!tcpdump虽然没有GUI界面,但是抓包的功能丝毫不弱,线上服务器的流量可能会很大,但是通过指定网卡、主机、端口、协议等各项过滤参数,抓下来的包完整又带有时间戳,可以结合时间点进行推测就可以大大缩小可疑数据包的范围,所以线上程序的数据包分析也可以这么简单。

下面就是一个小的测试,可见Chrome启动时候自动向Webserver发起建立了三条连接,由于这里限制了dst port参数,所以服务端的应答包被过滤掉了,拿下来用wireshark打开,SYNC、ACK建立连接的过程还是很明显的!在使用tcpdump的时候,需要尽可能的配置抓取的过滤条件,一方面便于接下来的分析,二则tcpdump开启后对网卡和系统的性能会有影响,进而会影响到在线业务的性能。

Linux运维工程师必须掌握的服务器性能参数指标


 

文章评论