Appearance
Appearance
Wireshark 的性能问题通常出现在两个场景:打开和分析大型抓包文件很慢,或者正在抓包时出现 packet drops。
处理性能问题时,先判断是“离线分析慢”还是“现场捕获丢包”,两者的优化方向不同。
大型抓包文件会增加磁盘读取、协议解析、显示过滤、着色规则和界面渲染的压力。超过 100 MB 的文件在部分机器上就可能明显变慢。
| 动作 | 作用 |
|---|---|
| 关闭 Coloring Rules | 减少每个数据包的着色匹配开销 |
| 关闭 Name Resolution | 避免 DNS、传输层名称解析带来的等待 |
| 减少不必要的协议重组 | 降低内存和解析成本 |
| 使用更具体的显示过滤器 | 缩小当前关注范围 |
| 必要时切分抓包文件 | 降低单次加载的数据量 |
常见候选首选项:
IP/Reassembled fragmented IP datagramsTCP/Allow subdissectors to reassemble TCP streams关闭这些选项可能提升性能,但也可能影响某些协议的正确解析。修改前后应对比同一过滤条件下的数据包数量和解析结果。
磁盘读取 -> 协议解析 -> 显示过滤 / 着色规则 -> 界面显示如果以上优化仍无效,通常需要更多内存、更快 CPU 或更合理的文件拆分方式。协议解析主要是单任务处理,多核 CPU 不一定能线性提升单个文件的解析速度。
抓包完成后,Wireshark 状态栏或统计信息提示有 packet drops。这表示并非所有到达网卡的数据包都被成功保存到抓包文件中。
机器处理传入数据包的速度跟不上链路上的包速率,导致内核、驱动、抓包库或写盘环节丢包。
| 动作 | 作用 |
|---|---|
| 关闭其他占用资源的程序 | 降低 CPU、内存和磁盘压力 |
| 用 dumpcap/tcpdump 专门抓包 | 减少 GUI 处理开销 |
| 增大 capture buffer | 提高短时间突发流量承受能力 |
| 关闭实时更新数据包列表 | 减少界面刷新开销 |
| 使用更快磁盘或本地磁盘 | 降低写入瓶颈 |
| 合理设置 snap length | 减少每个数据包保存大小 |
网卡 -> libpcap/Npcap -> 抓包工具 -> 磁盘其中可能的瓶颈包括:网卡驱动、内核抓包缓冲区、libpcap/Npcap、抓包工具本身和磁盘写入速度。
抓包过滤器会增加匹配成本,但如果它能在写入前丢弃大量无关数据,整体上可能反而降低压力。在支持内核级 BPF/JIT 的系统上,过滤开销通常更低。
使用原则:
Imported from https://wiki.wireshark.org/Performance on 2020-08-11 23:17:53 UTC