Poor Write Performance on SATA Devices

I reinstalled TrueNAS Scale yesterday after my boot pool became corrupted and I opted to go for a fresh start. This is an older box at this point but has been solid for years. I’m now seeing very poor write performance on SATA drives and I am curious if this is a common issue for motherboard integrated SATA controllers and if there is a good reason.

TrueNAS-SCALE-24.04.2.3
Supermicro X11SSL motherboard
Xeon E3-1230 v5
24 GB RAM
PCIe Intel X550-AT2 10 Gigabit NIC peer-to-peer to Marvell AQC113CS-B1-C 10Gbps LAN
Tested files are ~10 GB MKV files reading from a Gen4 PCIe SSD

I recently started running low on space on an old set of drives. This was 9x 2TB WD Red HDDs in three columns, two data, one parity. The drives were split across the integrated motherboard SATA controller and a discrete Asmedia1064 PCIe SATA card. I could reliably hit 200-300 MB/s writes to this pool and this seemed reasonable for the time. I want to rebuild my NAS entirely but purchased two WD Red Pro 20 TB drives to set up a mirror for temporary space, hoping to limp by for a few more years. I removed the Asmedia card and am running these off the motherboard. I also have a 240 GB Kingston A400 SSD in a single drive pool for testing purposes.

When writing to USB SSDs, I saturate the 10G NIC until the cache runs out and then it drops to the write speed of the drive. For instance, a Crucial X6 USB SSD is hitting about 450 MB/s, which is exactly as expected. When writing to the WD Red Pro HDD mirror pool, it is dropping to about 110 MB/s or lower. I would expect better from these drives, even with the simple mirror config. When writing to the Kingston A400, the speed tanks to around 50 MB/s and sometimes comes to a full stop, spikes back to 200 MB/s, and tanks again.

I have eliminated the network interfaces and source system as culprits and everything seems to point to the SATA controller acting up. I suspect I will get much better results when I put the PCIe SATA card back in, but I am not home right now to try it. I will update this post when I give that a shot.

Mostly, I am curious if this is a common problem with integrated controllers or if my board is misbehaving. Please let me know if I need to provide more information. Thanks for any insight!