Skip to content

Not using all available CPU resources on Ubuntu #32

@XenoKovah

Description

@XenoKovah

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions