From my understanding, interrupts may not be the case of the issue.
Running two instances of iperf3 and a disk-writing benchmark I wrote, there doesn’t appear to be a high load on the ksoftirqd processes.
top - 12:14:33 up 11 min, 4 users, load average: 13.82, 4.85, 1.98
Tasks: 266 total, 10 running, 256 sleeping, 0 stopped, 0 zombie
%Cpu(s): 8.8 us, 42.3 sy, 0.0 ni, 8.0 id, 27.4 wa, 2.2 hi, 11.3 si, 0.0 st
MiB Mem : 29969.5 total, 206.9 free, 12871.8 used, 16890.7 buff/cache
MiB Swap: 0.0 total, 0.0 free, 0.0 used. 16742.5 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2826 user 20 0 12.3g 9.9g 7988 R 531.2 34.0 4:28.44 DiskWriteBenchm
1663 user 20 0 5248 2060 1588 R 93.8 0.0 2:47.95 iperf3
1672 user 20 0 5248 2140 1668 R 93.8 0.0 2:43.90 iperf3
187 root 20 0 0 0 0 S 50.0 0.0 0:35.18 kswapd0
2245 root 20 0 0 0 0 R 25.0 0.0 0:09.32 kworker/u32:0+flush-8:0
154 root 20 0 0 0 0 D 18.8 0.0 0:09.36 kworker/u32:1+flush-8:48
202 root 20 0 0 0 0 R 18.8 0.0 0:09.59 kworker/u32:4+flush-8:16
206 root 20 0 0 0 0 D 12.5 0.0 0:09.16 kworker/u32:6+flush-8:32
2939 user 20 0 6116 2892 2272 R 12.5 0.0 0:00.03 top
10 root 20 0 0 0 0 R 6.2 0.0 0:00.23 rcu_preempt
55 root 20 0 0 0 0 S 6.2 0.0 0:02.28 ksoftirqd/9
327 root 20 0 0 0 0 R 6.2 0.0 0:00.21 kworker/2:2-events
1 root 20 0 166796 6164 3332 S 0.0 0.0 0:07.15 systemd
Looking at /proc/interrupts, however, ahci-qoriq[3200000.sata], ahci-qoriq[3210000.sata], ahci-qoriq[3220000.sata] and ahci-qoriq[3230000.sata] were experiencing about 500 interrupts/second all on core 0.
The network interrupts (dpio.0 to dpio.15 I believe?) were distributed across all cores.
Regardless the SATA interrupts seemed like a lot, so I installed irqbalance, and confirmed that the SATA interrupts were being rebalanced. However, the issue of reduced network performance when using the SATA disks remained.
Is there anything else I should look at?