🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 网络测试 千兆万兆网卡实际上都是网卡在理想环境的理论值,实际的网络带宽还取决于`网络环境`和`服务器的负载`。 * iperf 可以做服务器间的网络性能测试, # 性能测试 ## [iperf][1] ### 安装 ~~~ yum install -y iperf # centos apt-get install iperf # ubuntu ~~~ ### 命令 ~~~ Client/Server -i, --interval -p, --port -B, --bind -u, --udp Server specific: -s, --server Client specific -b, --bandwidth #[KM] for UDP, bandwidth to send at in bits/sec -c, --client <host> run in client mode, connecting to <host> -n, --num #[KM] number of bytes to transmit (instead of -t -t, --time # time in seconds to transmit for (default 10 secs) ~~~ ### 用法 ~~~ # 服务端 iperf -s # 客户端 5s iperf -c 172.30.248.61 -t 5 ~~~ > 如果想要测试多个网卡跑满,需要开启多个 iperf client 端 --- # 状态监控 ## [vnstat][2] ### 安装 ~~~ yum install -y vnstat # centos apt-get install vnstat # ubuntu ~~~ ### 命令 ~~~ -i, --iface select interface (default: eth0) -l, --live show transfer rate in real time ~~~ ### 实时监控 ~~~ vnstat -l -i bond0 ~~~ ### 守护进程 ~~~ /etc/init.d/vnstat start # 作为守护进程,使用客户端软件查看 https://www.youtube.com/watch?v=qhOemE12uXA ~~~ ## [nethogs][3] 进程网络流量监控 centos版本可以直接安装使用,ubuntu的apt安装版本有bug,需要编译安装 ~~~ # 下载新版本 https://github.com/raboof/nethogs/releases # Debian/Ubuntu apt-get install build-essential libncurses5-dev libpcap-dev # Yum-based distro's yum install gcc-c++ libpcap-devel.x86_64 libpcap.x86_64 ncurses* # make && make install When nethogs is running, press: q: quit s: sort by SENT traffic r: sort by RECEIVE traffic m: switch between total (KB, B, MB) and KB/s mode ~~~ ## [nicstat][4] 网络流量统计实用工具 ### 安装 ~~~ apt-get install nicstat ~~~ ~~~ 选项: -h #显示简单的用法 -v #显示nicstat版本 -n #只统计非本地(即非回环)接口 -s #显示摘要输出(只是接收和发送的数据量) -x #显示扩展的输出 -M #以Mbps显示吞吐量,而不是默认的KB/s -p #以解析后的输出格式显示 -z #跳过采样周期内是零流量的接口 -t #tcp流量统计 -u #ucp流量统计 -a #等同于'-x -t -u' -l #只显示端口状态 -s #只显示出入带宽 -i interface[,interface...] #指定接口 ~~~ ### 实例 ~~~ nicstat 3 2 Time Int rKB/s wKB/s rPk/s wPk/s rAvs wAvs %Util Sat 06:19:46 lo 0.72 0.72 2.15 2.15 341.2 341.2 0.00 0.00 06:19:46 eth0 0.89 0.15 1.37 0.92 660.4 163.6 0.00 0.00 Time Int rKB/s wKB/s rPk/s wPk/s rAvs wAvs %Util Sat 06:19:49 lo 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 06:19:49 eth0 0.02 0.12 0.33 0.33 66.00 354.0 0.00 0.00 Time列:表示当前采样的响应时间. lo and eth0 : 网卡名称. rKB/s : 每秒接收到千字节数. wKB/s : 每秒写的千字节数. rPk/s : 每秒接收到的数据包数目. wPk/s : 每秒写的数据包数目. rAvs : 接收到的数据包平均大小. wAvs : 传输的数据包平均大小. %Util : 网卡利用率(百分比). Sat : 网卡每秒的错误数.网卡是否接近饱满的一个指标.尝试去诊断网络问题的时候,推荐使用-x选项去查看更多的统计信息. ~~~ ### -x 查看扩展信息 ~~~ nicstat -x -i em1 1 10 14:19:58 RdKB WrKB RdPkt WrPkt IErr OErr Coll NoCP Defer %Util em1 3966.1 4047.0 6943.4 7280.9 0.00 0.00 0.00 0.00 0.00 65.6 em1 4316.1 4352.4 8474.3 9027.6 0.00 0.00 0.00 0.00 0.00 71.0 em1 3691.2 4176.7 8140.6 8792.4 0.00 0.00 0.00 0.00 0.00 64.5 em1 3525.7 3948.8 7941.4 8249.3 0.00 0.00 0.00 0.00 0.00 61.2 ~~~ ### -t 查看tcp信息 ~~~ nicstat -t -i em1 1 10 14:23:05 InKB OutKB InSeg OutSeg Reset AttF %ReTX InConn OutCon Drops TCP 0.00 0.00 8611.1 9569.2 544 62.4 0.000 325 244 0.01 14:23:06 InKB OutKB InSeg OutSeg Reset AttF %ReTX InConn OutCon Drops TCP 0.00 0.00 11297.5 12517.6 362 40.9 0.000 533 249 0.00 InKB : 表示每秒接收到的千字节. OutKB : 表示每秒传输的千字节. InSeg : 表示每秒接收到的TCP数据段(TCP Segments). OutSeg : 表示每秒传输的TCP数据段(TCP Segments). Reset : 表示TCP连接从ESTABLISHED或CLOSE-WAIT状态直接转变为CLOSED状态的次数. AttF : 表示TCP连接从SYN-SENT或SYN-RCVD状态直接转变为CLOSED状态的次数,再加上TCP连接从SYN-RCVD状态直接转变为LISTEN状态的次数 %ReTX : 表示TCP数据段(TCP Segments)重传的百分比.即传输的TCP数据段包含有一个或多个之前传输的八位字节. InConn : 表示TCP连接从LISTEN状态直接转变为SYN-RCVD状态的次数. OutCon : 表示TCP连接从CLOSED状态直接转变为SYN-SENT状态的次数. Drops : 表示从完成连接(completed connection)的队列和未完成连接(incomplete connection)的队列中丢弃的连接次数. ~~~ ### -u 查看udp相关信息 ~~~ nicstat.sh -u 06:39:42 InDG OutDG InErr OutErr UDP 0.01 0.01 0.00 0.00 InDG : 每秒接收到的UDP数据报(UDP Datagrams) OutDG : 每秒传输的UDP数据报(UDP Datagrams) InErr : 接收到的因包含错误而不能被处理的数据包 OutErr :因错误而不能成功传输的数据包. ~~~ ## ifstat 监控实时流量 简单的网络流量监控工具 ### 直接安装 ![](https://ws2.sinaimg.cn/large/006tNc79gy1foqka6ql6wj30rl064dgz.jpg) ### 用法 ~~~ ifstat -a 1 5 #每个1s输出一次,共5次 ~~~ ## iftop ### 安装 ~~~ CentOS上安装所需依赖包: yum install flex byacc libpcap ncurses ncurses-devel libpcap-devel iftop Debian上安装所需依赖包: apt-get install flex byacc libpcap0.8 libncurses5 iftop ~~~ ### 用法 ~~~ -i设定监测的网卡,如:# iftop -i eth1 -B 以bytes为单位显示流量(默认是bits),如:# iftop -B ~~~ ## iptraf 流量监控工具 ~~~ yum install -y iptraf ~~~ ## slurm ### 安装 ~~~ slurm -i bond0 ~~~ ![](https://ws4.sinaimg.cn/large/006tNc79gy1forisjv62zj30oe0fz407.jpg) ## cbm ~~~ cbm ~~~ ![](https://ws3.sinaimg.cn/large/006tNc79gy1foqlizam7fj30wr095q3v.jpg) ## netstat ``` # 查看状态 CLOSE_WAIT ESTABLISHED FIN_WAIT2 TIME_WAIT netstat -n | awk '/^tcp/ {++y[$NF]} END {for(w in y) print w, y[w]}' # 查看连接数排名 netstat -n|grep ESTABLISHED |awk '{print $5}'|sort|uniq -c|sort -rn|head -n20 ``` # 故障测试 [1]:https://iperf.fr/iperf-download.php [2]:http://humdi.net/vnstat/man/vnstat.html [3]:https://github.com/raboof/nethogs#readme [4]:https://blogs.oracle.com/timc/nicstat-the-solaris-and-linux-network-monitoring-tool-you-did-not-know-you-needed