果冻想
认真玩技术的地方

Linux性能监测:网络篇

前言

说实话,对于网络来说,我是最不熟悉的了,好多名词我都不清楚是什么意思,但是学习这个东西,就是因为咱们不会,咱们才有激情去学习,对吧。而由于咱对网络知识的缺乏,在段时间内,又无法很快建立全面的网络知识体系,所以呢,我这篇文章也就是班门弄斧了,就是一篇非常简单的、命令式的总结,希望大家有一定的帮助。如果有哪位网络大神看到了这篇文章,也希望能指点一二。

网络的监测是所有Linux子系统里面最复杂的,有太多的因素在里面,比如:延迟、阻塞、冲突、丢包等,更糟的是与Linux主机相连的路由器、交换机、无线信号都会影响到整体网络并且很难判断是因为Linux网络子系统的问题还是别的设备的问题,增加了监测和判断的复杂度。所以我这里只能通过总结一些命令来管中窥豹了。

细读以下几遍文章

说到网络性能,肯定也要通过一些工具来发现这些性能问题。下面说的这些工具,就是作为运维人员不得不会的。

经验分享

即使掌握了上面的几个命令,如果没有实际的经验,也是很难把住网络这个难题的命脉的。在实际工作中,主要观察点分为以下两点:

  • UDP监控
    • 对于UDP监控而言,我们需要查看所有监听端口的网络情况,通过netstat -anu命令进行查看,对于Recv-QSend-Q两个指标值为0,或者在时间区间内对应的值不大都说明是正常的;
    • 同时对于UDP服务而言,查看丢包情况,即网卡收到了,但是应用层没有处理过来的而造成的丢包。主要通过netstat -su命令查看,确认是否有大量错误包。
  • TCP监控
    • 对于TCP服务而言,这个就比较复杂;因为TCP涉及到重传,所以我们就需要重点关注这个重传率。通过netstat -st命令查看segments send outsegments retransmited指标,对比一段时间内,这两个指标的增长率就是对应的重传率,发生重传说明网络传输有丢包,基本上从3个点去定位:客户端网络情况、服务端网络情况、中间链路网络情况:
      • 客户端机器网络异常
      • 服务端网卡流量跑满,网卡有丢包现象,关注ifconfig的error输出
      • 中间网络连路拥塞,比如交换机上联、核心交换机链路等,需要逐个排查链路流量情况
    • 另一个关注点就是网卡吞吐率,我们可以通过sar -n DEV 2 3命令来查看,将rxkB/stxkB/s进行相加,得到网卡设备的实际吞吐率,然后再和网卡的硬件指标进行比对即可。比如一个网卡的rxkB/s指标为21999.10,txkB/s指标为482.56,那这个网卡的吞吐率大概在22Mbytes/s,即176 Mbits/sec,没有达到1Gbit/sec的硬件上限。

总结

对于网络性能来说,这个真的是一个很难把握的点,而我这边文章通过一些简单的网络监控命令入手,再结合一些平时的经验,让大家可以把这个网络性能知识点掌握了。总结就到此,整个系列的总结也就到此结束。下个专题见了,各位~~~

最后,如果您觉的整个系列对你的运维水平所有提升,记得点击下面的“打赏”哦,你的支持是我最大的动力。

附录

计算重传率的Shell脚本:

#!/bin/bash
export PATH='/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin'
SHELLDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"

netstat -s -t > /tmp/netstat_s 2>/dev/null

s_r=`cat /tmp/netstat_s | grep 'segments send out' | awk '{print $1}'`
s_re=`cat /tmp/netstat_s  | grep 'segments retransmited' | awk '{print $1}'`

[ -e ${SHELLDIR}/s_r ] || touch ${SHELLDIR}/s_r
[ -e ${SHELLDIR}/s_re ] || touch ${SHELLDIR}/s_re

l_s_r=`cat ${SHELLDIR}/s_r`
l_s_re=`cat ${SHELLDIR}/s_re`

echo $s_r > ${SHELLDIR}/s_r
echo $s_re > ${SHELLDIR}/s_re

tcp_re_rate=`echo "$s_r $s_re $l_s_r $l_s_re" | awk '{printf("%.2f",($2-$4)/($1-$3)*100)}'`
echo $tcp_re_rate

果冻想,认真玩技术的地方。

2019年3月11日,于内蒙古呼和浩特。

赞(4) 打赏
未经允许不得转载:果冻想 » Linux性能监测:网络篇
关注微信公众号
关注微信公众号和果冻一起分享你的疑惑与心得。
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

玩技术,我们是认真的

联系我们关于果冻

感谢支持果冻想

支付宝扫一扫打赏

微信扫一扫打赏