MQSim is a fast and accurate simulator modeling the performance of modern multi-queue (MQ) SSDs as well as traditional SATA based SSDs. MQSim faithfully models new high-bandwidth protocol implementations, steady-state SSD conditions, and the full end-to-end latency of requests in modern SSDs. It is described in detail in the FAST 2018 paper by Arash Tavakkol et al., "MQSim: A Framework for Enabling Realistic Studies of Modern Multi-Queue SSD Devices" (https://people.inf.ethz.ch/omutlu/pub/MQSim-SSD-simulation-framework_fast18.pdf)
In the workload.xml file there is a option named _PriorityClass that can be set for different flows. What I understand from the readme description, we can set the relative I/O priority of different flows by setting the corresponding _PriorityClass value in the range {{URGENT, HIGH, MEDIUM, LOW}, which is very similar to the NVMe queue specification. I tried two different flows with two different _PriorityClass values, one with URGENT and another with LOW. And after the simulation, when I see the statistics, I see almost no difference in performance at all ( the delay, IOPS etc of these two flows are almost similar, which supposed not to be the case). I put rest of the required attributes (i.e. _ReadPercentage, _Average_RequestSize, _Average_No_of_Reqs_inQueue etc) of the two flows identical.
So, what I want to know, whether this _PriorityClass of each flows really has some impact or this is left for the future enhancement.
You need to set the value of the Transaction_Scheduling_Policy parameter to PRIORITY_OUT_OF_ORDER. The base scheduler, i.e., OUT_OF_ORDER, ignores NVMe policies.
Hello,
In the workload.xml file there is a option named _PriorityClass that can be set for different flows. What I understand from the readme description, we can set the relative I/O priority of different flows by setting the corresponding _PriorityClass value in the range {{URGENT, HIGH, MEDIUM, LOW}, which is very similar to the NVMe queue specification. I tried two different flows with two different _PriorityClass values, one with URGENT and another with LOW. And after the simulation, when I see the statistics, I see almost no difference in performance at all ( the delay, IOPS etc of these two flows are almost similar, which supposed not to be the case). I put rest of the required attributes (i.e. _ReadPercentage, _Average_RequestSize, _Average_No_of_Reqs_inQueue etc) of the two flows identical.
So, what I want to know, whether this _PriorityClass of each flows really has some impact or this is left for the future enhancement.
Thanks Joyanta