在 Debian 上 dumpcap 占用高(CPU / 内存 / 磁盘 / 网络),通常不是 dumpcap 本身有 bug,而是抓包配置或使用方式不当。下面按常见原因逐一说明,并给出排查和解决办法。
dumpcap 是 Wireshark / tshark 的底层抓包进程,负责从网卡读取数据包。
如果它占用高,基本等于:抓的包太多 / 写得太快 / 过滤太晚。
any)表现
✅ 解决:
# 只抓特定网卡
dumpcap -i eth0
# 加过滤条件(在抓包阶段就过滤)
dumpcap -i eth0 -f "tcp port 443"
# 避免抓回环和所有接口
# 不要用 -i any(高负载服务器尤其危险)
如果一直写一个文件:
✅ 正确做法(推荐):
dumpcap -i eth0 -w /data/cap.pcap \
-b filesize:100000 \
-b files:20
表示:
很多人这样用:
tshark -i eth0
⚠️ tshark = dumpcap + 协议解析
✅ 建议:
dumpcap 在内核和用户态之间搬运数据:
✅ 增大 buffer:
dumpcap -i eth0 -B 16 # 16 MB
某些情况:
会导致:
✅ 检查:
mpstat -P ALL 1
cat /proc/interrupts
ethtool -S eth0 | grep -i drop
如果你用:
sudo dumpcap
同时又用 wireshark GUI
→ 两个 dumpcap 同时抓同一网卡
✅ 检查:
ps aux | grep dumpcap
# 1. 谁在跑
ps aux | grep dumpcap
# 2. CPU / IO
top
iotop
# 3. 抓包参数
cat /proc/<pid>/cmdline
# 4. 网络流量
iftop
nload
# 5. 丢包
dumpcap 输出里看 dropped
dumpcap -i eth0 \
-f "host 1.2.3.4 and tcp port 443" \
-B 16 \
-w /data/cap.pcap \
-b filesize:100000 \
-b files:10
你可以贴一下:
ps aux | grep dumpcap我可以帮你精准判断是哪一类问题。