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.