Irqbalance sinnvoll?

Benutzt ihr irqbalance auf euren nodes?

Nein, was versprichst du dir davon?

Mehr Performance. Ich hab irgendwo im OpenWrt Forum glesen, dass die Routing-Performance sehr stark gestiegen ist.

Habe es gerade auf nem NanoPI R2S probiert, ergibt keinen Unterschied.

Der R2S hat das Interrupt mapping bereits über die Cores für beide interfaces verteilt, siehe hierzu

Pauschalisieren kann man den Gewinn nicht, da er sehr von der Platform abhängt. Im obigen Beispiel waren der Gewinn AFAIR irgendwo bei 30-40%, in Mbit/s um die 300.

Es kommt auch stark darauf an, was du mit dem Gerät tust. Sofern du LAN ↔ WAN routing auf IPQ40xx als speziellen Task siehst, so kann es dort tatsächlich einiges an Performance bringen. Das ist auch der Grund für das virtuelle eth1 Interface dieser Platform.

1 „Gefällt mir“

Ich hab nur ein Interface benutzt per iperf, hier passiert es nach wie vor immer noch eher dass ein Core auf 100% läuft und dann nichts mehr an Geschwindigkeit zu nimmt.

Vielleicht testen wir es mal auf ner Fritzbox mal sehen.

Auf dem nanopi

irqbalance --oneshot -d
-----------------------------------------------------------------------------
Package 0:  numa_node -1 cpu mask is 0000000f (load 0)
        Cache domain 0:  numa_node is -1 cpu mask is 0000000f  (load 0) 
                CPU number 3  numa_node is -1 (load 0)
                  Interrupt 26 node_num is -1 (gbit-ethernet/0:303) 
                CPU number 1  numa_node is -1 (load 0)
                CPU number 2  numa_node is -1 (load 0)
                CPU number 0  numa_node is -1 (load 0)

Fritzbox 4040:

-----------------------------------------------------------------------------
Package -1:  numa_node -1 cpu mask is 00000008 (load 0)
        Cache domain 0:  numa_node is -1 cpu mask is 00000008  (load 0)
                CPU number 3  numa_node is -1 (load 0)
  Interrupt 95 node_num is -1 (other/0:0)
  Interrupt 82 node_num is -1 (other/0:0)
  Interrupt 75 node_num is -1 (other/0:0)
  Interrupt 71 node_num is -1 (other/0:0)
  Interrupt 67 node_num is -1 (other/0:0)
  Interrupt 63 node_num is -1 (other/0:0)
  Interrupt 59 node_num is -1 (other/0:177)
  Interrupt 23 node_num is -1 (other/0:0)
Package -1:  numa_node -1 cpu mask is 00000002 (load 0)
        Cache domain 1:  numa_node is -1 cpu mask is 00000002  (load 0)
                CPU number 1  numa_node is -1 (load 0)
  Interrupt 94 node_num is -1 (other/0:0)
  Interrupt 80 node_num is -1 (other/0:3)
  Interrupt 74 node_num is -1 (other/0:0)
  Interrupt 70 node_num is -1 (other/0:0)
  Interrupt 66 node_num is -1 (other/0:82)
  Interrupt 62 node_num is -1 (other/0:2)
  Interrupt 42 node_num is -1 (other/0:581)
  Interrupt 22 node_num is -1 (other/0:0)
Package -1:  numa_node -1 cpu mask is 00000004 (load 0)
        Cache domain 2:  numa_node is -1 cpu mask is 00000004  (load 0)
                CPU number 2  numa_node is -1 (load 0)
  Interrupt 93 node_num is -1 (other/0:0)
  Interrupt 78 node_num is -1 (other/0:238)
  Interrupt 73 node_num is -1 (other/0:0)
  Interrupt 69 node_num is -1 (other/0:0)
  Interrupt 65 node_num is -1 (other/0:0)
  Interrupt 61 node_num is -1 (other/0:0)
  Interrupt 25 node_num is -1 (other/0:0)
  Interrupt 18 node_num is -1 (other/0:4184)
Package -1:  numa_node -1 cpu mask is 00000001 (load 0)
        Cache domain 3:  numa_node is -1 cpu mask is 00000001  (load 0)
                CPU number 0  numa_node is -1 (load 0)
  Interrupt 92 node_num is -1 (other/0:0)
  Interrupt 76 node_num is -1 (other/0:0)
  Interrupt 72 node_num is -1 (other/0:3)
  Interrupt 68 node_num is -1 (other/0:3)
  Interrupt 64 node_num is -1 (other/0:6)
  Interrupt 60 node_num is -1 (other/0:9)
  Interrupt 24 node_num is -1 (other/0:0)