Hello again, thanks for all,
I have partially resolved the massive flow from gigamon through the 4 spans and now it is at better, albeit high, levels.
tail -n20 /data/zeek/logs/current/capture_loss.log
1775571475.862498 900.000347 worker-1-3 767710 1704332 45.044627
1775571475.940897 900.000041 worker-1-1 760241 1687403 45.053908
1775571475.480382 900.001275 worker-3-1 151746 736781 20.595808
1775571475.386703 900.001676 worker-4-2 526689 723603 72.787012
1775571475.503528 900.000042 worker-3-2 179596 784620 22.889552
1775571475.806397 900.000038 worker-4-1 451037 649138 69.482452
1775572375.469437 900.000026 worker-2-2 10749 3465621 0.310161
1775572375.536061 900.000391 worker-2-1 11189 3017828 0.370763
1775572375.941246 900.000349 worker-1-1 797014 1758403 45.326015
1775572375.821387 900.000016 worker-1-5 771190 1780335 43.317129
1775572375.822714 900.000038 worker-1-2 837227 1911406 43.801631
1775572375.828865 900.000157 worker-1-4 700786 1643333 42.644187
1775572375.767111 900.000546 worker-1-7 689981 1612009 42.802553
1775572375.921164 900.000123 worker-1-8 694628 1567299 44.320069
1775572375.856049 900.000060 worker-1-6 676149 1519964 44.48454
1775572375.862603 900.000105 worker-1-3 743189 1737754 42.767216
1775572375.812418 900.006021 worker-4-1 442786 639100 69.282741
1775572375.480386 900.000004 worker-3-1 129748 777420 16.689563
1775572375.503630 900.000102 worker-3-2 153172 941941 16.261316
1775572375.391850 900.005147 worker-4-2 514047 697742 73.672934
I used to lose around 90%, now it’s around 40%. I changed the configuration to AF packet:
cat /usr/local/zeek/etc/node.cfg
logger
type=logger
host=localhost
pin_cpus=0
manager
type=manager
host=localhost
pin_cpus=1
proxy-1
type=proxy
host=localhost
pin_cpus=1
— INTERF 1 (8 workers) —
worker-1
type=worker
host=localhost
interface=af_packet::ens16f0
lb_method=custom
lb_procs=8
pin_cpus=2,3,4,5,6,7,8,9
af_packet_fanout_id=77
af_packet_fanout_mode=AF_Packet::FANOUT_HASH
af_packet_buffer_size=1073741824
— INTERF 2 (2 workers) —
worker-2
type=worker
host=localhost
interface=af_packet::ens16f1
lb_method=custom
lb_procs=2
pin_cpus=10,11
af_packet_fanout_id=20
af_packet_fanout_mode=AF_Packet::FANOUT_HASH
af_packet_buffer_size=134217728
— INTERF 3 (2 workers) —
worker-3
type=worker
host=localhost
interface=af_packet::ens16f2
lb_method=custom
lb_procs=2
pin_cpus=12,13
af_packet_fanout_id=30
af_packet_fanout_mode=AF_Packet::FANOUT_HASH
af_packet_buffer_size=134217728
— INTERF 4 (2 workers) —
worker-4
type=worker
host=localhost
interface=af_packet::ens16f3
lb_method=custom
lb_procs=2
pin_cpus=14,15
af_packet_fanout_id=40
af_packet_fanout_mode=AF_Packet::FANOUT_HASH
af_packet_buffer_size=134217728
my zeek conf:
zeek -V
{
“branch”: “release/7.0”,
“commit”: “f300ddb9fe018fe26209310e13ea2f7e4eb95702”,
“describe”: “v7.0.4”,
“dirty”: false,
“included_plugins”: [
{
“name”: “zeek-af_packet-plugin”,
“version”: “4.0.0”
}
],
“name”: “zeek”,
“source”: “repo-info.json”,
“submodules”: [
{
“commit”: “7c5ccc9aa91466004bc4a0dbbce11a239f3e742e”,
“describe”: “v1.8.0-19-g7c5ccc9”,
“dirty”: false,
“path”: “auxil/bifcl”,
“version”: “1.8.0-16”
},
{
“commit”: “a5c8f19fb49c60171622536fa6d369fa168f19e0”,
“describe”: “v0.61.0-31-ga5c8f19”,
“dirty”: false,
“path”: “auxil/binpac”,
“version”: “0.61.0-28”
},
{
“commit”: “a80bf420aa6f55b4eb959ae89c184522a096a119”,
“describe”: “v2.8.0-dev-96-ga80bf420”,
“dirty”: false,
“path”: “auxil/broker”,
“version”: “2.8.0-dev.97”
},
{
“commit”: “989c7513c3b6056a429a5d48dacdc9a2c1b216a7”,
“describe”: “v1.1-8-g989c751”,
“dirty”: false,
“path”: “auxil/btest”,
“version”: “1.1-8”
},
{
“commit”: “0ad09d251bf01cc2b7860950527e33e22cd64256”,
“describe”: “cares-1_26_0”,
“dirty”: false,
“path”: “auxil/c-ares”
},
{
“commit”: “72a76d774e4c7c605141fd6d11c33cc211209ed9”,
“describe”: “v1.1.2-405-g72a76d7”,
“dirty”: false,
“path”: “auxil/filesystem”
},
{
“commit”: “610cf8527dad7033b971595a1d556c2c95294f2b”,
“describe”: “heads/master”,
“dirty”: false,
“path”: “auxil/gen-zam”,
“version”: “1.0.0”
},
{
“commit”: “5ad3bf8444cfc663b11bf367baaa31f36e7ff7c8”,
“describe”: “5ad3bf8”,
“dirty”: false,
“path”: “auxil/highwayhash”
},
{
“commit”: “10d93cff9fd6c8d8c3e0bae58312aed470843ff8”,
“describe”: “v2.4.0-291-g10d93cf”,
“dirty”: false,
“path”: “auxil/libkqueue”
},
{
“commit”: “b38e9c8ebff08959a712a5663ba25e0624a3af00”,
“describe”: “heads/master”,
“dirty”: false,
“path”: “auxil/libunistd”
},
{
“commit”: “e7643a319d36fc32573cb99b363040342f9d8e03”,
“describe”: “v0.6-2-ge7643a3”,
“dirty”: false,
“path”: “auxil/netcontrol-connectors”,
“version”: “0.6”
},
{
“commit”: “ea379b2f35e28d6ee894e05ad4c26ed60a613d30”,
“describe”: “ea379b2”,
“dirty”: false,
“path”: “auxil/out_ptr”
},
{
“commit”: “bdc15fab95b1ca2bd370fa25d91f7879b5da35fc”,
“describe”: “v3.0.1-33-gbdc15fa”,
“dirty”: false,
“path”: “auxil/package-manager”,
“version”: “3.0.1-33”
},
{
“commit”: “45ce017874aac9ffabac0ddc4d016f1747804234”,
“describe”: “v0.6.0-11-g45ce017”,
“dirty”: false,
“path”: “auxil/paraglob”,
“version”: “0.6.0-8”
},
{
“commit”: “ad99e21f4706193670c42b36c9824dc997f4c475”,
“describe”: “ad99e21”,
“dirty”: false,
“path”: “auxil/prometheus-cpp”
},
{
“commit”: “6089180ecb704cb2b136777798fa1be303618975”,
“describe”: “v1.1.0-745-g6089180e”,
“dirty”: false,
“path”: “auxil/rapidjson”
},
{
“commit”: “31880e215ff6f85ad95507d7a760e81ae2e0999d”,
“describe”: “v1.11.3”,
“dirty”: false,
“path”: “auxil/spicy”,
“version”: “1.11.3”
},
{
“commit”: “66b4b34d99ab272fcf21f2bd12b616e371c6bb31”,
“describe”: “2022.02.02-5950-g66b4b34d9”,
“dirty”: false,
“path”: “auxil/vcpkg”
},
{
“commit”: “a3fe59b3f1ded5c3461995134b66c6db182fa56f”,
“describe”: “4.0.0-24-ga3fe59b”,
“dirty”: false,
“path”: “auxil/zeek-af_packet-plugin”,
“version”: “4.0.0”
},
{
“commit”: “e850412ab5dea10ee2ebb98e42527d80fcf9a7ed”,
“describe”: “v0.50-140-ge850412”,
“dirty”: false,
“path”: “auxil/zeek-aux”,
“version”: “0.50-137”
},
{
“commit”: “5bcc14085178ed4ddfa9ad972b441c36e8bc0787”,
“describe”: “v1.3.1-21-g5bcc140”,
“dirty”: false,
“path”: “auxil/zeek-client”,
“version”: “1.3.1-21”
},
{
“commit”: “39c0ee1e1742bb28dff57632ee4620f905b892e7”,
“describe”: “v2.5.0-53-g39c0ee1”,
“dirty”: false,
“path”: “auxil/zeekctl”,
“version”: “2.5.0-49”
},
{
“commit”: “d5bae4c4d29e3c5e87d54f94d7a9b3f86ae856a8”,
“describe”: “v0.13.2”,
“dirty”: false,
“path”: “auxil/zeekjs”,
“version”: “0.13.2”
},
{
“commit”: “2d42baf8e63a7494224aa9d02afa2cb43ddb96b8”,
“describe”: “release-338-g2d42baf”,
“dirty”: false,
“path”: “cmake”
},
{
“commit”: “cafe6ac085091ad36bca74c8fc18ff6c1f4cf9fd”,
“describe”: “v7.0.4”,
“dirty”: false,
“path”: “doc”
},
{
“commit”: “96caa6a59023eafae8a94a7b906a4436ebb57d29”,
“describe”: “release-100-g96caa6a”,
“dirty”: false,
“path”: “src/3rdparty”
}
],
“version”: “7.0.4”,
“zkg”: {
“provides”: [
{
“name”: “zeek-af_packet-plugin”,
“version”: “4.0.0”
},
{
“name”: “spicy-plugin”,
“version”: “7.0.4”
}
]
and the status:
zeekctl status
Warning: zeekctl config has changed (run the zeekctl “deploy” command)
Name Type Host Status Pid Started
logger logger localhost running 4072286 07 Apr 00:01:47
manager manager localhost running 4072352 07 Apr 00:01:50
proxy-1 proxy localhost running 4072405 07 Apr 00:01:52
worker-1-1 worker localhost running 4072642 07 Apr 00:01:53
worker-1-2 worker localhost running 4072645 07 Apr 00:01:53
worker-1-3 worker localhost running 4072658 07 Apr 00:01:53
worker-1-4 worker localhost running 4072639 07 Apr 00:01:53
worker-1-5 worker localhost running 4072643 07 Apr 00:01:53
worker-1-6 worker localhost running 4072627 07 Apr 00:01:53
worker-1-7 worker localhost running 4072638 07 Apr 00:01:53
worker-1-8 worker localhost running 4072664 07 Apr 00:01:53
worker-2-1 worker localhost running 4072661 07 Apr 00:01:53
worker-2-2 worker localhost running 4072663 07 Apr 00:01:53
worker-3-1 worker localhost running 4072651 07 Apr 00:01:53
worker-3-2 worker localhost running 4072662 07 Apr 00:01:53
worker-4-1 worker localhost running 4072657 07 Apr 00:01:53
worker-4-2 worker localhost running 4072665 07 Apr 00:01:53
eekctl top
Warning: zeekctl config has changed (run the zeekctl “deploy” command)
Name Type Host Pid VSize Rss Cpu Cmd
logger logger localhost 4072286 5G 287M 55% zeek
manager manager localhost 4072352 1G 252M 5% zeek
proxy-1 proxy localhost 4072405 1G 264M 27% zeek
worker-1-1 worker localhost <unexpected top output: could not convert string to float: ‘4,1g’>
worker-1-2 worker localhost <unexpected top output: could not convert string to float: ‘4,1g’>
worker-1-3 worker localhost <unexpected top output: could not convert string to float: ‘4,2g’>
worker-1-4 worker localhost <unexpected top output: could not convert string to float: ‘4,2g’>
worker-1-5 worker localhost <unexpected top output: could not convert string to float: ‘4,4g’>
worker-1-6 worker localhost <unexpected top output: could not convert string to float: ‘4,2g’>
worker-1-7 worker localhost <unexpected top output: could not convert string to float: ‘4,2g’>
worker-1-8 worker localhost <unexpected top output: could not convert string to float: ‘4,2g’>
worker-2-1 worker localhost 4072661 1G 628M 38% zeek
worker-2-2 worker localhost 4072663 1G 645M 72% zeek
worker-3-1 worker localhost <unexpected top output: could not convert string to float: ‘5,4g’>
worker-3-2 worker localhost <unexpected top output: could not convert string to float: ‘5,3g’>
worker-4-1 worker localhost <unexpected top output: could not convert string to float: ‘6,7g’>
worker-4-2 worker localhost <unexpected top output: could not convert string to float: ‘7,2g’>
hardware specifications:
lscpu | grep ‘^CPU(s):’ && free -h | grep ‘^Mem:’
CPU(s): 16
Mem: 118Gi 66Gi 7.5Gi 1.0Mi 45Gi 51Gi
drop packets:
for i in /sys/class/net/ens16f*; do iface=$(basename $i); echo -n "$iface: "; ip -s link show $iface | awk ‘/RX:/ {getline; rx=$1; getline; drop=$3; printf “RX: %.2f TB | Drops: %s\n”, rx/1024/1024/1024/1024, drop}’; done
ens16f0: RX: 66.10 TB | Drops: packets
ens16f1: RX: 270.27 TB | Drops: packets
ens16f2: RX: 379.25 TB | Drops: packets
ens16f3: RX: 347.24 TB | Drops: packets
for i in /sys/class/net/ens16f*; do iface=$(basename i); model=(lspci | grep -i "$(ethtool -i $iface | awk '/bus-info/ {print 2}' | cut -d: -f2-)" | cut -d: -f3- | sed 's/^ //'); speed=(ethtool $iface | awk '/Speed:/ {print 2}'); stats=(ip -s link show $iface | awk ‘/RX:/ {getline; rx=$1; getline; drop=$3; printf “RX: %.2f TB | Drops: %s”, rx/1024/1024/1024/1024, drop}’); echo -e “Interface: $iface\n Model: $model\n Speed: $speed\n Traffic: $stats\n”; done
Interface: ens16f0
Model: Intel Corporation I350 Gigabit Network Connection (rev 01)
Speed: 1000Mb/s
Traffic: RX: 66.10 TB | Drops: packets
Interface: ens16f1
Model: Intel Corporation I350 Gigabit Network Connection (rev 01)
Speed: 1000Mb/s
Traffic: RX: 270.27 TB | Drops: packets
Interface: ens16f2
Model: Intel Corporation I350 Gigabit Network Connection (rev 01)
Speed: 1000Mb/s
Traffic: RX: 379.25 TB | Drops: packets
Interface: ens16f3
Model: Intel Corporation I350 Gigabit Network Connection (rev 01)
Speed: 1000Mb/s
Traffic: RX: 347.25 TB | Drops: packets
I’m thinking of switching to the free version of pfring to see if it improves the loss rate.