-
Notifications
You must be signed in to change notification settings - Fork 48
Description
I am testing the sniffer connected to an Ubuntu server with 24 cores / 48 threads and 128GB of RAM, because I want to throw as much power at it as possible, to confirm it's not missing packets compared to what other single-channel sniffers like Sniffle see.
lscpu
Architecture: x86_64
CPU op-mode(s): 32-bit, 64-bit
Address sizes: 46 bits physical, 48 bits virtual
Byte Order: Little Endian
CPU(s): 48
On-line CPU(s) list: 0-47
Vendor ID: GenuineIntel
Model name: Intel(R) Xeon(R) CPU E5-2670 v3 @ 2.30GHz
CPU family: 6
Model: 63
Thread(s) per core: 2
Core(s) per socket: 12
Socket(s): 2
Stepping: 2
CPU max MHz: 3100.0000
CPU min MHz: 1200.0000
...
When I run sudo ./ice9-bluetooth -l -i bladerf0 -s -v -w danger_zone.pcap
the sniffer reports that it can't keep up
Channelizer too slow, use fewer channels
ch 39.6 Msamp/sec ( 41% realtime); agc 302.8 Msamp/sec (161% realtime)
Channelizer too slow, use fewer channels
ch 39.2 Msamp/sec ( 41% realtime); agc 299.5 Msamp/sec (159% realtime)
Channelizer too slow, use fewer channels
However, if I run sar -u 1
in parallel, I see that my CPUs are still always at least 77% idle. Here is an example of starting sar
and then starting ice9-bluetooth and then canceling ice9-bluetooth (the 100% idle is while it's not running.)
08:23:39 AM CPU %user %nice %system %iowait %steal %idle
08:23:40 AM all 0.00 0.00 0.00 0.00 0.00 100.00
08:23:41 AM all 0.00 0.00 0.00 0.00 0.00 100.00
08:23:42 AM all 0.00 0.00 0.00 0.00 0.00 100.00
08:23:43 AM all 0.10 0.00 0.15 0.00 0.00 99.75
08:23:44 AM all 0.15 0.00 0.23 0.00 0.00 99.62
08:23:45 AM all 14.20 0.00 2.15 0.00 0.00 83.64
08:23:46 AM all 19.19 0.00 1.80 0.00 0.00 79.01
08:23:47 AM all 16.22 0.00 2.23 0.00 0.00 81.55
08:23:48 AM all 18.91 0.00 1.83 0.00 0.00 79.26
08:23:49 AM all 18.49 0.00 2.81 0.02 0.00 78.68
08:23:50 AM all 17.12 0.00 2.54 0.00 0.00 80.35
08:23:51 AM all 20.74 0.00 1.93 0.02 0.00 77.31
08:23:52 AM all 20.43 0.00 1.52 0.00 0.00 78.05
08:23:53 AM all 18.79 0.00 2.12 0.00 0.00 79.09
08:23:54 AM all 18.72 0.00 1.34 0.00 0.00 79.94
08:23:55 AM all 18.63 0.00 1.91 0.00 0.00 79.46
08:23:56 AM all 19.22 0.00 1.73 0.00 0.00 79.06
08:23:57 AM all 20.45 0.00 1.74 0.00 0.00 77.82
08:23:58 AM all 20.51 0.00 2.20 0.00 0.00 77.29
08:23:59 AM all 20.54 0.00 2.04 0.00 0.00 77.42
08:24:00 AM all 19.41 0.00 2.23 0.00 0.00 78.36
08:24:01 AM all 21.06 0.00 1.74 0.02 0.00 77.18
08:24:02 AM all 20.14 0.00 1.89 0.00 0.00 77.97
08:24:03 AM all 17.42 0.00 2.20 0.02 0.00 80.35
08:24:04 AM all 0.13 0.00 0.00 0.00 0.00 99.87
08:24:05 AM all 0.00 0.00 0.27 0.00 0.00 99.73
08:24:06 AM all 0.00 0.00 0.00 0.00 0.00 100.00
08:24:07 AM all 0.00 0.00 0.00 0.00 0.00 100.00
08:24:08 AM all 0.00 0.00 0.00 0.00 0.00 100.00
So basically this issue is to track if there's anything else that can be done to test why it's not parallelizing as much as possible, and thus not able to keep up with the traffic.