results with diff affinity settings using ixgbe
Subsystems (2)
I make some tests with affinity on my machine with some traffic load. If someone want look:
Traffic in all test was 350Mbit/s TX and the same on RX
RX queues on cpu6 / TX queues on cpu7 / intel e1000e on cpu4
Average: CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s Average: all 0.05 0.00 0.00 0.00 1.89 10.03 0.00 88.03 221511.70 Average: 0 0.40 0.00 0.00 0.00 0.00 0.00 0.00 99.60 0.70 Average: 1 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 0.80 Average: 2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 0.70 Average: 3 0.00 0.00 0.10 0.00 0.00 0.40 0.00 99.50 0.70 Average: 4 0.00 0.00 0.00 0.00 2.06 18.74 0.00 79.20 12870.50 Average: 5 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 1.30 Average: 6 0.00 0.00 0.00 0.00 2.65 57.49 0.00 39.86 59410.60 Average: 7 0.00 0.00 0.00 0.00 10.50 5.00 0.00 84.50 53977.90
RX queues on cpu6 / TX queues on cpu7 / intel e1000e on cpu1
Average: CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s Average: all 0.08 0.00 0.09 0.00 0.75 14.24 0.00 84.84 215755.20 Average: 0 0.50 0.00 0.00 0.00 0.00 0.00 0.00 99.50 1.30 Average: 1 0.00 0.00 0.53 0.00 2.34 36.91 0.00 60.21 9771.90 Average: 2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 1.40 Average: 3 0.00 0.00 0.00 0.00 0.00 0.20 0.00 99.80 1.30 Average: 4 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 1.30 Average: 5 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 1.80 Average: 6 0.00 0.00 0.20 0.00 2.65 78.51 0.00 18.64 54691.70 Average: 7 0.00 0.00 0.00 0.00 1.03 0.51 0.00 98.46 54060.60
All RX/TX queues from ixgbe on one cpu7 / intel e1000e on cpu1
Average: CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s Average: all 0.07 0.00 0.10 0.00 1.19 9.44 0.00 89.19 210155.50 Average: 0 0.60 0.00 0.00 0.00 0.00 0.00 0.00 99.40 0.60 Average: 1 0.00 0.00 0.41 0.00 2.87 16.27 0.00 80.45 13045.30 Average: 2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 0.70 Average: 3 0.10 0.00 0.30 0.00 0.00 0.20 0.00 99.40 0.60 Average: 4 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 0.70 Average: 5 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 1.10 Average: 6 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 0.60 Average: 7 0.00 0.00 0.10 0.00 6.77 60.00 0.00 33.13 107242.50
All RX/TX queues from ixgbe on one cpu7 / intel e1000e on cpu4
Average: CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s Average: all 0.05 0.00 0.04 0.00 1.24 9.55 0.00 89.12 212186.90 Average: 0 0.40 0.00 0.00 0.00 0.00 0.00 0.00 99.60 2.20 Average: 1 0.10 0.00 0.00 0.00 0.00 0.00 0.00 99.90 2.30 Average: 2 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 2.20 Average: 3 0.00 0.00 0.00 0.00 0.00 0.30 0.00 99.70 2.20 Average: 4 0.00 0.00 0.00 0.00 1.03 14.68 0.00 84.28 11965.50 Average: 5 0.00 0.00 0.10 0.00 0.00 0.00 0.00 99.90 2.80 Average: 6 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 2.30 Average: 7 0.00 0.00 0.20 0.00 8.97 62.69 0.00 28.13 110943.50
Affinity set to "ffffffff" / and intel e1000e is on cpu4
Average: CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s Average: all 0.10 0.00 0.14 0.01 1.16 15.07 0.00 83.52 185043.10 Average: 0 0.00 0.00 0.00 0.10 2.90 36.90 0.00 60.10 9008.60 Average: 1 0.00 0.00 0.10 0.00 2.30 28.36 0.00 69.24 9009.10 Average: 2 0.80 0.00 0.40 0.00 0.50 13.76 0.00 84.54 9008.90 Average: 3 0.00 0.00 0.20 0.00 0.20 4.61 0.00 94.98 9008.90 Average: 4 0.00 0.00 0.10 0.00 2.35 19.55 0.00 77.99 14142.10 Average: 5 0.00 0.00 0.10 0.00 0.20 3.85 0.00 95.84 9009.10 Average: 6 0.00 0.00 0.10 0.00 0.40 4.22 0.00 95.28 9008.90 Average: 7 0.00 0.00 0.10 0.00 0.51 8.69 0.00 90.70 9009.00
And if i split more RX/TX queues to different CPU-s i have more load done by:
CPU: Core 2, speed 2999.98 MHz (estimated)
Counted CPU_CLK_UNHALTED events (Clock cycles when not halted) with a unit mask of 0x00 (Unhalted core cycles) count 100000
samples % image name app name symbol name 458001 29.5565 vmlinux vmlinux native_read_tsc
If all interrupts are on one CPU i have the best results
So for me the best is to put ixgbe work on one CPU or make affinity to balance over all cpus
But something is wrong with my intel e1000e
because if i put intel e1000e with ixgbe on the same CPU system have 100% cpu load and all hangs.
Quoted 131 lines · Paweł Staszewski
I make some tests with affinity on my machine with some traffic load. If someone want look:
Traffic in all test was 350Mbit/s TX and the same on RX
RX queues on cpu6 / TX queues on cpu7 / intel e1000e on cpu4
Average: CPU %user %nice %sys %iowait %irq %soft
%steal %idle intr/s
Average: all 0.05 0.00 0.00 0.00 1.89 10.03
0.00 88.03 221511.70
Average: 0 0.40 0.00 0.00 0.00 0.00 0.00
0.00 99.60 0.70
Average: 1 0.00 0.00 0.00 0.00 0.00 0.00
0.00 100.00 0.80
Average: 2 0.00 0.00 0.00 0.00 0.00 0.00
0.00 100.00 0.70
Average: 3 0.00 0.00 0.10 0.00 0.00 0.40
0.00 99.50 0.70
Average: 4 0.00 0.00 0.00 0.00 2.06 18.74
0.00 79.20 12870.50
Average: 5 0.00 0.00 0.00 0.00 0.00 0.00
0.00 100.00 1.30
Average: 6 0.00 0.00 0.00 0.00 2.65 57.49
0.00 39.86 59410.60
Average: 7 0.00 0.00 0.00 0.00 10.50 5.00
0.00 84.50 53977.90RX queues on cpu6 / TX queues on cpu7 / intel e1000e on cpu1
Average: CPU %user %nice %sys %iowait %irq %soft
%steal %idle intr/s
Average: all 0.08 0.00 0.09 0.00 0.75 14.24
0.00 84.84 215755.20
Average: 0 0.50 0.00 0.00 0.00 0.00 0.00
0.00 99.50 1.30Average: 1 0.00 0.00 0.53 0.00 2.34 36.91 0.00 60.21 9771.90 Average: 2 0.00 0.00 0.00 0.00 0.00 0.000.00 100.00 1.40
Average: 3 0.00 0.00 0.00 0.00 0.00 0.20
0.00 99.80 1.30
Average: 4 0.00 0.00 0.00 0.00 0.00 0.00
0.00 100.00 1.30
Average: 5 0.00 0.00 0.00 0.00 0.00 0.00
0.00 100.00 1.80
Average: 6 0.00 0.00 0.20 0.00 2.65 78.51
0.00 18.64 54691.70
Average: 7 0.00 0.00 0.00 0.00 1.03 0.51
0.00 98.46 54060.60All RX/TX queues from ixgbe on one cpu7 / intel e1000e on cpu1
Average: CPU %user %nice %sys %iowait %irq %soft
%steal %idle intr/s
Average: all 0.07 0.00 0.10 0.00 1.19 9.44
0.00 89.19 210155.50
Average: 0 0.60 0.00 0.00 0.00 0.00 0.00
0.00 99.40 0.60
Average: 1 0.00 0.00 0.41 0.00 2.87 16.27
0.00 80.45 13045.30
Average: 2 0.00 0.00 0.00 0.00 0.00 0.00
0.00 100.00 0.70
Average: 3 0.10 0.00 0.30 0.00 0.00 0.20
0.00 99.40 0.60
Average: 4 0.00 0.00 0.00 0.00 0.00 0.00
0.00 100.00 0.70
Average: 5 0.00 0.00 0.00 0.00 0.00 0.00
0.00 100.00 1.10
Average: 6 0.00 0.00 0.00 0.00 0.00 0.00
0.00 100.00 0.60
Average: 7 0.00 0.00 0.10 0.00 6.77 60.00
0.00 33.13 107242.50All RX/TX queues from ixgbe on one cpu7 / intel e1000e on cpu4
Average: CPU %user %nice %sys %iowait %irq %soft
%steal %idle intr/s
Average: all 0.05 0.00 0.04 0.00 1.24 9.55
0.00 89.12 212186.90
Average: 0 0.40 0.00 0.00 0.00 0.00 0.00
0.00 99.60 2.20
Average: 1 0.10 0.00 0.00 0.00 0.00 0.00
0.00 99.90 2.30
Average: 2 0.00 0.00 0.00 0.00 0.00 0.00
0.00 100.00 2.20
Average: 3 0.00 0.00 0.00 0.00 0.00 0.30
0.00 99.70 2.20
Average: 4 0.00 0.00 0.00 0.00 1.03 14.68
0.00 84.28 11965.50
Average: 5 0.00 0.00 0.10 0.00 0.00 0.00
0.00 99.90 2.80
Average: 6 0.00 0.00 0.00 0.00 0.00 0.00
0.00 100.00 2.30
Average: 7 0.00 0.00 0.20 0.00 8.97 62.69
0.00 28.13 110943.50Affinity set to "ffffffff" / and intel e1000e is on cpu4
Average: CPU %user %nice %sys %iowait %irq %soft
%steal %idle intr/s
Average: all 0.10 0.00 0.14 0.01 1.16 15.07
0.00 83.52 185043.10Average: 0 0.00 0.00 0.00 0.10 2.90 36.90 0.00 60.10 9008.60 Average: 1 0.00 0.00 0.10 0.00 2.30 28.36 0.00 69.24 9009.10 Average: 2 0.80 0.00 0.40 0.00 0.50 13.76 0.00 84.54 9008.90 Average: 3 0.00 0.00 0.20 0.00 0.20 4.61 0.00 94.98 9008.90 Average: 4 0.00 0.00 0.10 0.00 2.35 19.55 0.00 77.99 14142.10 Average: 5 0.00 0.00 0.10 0.00 0.20 3.85 0.00 95.84 9009.10 Average: 6 0.00 0.00 0.10 0.00 0.40 4.22 0.00 95.28 9008.90 Average: 7 0.00 0.00 0.10 0.00 0.51 8.69 0.00 90.70 9009.00And if i split more RX/TX queues to different CPU-s i have more load done by:
CPU: Core 2, speed 2999.98 MHz (estimated)
CountedCPU_CLK_UNHALTEDevents (Clock cycles when not halted) with a unit mask of0x00(Unhalted core cycles) count 100000
samples % image name app name
symbol name
458001 29.5565 vmlinux vmlinuxnative_read_tsc
Quoted 3 lines
If all interrupts are on one CPU i have the best results
So for me the best is to put ixgbe work on one CPU or make affinity to balance over all cpus
I am confused by all these numbers. What is your goal exactly ?
If one CPU is able to do the whole workload, it will be faster too.
All other cpus are idle and wont fight with cache lines.
Quoted 4 lines
But something is wrong with my intel e1000e
because if i put intel e1000e with ixgbe on the same CPU system have 100% cpu load and all hangs.
Try to reproduce the bug and submit it ?