网络瓶颈通常表现为带宽过载、高延迟、丢包率高、连接数过多等问题,需通过监控这些指标定位根源(如某主机、进程、协议占用过多资源)。
Linux下有多种Sniffer工具,可根据需求选择:
iftop(主机间带宽)、nload(接口流量图表)、nethogs(进程级带宽)、tcpdump(原始数据包捕获);Wireshark(深度分析)、EtherApe(图形化拓扑)。sudo iftop -i eth0(eth0为目标网卡)启动,界面左侧显示源主机、右侧显示目标主机,中间箭头表示传输方向,数值为当前速率。按P键切换显示端口号,按S/D聚焦源/目标地址,快速识别占用带宽高的主机或连接。sudo nload eth0,以图表形式展示入站(Incoming)和出站(Outgoing)流量,包含当前速率、平均速率、最大速率及总流量,界面简洁适合持续监控。sudo nethogs eth0按进程查看带宽占用,主界面显示进程PID、用户、下行/上行速度及总传输量,直接定位高消耗应用(如某进程占用大量上传带宽)。sudo tcpdump -i eth0 -w capture.pcap捕获网卡eth0的流量并保存为capture.pcap文件(-w表示写入文件)。通过tcpdump -r capture.pcap读取文件,结合过滤条件(如tcp.port == 80过滤HTTP流量、ip.addr == 192.168.1.100过滤特定IP)缩小范围,分析异常数据包(如大量SYN包可能为SYN Flood攻击、大量小包可能为应用层协议问题)。capture.pcap文件,通过“统计”菜单查看“流量概况”(识别总流量、各协议占比)、“会话”(查看主机间通信量)、“IO Graphs”(流量趋势),或通过“专家信息”(Analyze→Expert Info)查看警告(如重传、丢包),深度分析瓶颈原因(如某协议占用过多带宽、某主机频繁重传)。ping命令(ping 目标IP)监控目标主机的延迟(time值),traceroute(traceroute 目标IP)查看路径中的跳数及每跳延迟,识别网络路径中的瓶颈(如某跳延迟高)。ss -s(socket统计)查看当前连接数(如Total: 1234 (kernel 0)),netstat -antp(查看TCP连接)查看活跃连接(如大量TIME_WAIT状态连接可能为应用未正确关闭连接),确认是否因连接数过多导致资源耗尽。top/htop查看CPU、内存占用(如sniffer工具本身占用过高可能影响捕获效率),vmstat 1(每秒刷新)查看系统级资源使用(如si/so值高表示磁盘IO瓶颈,可能影响网络数据处理)。tcpdump丢包),可调整内核参数(如net.core.rmem_max、net.core.wmem_max)增大接收/发送缓冲区,提升抓包效率。tc工具限速)、升级带宽;net.ipv4.tcp_window_scaling);kill -9 PID)、优化应用配置(如调整数据库连接池大小)。