Linux网络性能指标
概述
从理论到实践掌握Linux系统网络性能监控与优化
核心网络指标
带宽 (Bandwidth)
网络连接的最大数据传输速率,通常以Mbps或Gbps表示
延迟 (Latency)
数据包从源到目的地的传输时间,影响响应速度
吞吐量 (Throughput)
实际传输的数据量,通常小于理论带宽
丢包率 (Packet Loss)
传输过程中丢失的数据包百分比
并发连接数
同时活跃的网络连接数量
网络错误率
传输错误、重传等异常情况的统计
监控工具概览
netstat
显示网络连接、路由表、接口统计等基础信息
ss
现代化的socket统计工具,比netstat更快更强
iftop
实时显示网络接口流量,类似top命令
sar
系统活动报告,包含详细的网络统计数据
tcpdump
网络抓包分析工具,深度分析网络问题
nload
实时网络流量监控,图形化显示带宽使用
实战命令演练
基础监控 深度分析 故障排查 性能优化
基础网络状态监控
ss -tuln
功能: 显示所有TCP和UDP监听端口 参数: -t(TCP) -u(UDP) -l(监听) -n(数字显示) 关键指标: LISTEN:Recv-Q(全连接队列长度) Send-Q(全连接队列最大长度)
Netid State Recv-Q Send-Q Local Address:Port Peer Address:Port udp UNCONN 0 0 :68 : udp UNCONN 0 0 10.2.20.9:123 : udp UNCONN 0 0 127.0.0.1:123 : udp UNCONN 0 0 [fe80::5054:ff:fe2d:94f2]%eth0:123 [::]: udp UNCONN 0 0 [::1]:123 [::]: tcp LISTEN 0 128 :22 : tcp LISTEN 0 511 :443 : tcp LISTEN 0 300 :3306 : tcp LISTEN 0 511 :80 : tcp LISTEN 0 128 [::]:22 [::]: tcp LISTEN 0 70 [::]:33060 [::]:*
ip -s link show eth0
功能: 显示网卡eth0的详细统计信息 关键指标: RX/TX packets, bytes, errors, dropped
2: eth0: < BROADCAST,MULTICAST,UP,LOWER_UP > mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000 link/ether 52:54:00:2d:94:f2 brd ff:ff:ff:ff:ff:ff RX: bytes packets errors dropped overrun mcast 2131702375 12196965 0 0 0 0 TX: bytes packets errors dropped carrier collsns 1846399625 12185691 0 0 0 0
ping -c 4 -i 0.2 google.com
功能: 测试网络连通性和延迟 参数: -c 4(发送4个包) -i 0.2(间隔0.2秒)
深度网络性能分析
sar -n DEV 1 5
功能: 每秒监控网络设备,共5次采样 关键列: rxpck/s(接收包/秒), txpck/s(发送包/秒), rxkB/s, txkB/s
Average: IFACE rxpck/s txpck/s rxkB/s txkB/s rxcmp/s txcmp/s rxmcst/s %ifutil Average: eth0 156.80 123.40 89.45 67.23 0.00 0.00 0.20 0.89
ss -i
功能: 显示socket的内部TCP信息 关键指标: cwnd(拥塞窗口), rtt(往返时间), retrans(重传)
nstat -az | grep -E "(TcpRetrans|TcpExt)"
功能: 显示TCP重传和扩展统计 用途: 分析TCP性能和网络质量问题
iftop -P -n -N -i eth0
功能: 实时显示端口级别的流量统计 参数: -P(显示端口) -n(不解析主机名) -N(不解析端口名)
网络故障排查实战
tcpdump -i eth0 -c 100 -n tcp port 80
场景: 抓取HTTP流量进行分析 参数: -i 指定接口 -c 抓包数量 -n 不解析域名
ss -s
功能: 显示socket使用统计摘要 用途: 快速了解连接状态分布,发现异常连接
Total: 1024 (kernel 1536) TCP: 256 (estab:128, closed:64, orphaned:0, synrecv:0, timewait:32/0), ports:0 Transport Total IP IPv6 * 1536 - - RAW 2 1 1 UDP 8 6 2 TCP 256 200 56 INET 266 207 59 FRAG 0 0 0
netstat -i
功能: 显示网络接口错误统计 关键列: RX-ERR, TX-ERR, RX-DRP, TX-DRP, Flg
mtr --report --report-cycles 10 google.com
网络性能优化配置
echo 'net.core.rmem_max = 134217728' >> /etc/sysctl.conf
优化: 增大socket接收缓冲区最大值 场景: 高带宽、高延迟网络环境
echo 'net.ipv4.tcp_window_scaling = 1' >> /etc/sysctl.conf
优化: 启用TCP窗口缩放 效果: 支持更大的TCP窗口,提高长距离传输效率
tc qdisc add dev eth0 root handle 1: htb default 30
功能: 使用HTB(Hierarchical Token Bucket)进行流量控制 用途: 带宽限制、QoS保证
ethtool -G eth0 rx 4096 tx 4096
优化: 调整网卡环形缓冲区大小 效果: 减少丢包,提高高负载下的性能