Slow IOPing times for PCIe gen 4 nvme SSD on X570 motherboard

I have a Ryzen 3900x build with a Gigabyte X570 Auros Master motherboard using Sabrent pcie gen 4 nvme SSDs installed on the motherboard (direct to CPU and via chipset) and in an AIC. When I run IOPing on any of the SSDs I get very poor response times after the first request.

ioping .
4 KiB <<< . (xfs /dev/nvme0n1): request=1 time=79.5 us (warmup)
4 KiB <<< . (xfs /dev/nvme0n1): request=2 time=4.60 ms
4 KiB <<< . (xfs /dev/nvme0n1): request=3 time=4.59 ms
4 KiB <<< . (xfs /dev/nvme0n1): request=4 time=4.59 ms
4 KiB <<< . (xfs /dev/nvme0n1): request=5 time=5.06 ms
4 KiB <<< . (xfs /dev/nvme0n1): request=6 time=5.08 ms

I am running centos 7 with BIOS version F7b.

Any ideas on what may be causing this or where to focus my troubleshooting?

Replying for posterity sakeā€¦

Turns out the high latency is due to the NVME Autonomous Power State Transitions (APST) feature

nvme id-ctrl /dev/nvme0
...
ps    0 : mp:10.73W operational enlat:0 exlat:0 rrt:0 rrl:0
          rwt:0 rwl:0 idle_power:- active_power:-
ps    1 : mp:7.69W operational enlat:0 exlat:0 rrt:1 rrl:1
          rwt:1 rwl:1 idle_power:- active_power:-
ps    2 : mp:6.18W operational enlat:0 exlat:0 rrt:2 rrl:2
          rwt:2 rwl:2 idle_power:- active_power:-
ps    3 : mp:0.0490W non-operational enlat:2000 exlat:2000 rrt:3 rrl:3
          rwt:3 rwl:3 idle_power:- active_power:-
ps    4 : mp:0.0018W non-operational enlat:25000 exlat:25000 rrt:4 rrl:4
          rwt:4 rwl:4 idle_power:- active_power:-

Once I set the parameter nvme_core.default_ps_max_latency_us=0 to turn off APST I see the microsecond latency I would expect from an nvme drive.

This topic was automatically closed 273 days after the last reply. New replies are no longer allowed.