Closed desbma closed 6 years ago
Please provide the output of:
As requested:
lstopo:
$ lstopo --of console
Machine (252GB total)
NUMANode L#0 (P#0 63GB)
Package L#0 + L3 L#0 (35MB)
L2 L#0 (256KB) + L1d L#0 (32KB) + L1i L#0 (32KB) + Core L#0
PU L#0 (P#0)
PU L#1 (P#56)
L2 L#1 (256KB) + L1d L#1 (32KB) + L1i L#1 (32KB) + Core L#1
PU L#2 (P#4)
PU L#3 (P#60)
L2 L#2 (256KB) + L1d L#2 (32KB) + L1i L#2 (32KB) + Core L#2
PU L#4 (P#8)
PU L#5 (P#64)
L2 L#3 (256KB) + L1d L#3 (32KB) + L1i L#3 (32KB) + Core L#3
PU L#6 (P#12)
PU L#7 (P#68)
L2 L#4 (256KB) + L1d L#4 (32KB) + L1i L#4 (32KB) + Core L#4
PU L#8 (P#16)
PU L#9 (P#72)
L2 L#5 (256KB) + L1d L#5 (32KB) + L1i L#5 (32KB) + Core L#5
PU L#10 (P#20)
PU L#11 (P#76)
L2 L#6 (256KB) + L1d L#6 (32KB) + L1i L#6 (32KB) + Core L#6
PU L#12 (P#24)
PU L#13 (P#80)
L2 L#7 (256KB) + L1d L#7 (32KB) + L1i L#7 (32KB) + Core L#7
PU L#14 (P#28)
PU L#15 (P#84)
L2 L#8 (256KB) + L1d L#8 (32KB) + L1i L#8 (32KB) + Core L#8
PU L#16 (P#32)
PU L#17 (P#88)
L2 L#9 (256KB) + L1d L#9 (32KB) + L1i L#9 (32KB) + Core L#9
PU L#18 (P#36)
PU L#19 (P#92)
L2 L#10 (256KB) + L1d L#10 (32KB) + L1i L#10 (32KB) + Core L#10
PU L#20 (P#40)
PU L#21 (P#96)
L2 L#11 (256KB) + L1d L#11 (32KB) + L1i L#11 (32KB) + Core L#11
PU L#22 (P#44)
PU L#23 (P#100)
L2 L#12 (256KB) + L1d L#12 (32KB) + L1i L#12 (32KB) + Core L#12
PU L#24 (P#48)
PU L#25 (P#104)
L2 L#13 (256KB) + L1d L#13 (32KB) + L1i L#13 (32KB) + Core L#13
PU L#26 (P#52)
PU L#27 (P#108)
HostBridge L#0
PCIBridge
PCI 14e4:165f
Net L#0 "eno3"
PCI 14e4:165f
Net L#1 "eno4"
PCIBridge
PCI 14e4:165f
Net L#2 "eno1"
PCI 14e4:165f
Net L#3 "eno2"
PCIBridge
PCI 8086:1572
Net L#4 "enp15s0f0"
PCI 8086:1572
Net L#5 "enp15s0f1"
PCIBridge
PCI 1000:005d
Block(Disk) L#6 "sda"
Block(Disk) L#7 "sdb"
PCIBridge
PCIBridge
PCIBridge
PCIBridge
PCI 102b:0534
PCI 8086:1d02
Block(Removable Media Device) L#8 "sr0"
NUMANode L#1 (P#1 63GB) + Package L#1 + L3 L#1 (35MB)
L2 L#14 (256KB) + L1d L#14 (32KB) + L1i L#14 (32KB) + Core L#14
PU L#28 (P#1)
PU L#29 (P#57)
L2 L#15 (256KB) + L1d L#15 (32KB) + L1i L#15 (32KB) + Core L#15
PU L#30 (P#5)
PU L#31 (P#61)
L2 L#16 (256KB) + L1d L#16 (32KB) + L1i L#16 (32KB) + Core L#16
PU L#32 (P#9)
PU L#33 (P#65)
L2 L#17 (256KB) + L1d L#17 (32KB) + L1i L#17 (32KB) + Core L#17
PU L#34 (P#13)
PU L#35 (P#69)
L2 L#18 (256KB) + L1d L#18 (32KB) + L1i L#18 (32KB) + Core L#18
PU L#36 (P#17)
PU L#37 (P#73)
L2 L#19 (256KB) + L1d L#19 (32KB) + L1i L#19 (32KB) + Core L#19
PU L#38 (P#21)
PU L#39 (P#77)
L2 L#20 (256KB) + L1d L#20 (32KB) + L1i L#20 (32KB) + Core L#20
PU L#40 (P#25)
PU L#41 (P#81)
L2 L#21 (256KB) + L1d L#21 (32KB) + L1i L#21 (32KB) + Core L#21
PU L#42 (P#29)
PU L#43 (P#85)
L2 L#22 (256KB) + L1d L#22 (32KB) + L1i L#22 (32KB) + Core L#22
PU L#44 (P#33)
PU L#45 (P#89)
L2 L#23 (256KB) + L1d L#23 (32KB) + L1i L#23 (32KB) + Core L#23
PU L#46 (P#37)
PU L#47 (P#93)
L2 L#24 (256KB) + L1d L#24 (32KB) + L1i L#24 (32KB) + Core L#24
PU L#48 (P#41)
PU L#49 (P#97)
L2 L#25 (256KB) + L1d L#25 (32KB) + L1i L#25 (32KB) + Core L#25
PU L#50 (P#45)
PU L#51 (P#101)
L2 L#26 (256KB) + L1d L#26 (32KB) + L1i L#26 (32KB) + Core L#26
PU L#52 (P#49)
PU L#53 (P#105)
L2 L#27 (256KB) + L1d L#27 (32KB) + L1i L#27 (32KB) + Core L#27
PU L#54 (P#53)
PU L#55 (P#109)
NUMANode L#2 (P#2 63GB) + Package L#2 + L3 L#2 (35MB)
L2 L#28 (256KB) + L1d L#28 (32KB) + L1i L#28 (32KB) + Core L#28
PU L#56 (P#2)
PU L#57 (P#58)
L2 L#29 (256KB) + L1d L#29 (32KB) + L1i L#29 (32KB) + Core L#29
PU L#58 (P#6)
PU L#59 (P#62)
L2 L#30 (256KB) + L1d L#30 (32KB) + L1i L#30 (32KB) + Core L#30
PU L#60 (P#10)
PU L#61 (P#66)
L2 L#31 (256KB) + L1d L#31 (32KB) + L1i L#31 (32KB) + Core L#31
PU L#62 (P#14)
PU L#63 (P#70)
L2 L#32 (256KB) + L1d L#32 (32KB) + L1i L#32 (32KB) + Core L#32
PU L#64 (P#18)
PU L#65 (P#74)
L2 L#33 (256KB) + L1d L#33 (32KB) + L1i L#33 (32KB) + Core L#33
PU L#66 (P#22)
PU L#67 (P#78)
L2 L#34 (256KB) + L1d L#34 (32KB) + L1i L#34 (32KB) + Core L#34
PU L#68 (P#26)
PU L#69 (P#82)
L2 L#35 (256KB) + L1d L#35 (32KB) + L1i L#35 (32KB) + Core L#35
PU L#70 (P#30)
PU L#71 (P#86)
L2 L#36 (256KB) + L1d L#36 (32KB) + L1i L#36 (32KB) + Core L#36
PU L#72 (P#34)
PU L#73 (P#90)
L2 L#37 (256KB) + L1d L#37 (32KB) + L1i L#37 (32KB) + Core L#37
PU L#74 (P#38)
PU L#75 (P#94)
L2 L#38 (256KB) + L1d L#38 (32KB) + L1i L#38 (32KB) + Core L#38
PU L#76 (P#42)
PU L#77 (P#98)
L2 L#39 (256KB) + L1d L#39 (32KB) + L1i L#39 (32KB) + Core L#39
PU L#78 (P#46)
PU L#79 (P#102)
L2 L#40 (256KB) + L1d L#40 (32KB) + L1i L#40 (32KB) + Core L#40
PU L#80 (P#50)
PU L#81 (P#106)
L2 L#41 (256KB) + L1d L#41 (32KB) + L1i L#41 (32KB) + Core L#41
PU L#82 (P#54)
PU L#83 (P#110)
NUMANode L#3 (P#3 63GB)
Package L#3 + L3 L#3 (35MB)
L2 L#42 (256KB) + L1d L#42 (32KB) + L1i L#42 (32KB) + Core L#42
PU L#84 (P#3)
PU L#85 (P#59)
L2 L#43 (256KB) + L1d L#43 (32KB) + L1i L#43 (32KB) + Core L#43
PU L#86 (P#7)
PU L#87 (P#63)
L2 L#44 (256KB) + L1d L#44 (32KB) + L1i L#44 (32KB) + Core L#44
PU L#88 (P#11)
PU L#89 (P#67)
L2 L#45 (256KB) + L1d L#45 (32KB) + L1i L#45 (32KB) + Core L#45
PU L#90 (P#15)
PU L#91 (P#71)
L2 L#46 (256KB) + L1d L#46 (32KB) + L1i L#46 (32KB) + Core L#46
PU L#92 (P#19)
PU L#93 (P#75)
L2 L#47 (256KB) + L1d L#47 (32KB) + L1i L#47 (32KB) + Core L#47
PU L#94 (P#23)
PU L#95 (P#79)
L2 L#48 (256KB) + L1d L#48 (32KB) + L1i L#48 (32KB) + Core L#48
PU L#96 (P#27)
PU L#97 (P#83)
L2 L#49 (256KB) + L1d L#49 (32KB) + L1i L#49 (32KB) + Core L#49
PU L#98 (P#31)
PU L#99 (P#87)
L2 L#50 (256KB) + L1d L#50 (32KB) + L1i L#50 (32KB) + Core L#50
PU L#100 (P#35)
PU L#101 (P#91)
L2 L#51 (256KB) + L1d L#51 (32KB) + L1i L#51 (32KB) + Core L#51
PU L#102 (P#39)
PU L#103 (P#95)
L2 L#52 (256KB) + L1d L#52 (32KB) + L1i L#52 (32KB) + Core L#52
PU L#104 (P#43)
PU L#105 (P#99)
L2 L#53 (256KB) + L1d L#53 (32KB) + L1i L#53 (32KB) + Core L#53
PU L#106 (P#47)
PU L#107 (P#103)
L2 L#54 (256KB) + L1d L#54 (32KB) + L1i L#54 (32KB) + Core L#54
PU L#108 (P#51)
PU L#109 (P#107)
L2 L#55 (256KB) + L1d L#55 (32KB) + L1i L#55 (32KB) + Core L#55
PU L#110 (P#55)
PU L#111 (P#111)
HostBridge L#9
PCIBridge
PCI 1000:005d
Block(Disk) L#9 "sdc"
top output (cut because with 112 cores, lines don't fit in console):
top - 10:34:14 up 5 days, 3 min, 5 users, load average: 0,24, 0,10, 0,03
Tâches: 989 total, 1 en cours, 988 en veille, 0 arrêté, 0 zombie
%Cpu0 : 19,1 ut, 0,7 sy, 0,0 ni, 80,2 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu1 : 0,7 ut, 1,0 sy, 0,0 ni, 98,3 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu2 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu3 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu4 : 19,9 ut, 0,7 sy, 0,0 ni, 79,5 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu5 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu6 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu7 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu8 : 21,0 ut, 0,0 sy, 0,0 ni, 79,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu9 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu10 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu11 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu12 : 18,3 ut, 0,7 sy, 0,0 ni, 81,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu13 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu14 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu15 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu16 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu17 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu18 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu19 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu20 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu21 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu22 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu23 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu24 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu25 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu26 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu27 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu28 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu29 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu30 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu31 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu32 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu33 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu34 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu35 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu36 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu37 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu38 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu39 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu40 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu41 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu42 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
%Cpu43 : 0,0 ut, 0,0 sy, 0,0 ni,100,0 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
Please try running zcount in active-wait mode (-a) as I need to figure out if it somehow depends on passive wait sleeping too much or on some hw-related issue.
It's much better with -a
, although I still have more loss than with a single RSS queue.
For 10s of 2 x 10 Gb/s of 64 B frames traffic, I get:
EDIT : I also noticed the most loss seem to occur in the first zcount
instance, I tried to pin it to core 16 instead of 0 (Intel recommends to avoid core 0 with DPDK because Linux uses core 0 for some timers apparently), but it did not change much performance.
@desbma please note that i40e interfaces have per-port drop counters, thus all drops from all queues are accounted to queue 0. As of RSS vs single queue, strange that you have more drops, however using more RSS queues you also increase the working set in memory, probably affecting cache trashing, that could explain this (depending on traffic rate, number of rss queues, cache size, etc).
A few changes have been made changes to irq management and other code, RSS is doing line-rate in our lab. Please reopen in case.
When using 2
zcount
instances each on a 10 GbE interface I managed to get almost no loss (the few frames lost are because of #244, bust as a percentage it is extremely low).However when I use more than the default 1 RSS queue per interface, performance drops dramatically:
and then running on 4 different terminals:
For 10 seconds of 2 x 10 Gb/s of 64 bytes frames (~148 809 000 frames per interface), I capture about 62 200 000 frames per process, so about 124 400 000 frames per interface which is ~16% lost frames.
Is there some tweaks I could do to improve performance in this case?
My environment is the following:
Thank you
EDIT : During traffic each core hosting a
zcount
instance is loaded by about 20% (user time).