open server - HP G9 dl360
let me give you some more background:
initially i configured auto mq, but it balance 8 cores (max supported by nics) to all nics combined. and i have huge cpu utilization, so i wanted to understand which nic is causing most of it, so i seperated cores per interfaces, until i found eth5 is causing it.
working with TAC we discovered that vpn is causing most of the cpu utilization, when removing vpn and letting traffic go unencrypted cores was at 95% idle. when vpn was enabled they was like 5-40% idle. after upgarding to ongoing take 150 and changing encryption algoritm it's better but still not so much. i didn't think vpn is related at first because eth5 is facing the local lan, and eth4 facing the peer vpn gw. but it seems that snd's of eth5 are doing also the encryption work. or they affected by it some how.
here are the outputs your requeted:
[Expert@:0]# ethtool -i eth5
driver: igb
version: 5.3.5.20
firmware-version: 1.70, 0x80000f44, 1.2028.0
expansion-rom-version:
bus-info: 0000:04:00.1
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no
posting again updated ethtool -S :
[Expert@:0]# ethtool -S eth5
NIC statistics:
rx_packets: 4964018578
tx_packets: 2248161359
rx_bytes: 6930159736278
tx_bytes: 472471347313
rx_broadcast: 5515000
tx_broadcast: 47680
rx_multicast: 241
tx_multicast: 0
multicast: 241
collisions: 0
rx_crc_errors: 0
rx_no_buffer_count: 0
rx_missed_errors: 0
tx_aborted_errors: 0
tx_carrier_errors: 0
tx_window_errors: 0
tx_abort_late_coll: 0
tx_deferred_ok: 0
tx_single_coll_ok: 0
tx_multi_coll_ok: 0
tx_timeout_count: 0
rx_long_length_errors: 0
rx_short_length_errors: 0
rx_align_errors: 0
tx_tcp_seg_good: 0
tx_tcp_seg_failed: 0
rx_flow_control_xon: 0
rx_flow_control_xoff: 0
tx_flow_control_xon: 0
tx_flow_control_xoff: 0
rx_long_byte_count: 6930159736278
tx_dma_out_of_sync: 0
lro_aggregated: 0
lro_flushed: 0
tx_smbus: 0
rx_smbus: 0
dropped_smbus: 0
os2bmc_rx_by_bmc: 0
os2bmc_tx_by_bmc: 0
os2bmc_tx_by_host: 0
os2bmc_rx_by_host: 0
tx_hwtstamp_timeouts: 0
rx_hwtstamp_cleared: 0
rx_errors: 0
tx_errors: 0
tx_dropped: 0
rx_length_errors: 0
rx_over_errors: 0
rx_frame_errors: 0
rx_fifo_errors: 9145
tx_fifo_errors: 0
tx_heartbeat_errors: 0
tx_queue_0_packets: 738644974
tx_queue_0_bytes: 161876078815
tx_queue_0_restart: 42049
tx_queue_1_packets: 691795
tx_queue_1_bytes: 81135487
tx_queue_1_restart: 0
tx_queue_2_packets: 1504911959
tx_queue_2_bytes: 288430955930
tx_queue_2_restart: 510681
tx_queue_3_packets: 555859
tx_queue_3_bytes: 78171677
tx_queue_3_restart: 0
tx_queue_4_packets: 2490259
tx_queue_4_bytes: 2495498088
tx_queue_4_restart: 0
tx_queue_5_packets: 440930
tx_queue_5_bytes: 60110650
tx_queue_5_restart: 0
tx_queue_6_packets: 28210
tx_queue_6_bytes: 4076532
tx_queue_6_restart: 0
tx_queue_7_packets: 2622
tx_queue_7_bytes: 1356208
tx_queue_7_restart: 0
rx_queue_0_packets: 390728994
rx_queue_0_bytes: 516183302822
rx_queue_0_drops: 303
rx_queue_0_csum_err: 0
rx_queue_0_alloc_failed: 0
rx_queue_1_packets: 594522390
rx_queue_1_bytes: 825697479777
rx_queue_1_drops: 2115
rx_queue_1_csum_err: 0
rx_queue_1_alloc_failed: 0
rx_queue_2_packets: 607234731
rx_queue_2_bytes: 851926240989
rx_queue_2_drops: 99
rx_queue_2_csum_err: 0
rx_queue_2_alloc_failed: 0
rx_queue_3_packets: 804427571
rx_queue_3_bytes: 1138657768456
rx_queue_3_drops: 2634
rx_queue_3_csum_err: 0
rx_queue_3_alloc_failed: 0
rx_queue_4_packets: 883199019
rx_queue_4_bytes: 1236082372690
rx_queue_4_drops: 1798
rx_queue_4_csum_err: 0
rx_queue_4_alloc_failed: 0
rx_queue_5_packets: 812398978
rx_queue_5_bytes: 1146114511637
rx_queue_5_drops: 1229
rx_queue_5_csum_err: 0
rx_queue_5_alloc_failed: 0
rx_queue_6_packets: 511234866
rx_queue_6_bytes: 704483327773
rx_queue_6_drops: 592
rx_queue_6_csum_err: 0
rx_queue_6_alloc_failed: 0
rx_queue_7_packets: 359382343
rx_queue_7_bytes: 489991856392
rx_queue_7_drops: 107
rx_queue_7_csum_err: 0
rx_queue_7_alloc_failed: 0
[Expert@:0]# mq_mng -o -v
Total 16 cores. Multiqueue 14 cores: 0,8,1,9,2,10,3,11,4,12,5,13,6,14
i/f type state mode cores
------------------------------------------------------------------------------------------------
eth4 igb Up Manual (6/6) 0(94),1(101),2(105),3(106),4(1
07),5(108)
eth5 igb Up Manual (8/8) 6(96),8(102),9(109),10(110),11
(111),12(112),13(113),14(114)
eth6 igb Up Manual (6/6) 0(98),1(103),2(115),3(116),4(1
17),5(118)
eth7 igb Up Manual (6/6) 0(100),1(104),2(119),3(120),4(
121),5(122)
core interfaces queue irq rx packets tx packets
------------------------------------------------------------------------------------------------
0 eth7 eth7-TxRx-0 100 330909 163420
eth6 eth6-TxRx-0 98 61509682 110784055
eth4 eth4-TxRx-0 94 852416352 983677832
1 eth7 eth7-TxRx-1 104 442589 448258
eth6 eth6-TxRx-1 103 54020929 9
eth4 eth4-TxRx-1 101 930887 987425974
2 eth7 eth7-TxRx-2 119 265478 138919
eth6 eth6-TxRx-2 115 145991072 166638954
eth4 eth4-TxRx-2 105 1714115580 753778613
3 eth7 eth7-TxRx-3 120 447326 240353
eth6 eth6-TxRx-3 116 122485504 5
eth4 eth4-TxRx-3 106 745493 920895922
4 eth7 eth7-TxRx-4 121 100454 430922
eth6 eth6-TxRx-4 117 85561230 9
eth4 eth4-TxRx-4 107 1226037 964544196
5 eth7 eth7-TxRx-5 122 170053 185712
eth6 eth6-TxRx-5 118 56023660 28
eth4 eth4-TxRx-5 108 627845 883814781
6 eth5 eth5-TxRx-0 96 391544257 738646606
8 eth5 eth5-TxRx-1 102 596438493 693538
9 eth5 eth5-TxRx-2 109 607669561 1512735496
10 eth5 eth5-TxRx-3 110 807574510 557285
11 eth5 eth5-TxRx-4 111 886419689 2492481
12 eth5 eth5-TxRx-5 112 815035662 442178
13 eth5 eth5-TxRx-6 113 513408486 28301
14 eth5 eth5-TxRx-7 114 360884778 2622
also here is top from some random capture:
%Cpu0 : 0.0 us, 1.0 sy, 0.0 ni, 97.0 id, 0.0 wa, 0.0 hi, 2.0 si, 0.0 st
%Cpu1 : 0.0 us, 1.0 sy, 0.0 ni, 97.1 id, 0.0 wa, 1.0 hi, 1.0 si, 0.0 st
%Cpu2 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
%Cpu3 : 0.0 us, 0.0 sy, 0.0 ni, 99.0 id, 0.0 wa, 0.0 hi, 1.0 si, 0.0 st
%Cpu4 : 0.0 us, 0.0 sy, 0.0 ni, 98.0 id, 0.0 wa, 0.0 hi, 2.0 si, 0.0 st
%Cpu5 : 0.0 us, 1.0 sy, 0.0 ni, 97.0 id, 0.0 wa, 1.0 hi, 1.0 si, 0.0 st
%Cpu6 : 0.0 us, 12.6 sy, 0.0 ni, 32.2 id, 0.0 wa, 0.0 hi, 55.2 si, 0.0 st
%Cpu7 : 1.0 us, 4.0 sy, 0.0 ni, 94.0 id, 0.0 wa, 1.0 hi, 0.0 si, 0.0 st
%Cpu8 : 0.0 us, 0.0 sy, 0.0 ni, 53.3 id, 0.0 wa, 0.0 hi, 46.7 si, 0.0 st
%Cpu9 : 0.0 us, 1.3 sy, 0.0 ni, 41.0 id, 0.0 wa, 0.0 hi, 57.7 si, 0.0 st
%Cpu10 : 0.0 us, 0.0 sy, 0.0 ni, 42.7 id, 0.0 wa, 0.0 hi, 57.3 si, 0.0 st
%Cpu11 : 0.0 us, 0.0 sy, 0.0 ni, 36.2 id, 0.0 wa, 1.2 hi, 62.5 si, 0.0 st
%Cpu12 : 0.0 us, 33.3 sy, 0.0 ni, 21.1 id, 0.0 wa, 0.0 hi, 45.6 si, 0.0 st
%Cpu13 : 0.0 us, 7.7 sy, 0.0 ni, 23.1 id, 0.0 wa, 0.0 hi, 69.2 si, 0.0 st
%Cpu14 : 0.0 us, 19.8 sy, 0.0 ni, 30.2 id, 0.0 wa, 0.0 hi, 50.0 si, 0.0 st
%Cpu15 : 1.0 us, 4.0 sy, 0.0 ni, 92.9 id, 0.0 wa, 1.0 hi, 1.0 si, 0.0 st
KiB Mem : 65193124 total, 47614248 free, 6902084 used, 10676792 buff/cache
KiB Swap: 33551748 total, 33551748 free, 0 used. 57282704 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ P COMMAND
102 admin 20 0 0 0 0 R 58.4 0.0 170:33.76 13 ksoftirqd/13
88 admin 20 0 0 0 0 R 46.5 0.0 396:23.62 11 ksoftirqd/11
81 admin 20 0 0 0 0 R 39.6 0.0 324:49.96 10 ksoftirqd/10
95 admin 20 0 0 0 0 R 38.6 0.0 254:35.82 12 ksoftirqd/12
53 admin 20 0 0 0 0 R 35.6 0.0 131:12.51 6 ksoftirqd/6
74 admin 20 0 0 0 0 R 34.7 0.0 206:23.04 9 ksoftirqd/9
109 admin 20 0 0 0 0 R 33.7 0.0 83:29.70 14 ksoftirqd/14
67 admin 20 0 0 0 0 R 11.9 0.0 141:55.80 8 ksoftirqd/8
12136 admin 20 0 0 0 0 R 5.9 0.0 11:40.47 6 snd
12144 admin 20 0 0 0 0 S 5.9 0.0 21:48.59 14 snd
10199 admin 20 0 0 0 0 S 3.0 0.0 105:56.14 15 fw_worker_0
10200 admin 20 0 0 0 0 R 3.0 0.0 62:30.12 7 fw_worker_1
12143 admin 20 0 0 0 0 S 2.0 0.0 16:33.75 13 snd
99 admin 20 0 0 0 0 S 1.0 0.0 0:00.61 7 rcuos/12
159 admin 20 0 0 0 0 S 1.0 0.0 1:13.72 6 kworker/6:1
162 admin 20 0 0 0 0 S 1.0 0.0 0:48.71 9 kworker/9:1
163 admin 20 0 0 0 0 S 1.0 0.0 1:27.20 10 kworker/10:1
2596 admin 20 0 0 0 0 S 1.0 0.0 0:41.58 14 kworker/14:3
here is a perf top -c on each snd cores related to this nic
49.46% [kernel] [k] intel_pmu_handle_irq
16.80% [kernel] [k] native_write_msr_safe
14.47% [kernel] [k] native_apic_msr_write
8.06% [kernel] [k] __kprobes_text_start
3.70% [kernel] [k] nmi
2.71% [kernel] [k] trigger_load_balance
1.72% [kernel] [k] perf_event_task_tick
1.59% [kernel] [k] idle_cpu
0.54% [kernel] [k] scheduler_tick
0.29% [kernel] [k] perf_pmu_enable
0.23% [kernel] [k] x86_pmu_enable
0.21% [kernel] [k] raise_softirq
0.12% [kernel] [k] intel_bts_enable_local
0.04% [kernel] [k] ctx_resched
0.03% [kernel] [k] __perf_event_enable
0.01% [kernel] [k] event_function
0.01% [kernel] [k] perf_ctx_unlock
0.01% [kernel] [k] flush_smp_call_function_queue
0.00% [kernel] [k] remote_function
0.00% [kernel] [k] irq_work_run
and perf top on snd cores related to wan link
77.65% [kernel] [k] perf_pmu_sched_task
16.41% [kernel] [k] x86_pmu_enable
3.18% [kernel] [k] perf_ctx_unlock
1.94% [kernel] [k] scheduler_tick
0.51% [kernel] [k] perf_event_task_tick
0.32% [kernel] [k] trigger_load_balance
[Expert@:0]# ^C
i also put here statistics and info about the wan interface:
[Expert@FWDRPMATE:0]# ethtool -i eth4
driver: igb
version: 5.3.5.20
firmware-version: 1.70, 0x80000f44, 1.2028.0
expansion-rom-version:
bus-info: 0000:04:00.0
supports-statistics: yes
supports-test: yes
supports-eeprom-access: yes
supports-register-dump: yes
supports-priv-flags: no
[Expert@FWDRPMATE:0]# ethtool -S eth4
NIC statistics:
rx_packets: 3024706563
tx_packets: 6331976966
rx_bytes: 789286747698
tx_bytes: 9300475868971
rx_broadcast: 1
tx_broadcast: 351
rx_multicast: 0
tx_multicast: 751
multicast: 0
collisions: 0
rx_crc_errors: 0
rx_no_buffer_count: 0
rx_missed_errors: 0
tx_aborted_errors: 0
tx_carrier_errors: 0
tx_window_errors: 0
tx_abort_late_coll: 0
tx_deferred_ok: 0
tx_single_coll_ok: 0
tx_multi_coll_ok: 0
tx_timeout_count: 1
rx_long_length_errors: 0
rx_short_length_errors: 0
rx_align_errors: 0
tx_tcp_seg_good: 0
tx_tcp_seg_failed: 0
rx_flow_control_xon: 0
rx_flow_control_xoff: 0
tx_flow_control_xon: 0
tx_flow_control_xoff: 0
rx_long_byte_count: 789286747698
tx_dma_out_of_sync: 0
lro_aggregated: 0
lro_flushed: 0
tx_smbus: 0
rx_smbus: 0
dropped_smbus: 0
os2bmc_rx_by_bmc: 0
os2bmc_tx_by_bmc: 0
os2bmc_tx_by_host: 0
os2bmc_rx_by_host: 0
tx_hwtstamp_timeouts: 0
rx_hwtstamp_cleared: 0
rx_errors: 0
tx_errors: 0
tx_dropped: 0
rx_length_errors: 0
rx_over_errors: 0
rx_frame_errors: 0
rx_fifo_errors: 184166
tx_fifo_errors: 0
tx_heartbeat_errors: 0
tx_queue_0_packets: 1140407572
tx_queue_0_bytes: 1618048127881
tx_queue_0_restart: 19574
tx_queue_1_packets: 1157649682
tx_queue_1_bytes: 1692427247932
tx_queue_1_restart: 10527
tx_queue_2_packets: 810060850
tx_queue_2_bytes: 1190384132595
tx_queue_2_restart: 126
tx_queue_3_packets: 1076756729
tx_queue_3_bytes: 1606619311065
tx_queue_3_restart: 7839
tx_queue_4_packets: 1126786549
tx_queue_4_bytes: 1661535812825
tx_queue_4_restart: 22133
tx_queue_5_packets: 1019443857
tx_queue_5_bytes: 1504911051092
tx_queue_5_restart: 8927
rx_queue_0_packets: 852523761
rx_queue_0_bytes: 229485827889
rx_queue_0_drops: 2776
rx_queue_0_csum_err: 0
rx_queue_0_alloc_failed: 0
rx_queue_1_packets: 1060558
rx_queue_1_bytes: 266814990
rx_queue_1_drops: 0
rx_queue_1_csum_err: 0
rx_queue_1_alloc_failed: 0
rx_queue_2_packets: 2167570424
rx_queue_2_bytes: 546087756117
rx_queue_2_drops: 181390
rx_queue_2_csum_err: 0
rx_queue_2_alloc_failed: 0
rx_queue_3_packets: 849165
rx_queue_3_bytes: 212643338
rx_queue_3_drops: 0
rx_queue_3_csum_err: 0
rx_queue_3_alloc_failed: 0
rx_queue_4_packets: 1401896
rx_queue_4_bytes: 610824371
rx_queue_4_drops: 0
rx_queue_4_csum_err: 0
rx_queue_4_alloc_failed: 0
rx_queue_5_packets: 715849
rx_queue_5_bytes: 240438500
rx_queue_5_drops: 0
rx_queue_5_csum_err: 0
rx_queue_5_alloc_failed: 0
about XMT FAILED errors we are seeing in fw ctl zdebug, actually it seems like rx drops and not tx drops. because i can see the direction coming from eth5(lan) to eth4(wan) are dropped and the line shows the core that is the snd of eth5 (receiver).
also i can see reversed packets from the wan to the lan that are dropped at the snd of the wan (received side). and also those cores seems to get high peaks frequently.
about the jumbo frames, i checked, and the bb switch in the lan comes before the fw, not forwarding packets larger than regular mtu, if i try to ping with greater size with df, it send itself the frag needed. also the lan fw before this fw, don't accept larger mtu.
by the way couple of years ago i increased those Nics buffer to 1024 (from 512+-) because i have lots rxdrops and increasing snd's wasn't enough.
another weird thing, the fw and the other end that received the same throughput and same pps from this gw, and decrypt them and forward them, doesn't have any cpu utilization. also i have checked with another gw that encrypts 550mbps and 50k pps, have only 1 snd for all interfaces, not mq, and use only 10-15% utilization on one core. all fws same hardware basically. which makes me think something is specifically wrong with this server, and it's not legitimate resources per the work it's doing. i thought maybe HT enabled in bios, but from linux commands it seems that it's not.