我正在使用 tcpreplay 命令运行一个 1G 大小的 pcap 文件来检查是否存在恶意流量。尽管系统有足够的核心和 RAM,但命令大约需要 5 个多小时。
系统内存:16G 核心:8
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1538 root 20 0 11980 2576 1848 R 100.0 0.0 340:14.65 tcpreplay
4235 root 20 0 41940 3844 3092 R 0.3 0.0 0:05.50 top
32459 root 20 0 0 0 0 I 0.3 0.0 0:00.69 kworker/6:1
root@test-vm:~# pidof tcpreplay |xargs -I{} ps -p {} -o etime,cmd
ELAPSED CMD
05:36:45 /usr/local/bin/tcpreplay -q -p 100 --cachefile=cachefile3 --intf1=ens225 --intf2=ens193 out3.pcap
我可以提供 1000 pps。增加 pps 有时不会产生正确的结果。所以我喜欢坚持使用 100pps。
有什么方法可以减少执行时间吗?我们可以让 tcpreplay 在多核中运行吗?
答案1
你运行的是哪个版本的 Tcpreplay?版本 4.3.1 修复了--pps选项,确保所选费率适用于各种值。除非您可以使用--mbps根据数据速率控制速度的选项。该选项在 4.0 及更高版本中运行可靠。
我建议尝试Tcpreplay 最新版本。