性能·网络 / 命令文档

Linux网络性能指标

$ network 8 个章节 Linux 命令详解

概述

从理论到实践掌握Linux系统网络性能监控与优化

核心网络指标

带宽 (Bandwidth)

网络连接的最大数据传输速率,通常以Mbps或Gbps表示

延迟 (Latency)

数据包从源到目的地的传输时间,影响响应速度

吞吐量 (Throughput)

实际传输的数据量,通常小于理论带宽

丢包率 (Packet Loss)

传输过程中丢失的数据包百分比

并发连接数

同时活跃的网络连接数量

网络错误率

传输错误、重传等异常情况的统计

监控工具概览

netstat

显示网络连接、路由表、接口统计等基础信息

ss

现代化的socket统计工具,比netstat更快更强

iftop

实时显示网络接口流量,类似top命令

sar

系统活动报告,包含详细的网络统计数据

tcpdump

网络抓包分析工具,深度分析网络问题

nload

实时网络流量监控,图形化显示带宽使用

专家建议: 建议组合使用多种工具进行全面监控。日常监控用sar,问题排查用tcpdump,实时监控用iftop。

实战命令演练

基础监控 深度分析 故障排查 性能优化

基础网络状态监控

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

功能: 结合ping和traceroute的网络诊断 优势: 显示每跳的丢包率和延迟,定位网络瓶颈

网络性能优化配置

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

优化: 调整网卡环形缓冲区大小 效果: 减少丢包,提高高负载下的性能

性能优化检查清单: 1. 调整内核网络参数 (sysctl.conf) 2. 优化网卡驱动设置 (ethtool) 3. 配置适当的队列调度算法 4. 启用网络硬件加速功能 5. 监控并调整应用程序连接池

同分类 · 其他命令文档