MQSim
MQSim is a discrete-event SSD simulator that models host queues, controller resources, flash operations and workload-dependent preparation.
Queue configuration: IO_Queue_Depth sets host queue capacity, Average_No_of_Reqs_in_Queue controls synthetic offered concurrency in QUEUE_DEPTH mode, and Queue_Fetch_Size limits per-stream fetch admission in the NVMe model. These settings are not interchangeable measurements. [2]
Fetch accounting: in commit 51f0f2d3fed92d88ef4a0fa61a38024b07bf9d16, admission increments On_the_fly_requests; Handle_serviced_request decrements it before checking whether the completion queue has room. Pending work can therefore be fetched while a serviced request awaits completion delivery. This counter is not all host-outstanding I/O. [3]
Interpretation: the FAST 2018 comparison of fetch limits 16 and 1024 is a simulator sensitivity study, not a universal NVMe tuning prescription. [1]
Relations
- related
- Queue depth, NVMe submission queue, NVMe completion queue, SSD steady state, Flash translation layer (FTL), I/O scheduler
Limitations
- Matching selected historical devices does not validate a model for every workload or current controller. [1]
Citations
- Tavakkol et al. MQSim: A Framework for Enabling Realistic Studies of Modern Multi-Queue SSD Devices. FAST 2018, section 4.2.1 and Appendix A.3.
- CMU-SAFARI MQSim README, commit 51f0f2d3fed92d88ef4a0fa61a38024b07bf9d16: device configuration and synthetic workload parameters.
- CMU-SAFARI MQSim Host_Interface_NVMe.cpp, commit 51f0f2d3fed92d88ef4a0fa61a38024b07bf9d16: fetch admission and serviced-request handling.
Further reading
Sources & caveats
- Primary-paper and pinned-code review. No MQSim execution, hardware benchmark or performance replication was performed.