Closed iangneal closed 5 years ago
The read overhead seems to be an issue with the IO size per thread: running
sudo ./run.sh iotest sr 4G 4K 4
Actually results in a ~450 MB/sec throughput (1.12x)
@fzheart Let me know if you rather have these changes be committed to a separate branch rather than merged to master.
This basic implementation of SPDK multithreading creates multiple qpairs for libfs/kernfs. Each thread then uses one qpair for all its operations (if there are more threads than available qpairs, the threads share based on thread id).
The performance characteristics are as follows (averages measured in throughput, MB/sec):
--- CONCURRENT disabled
--- CONCURRENT enabled
Writes are significantly better, whereas reads are significantly worse. I plan on investigating this more thoroughly and coming up with a better qpair load-balancing strategy, but I figured merging the naive implementation first would be a good step.