Linux Benchmarks Of NVMe SSD Performance With Varying I/O Polling Queues
Written by Michael Larabel in Linux Storage on 5 September 2019 at 09:44 AM EDT. 7 Comments
LINUX STORAGE --
A Phoronix reader recently pointed out a little known kernel tunable option to adjust the number of I/O polling queues for NVMe solid-state drives that can potentially help improve the performance/latency. Here are some benchmarks from the NVMe poll_queues option.

A Phoronix Premium reader recently requested some benchmark runs with varying I/O polling queues for NVMe SSD storage. The poll_queues option adjusts the number of queues to use for polled I/O with the NVMe driver; the default is currently 0 but some recommendations put the recommended number at one queue per physical CPU core. At least in his experience, he's been tuning his systems with this option and seems to help his I/O performance but was something he hadn't actually benchmarked. Well, here are some tests but the results are a mixed bag.

Details and background information with this NVMe I/O polling testing via this forum thread. Besides Phoronix Premium

I ran some preliminary benchmarks on an Intel Core i9 7980XE workstation with a Samsung 970 EVO 500GB NVMe solid-state drive.



For program start-up time, using multiple I/O queues actually hurt the performance at least for this particular setup.

The SQLite insertion performance was also slightly higher with multiple queues.

Random read performance did help marginally with a higher number of queues.

The sequential read performance on this particular system topped out at four queues.

Sequential write also topped out at four queues.

The higher number of queues did hurt the performance in some of these synthetic benchmarks.


The BlogBench read performance did better with utilizing this tunable but the write performance only became degraded.

The results were quite mixed.

Making use of multiple I/O polling queues did help the LLVM build time by a few seconds.



Overall the results were quite mixed, but depending upon your I/O workload, it may be worth investigating the NVMe poll_queues tunable for enhancing the performance of your Linux system(s).
About The Author
Author picture

Michael Larabel is the principal author of Phoronix.com and founded the site in 2004 with a focus on enriching the Linux hardware experience. Michael has written more than 10,000 articles covering the state of Linux hardware support, Linux performance, graphics drivers, and other topics. Michael is also the lead developer of the Phoronix Test Suite, Phoromatic, and OpenBenchmarking.org automated benchmarking software. He can be followed via Twitter or contacted via MichaelLarabel.com.

Related Linux Storage News
Popular News This Week