linux性能系列--网络
一、为啥网络监控不好做?
二、网卡带宽对压力测试有什么影响?
回答:对于压力较大,或者数据流量较大的服务,比如空间图片服务,可能会出现由于网卡跑满,而压力上不去的现象,此时机器负载较为正常,但压力上不去。这对于测试环境,这是一个比较容易的现象。 比如 zjm机房的出口是百兆的,很容易压满。此时需要根据情况,将压力分布开。
当然也有一些模块,网卡本身就是瓶颈。了解网卡带宽对压力的影响,也有助于在分析时得出正确的判断。
三、timewait 对服务极限压力有何影响?
回答:对于常见的CS关系的网络交互服务,当client 主动close,会进入timewait 状态,但此时socket 仍然被占用,无法回收,这一请情况可能会影响 短链接的并发压力,因为大量的socket处于timewait 状态会使client 句柄耗尽。 一般情况,短连接压倒 400~500 就已经不稳定了。
缓解这一问题的,一般而言,有下面四种:
1. 逻辑实现上,尽量 server 端主动关闭。
2. 设置 SO_LINGER close.
这是一种不太体面的做法, 因为它触发的不是一个正常的结束。并且抹杀了TIME_WAIT 状态存在的意义: 网络上可能还有数据在传送,若此socket的 替身出现,会收不到该收的包。
3. 打开端口复用和快速回收
4. 修改系统timewait 时间,上面三个是应用层的方法,这是一个需要修改系统kernel的方法。
四、netstat是常用工具之一
如果你需要了解网络信息,那应该对它非常熟悉。它可以显示许多网络相关信息如套接字使用情况、路由、接口、协议、网络数据统计等。下面是以下基本的选项:
-r :显示路由信息
-i :显示网络接口信息
-s :显示网络协议信息
五、其他工具
1)ifconfig:可设置网络设备的状态,或是显示目前的设置。
2)Ethtool是用于查询及设置网卡参数的命令,需要管理员的权限。
概要:
ethtool ethX //查询ethX网口基本设置
ethtool –h //显示ethtool的命令帮助(help)
ethtool –i ethX //查询ethX网口的相关信息
ethtool –d ethX //查询ethX网口注册性信息
ethtool –r ethX //重置ethX网口到自适应模式
ethtool –S ethX //查询ethX网口收发包统计
ethtool –s ethX [speed 10|100|1000]\ //设置网口速率10/100/1000M
[duplex half|full]\ //设置网口半/全双工
[autoneg on|off]\ //设置网口是否自协商
[port tp|aui|bnc|mii]\ //设置网口类型
[phyad N]\
[xcvr internal|exteral]\
[wol p|u|m|b|a|g|s|d...]\
[sopass xx:yy:zz:aa:bb:cc]\
[msglvl N]
iptraf为我们提供如下信息:
IP traffic monitor: TCP连接的网络流量统计信息
General interface statistics: 网络接口的IP流量统计信息
Detailed interface statistics: 按协议分类显示网络流量统计信息
Statistical breakdowns: 按TCP/UDP和封包大小分类显示网络流量统计信息
LAN station monitor: 按第二层地址分类显示网络流量统计信息
六、网络性能指标
- Packets received and sent - 已接收和已发送的数据包数
Packets received and sent描述特定网卡已接收和已发送的数据包数。 - Bytes received and sent - 已接收和已发送的字节
Bytes received and sent描述特定网卡已接收和已发送的字节数。 - Collisions per second - 每秒钟冲突数
Collisions per second描述指定网卡上每秒发生的网络冲突数量。如果持续出现冲突值表示网络基础架构存在性能瓶颈,而并非服务器。在大多数正常配置的网络中,冲突是非常罕见的,除非是由hub组成的网络基础架构。 - Packets dropped - 丢弃的数据包数
Packets dropped描述被内核丢弃的数据包数,出现丢包的原因可能是防火墙配置有误或者网络缓存不够。 - Overruns – 溢出次数
Overruns描述网络接口缓存空间溢出的次数。Overruns指标与Packets dropped指标联合查看可以推断出性能瓶颈是在网络缓冲还是网络队列长度中。 - Errors - 错误
Errors描述被标示为错误的帧数量。引起Error的原因通常是网络不匹配或部分网络电缆损坏。部分网络电缆损坏是基于铜线的千兆网主要的性能瓶颈。