{
  "slug": "mqsim",
  "term": "MQSim",
  "aliases": [
    "Multi-Queue SSD simulator"
  ],
  "definition": "MQSim is a discrete-event SSD simulator that models host queues, controller resources, flash operations and workload-dependent preparation.",
  "note": "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. [mqsim-config]\n\nFetch 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. [mqsim-code]\n\nInterpretation: the FAST 2018 comparison of fetch limits 16 and 1024 is a simulator sensitivity study, not a universal NVMe tuning prescription. [mqsim]",
  "status": "research",
  "advantages": [],
  "limitations": [
    {
      "text": "Matching selected historical devices does not validate a model for every workload or current controller.",
      "citationIds": [
        "mqsim"
      ]
    }
  ],
  "related": [
    "queue-depth",
    "nvme-submission-queue",
    "nvme-completion-queue",
    "ssd-steady-state",
    "ftl",
    "io-scheduler"
  ],
  "supersedes": [],
  "supersededBy": [],
  "firstSeen": null,
  "lastSeen": null,
  "updated": "2026-11-10",
  "citations": [
    {
      "id": "mqsim",
      "title": "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.",
      "url": "https://people.inf.ethz.ch/omutlu/pub/MQSim-SSD-simulation-framework_fast18.pdf",
      "accessed": "2026-11-10"
    },
    {
      "id": "mqsim-config",
      "title": "CMU-SAFARI MQSim README, commit 51f0f2d3fed92d88ef4a0fa61a38024b07bf9d16: device configuration and synthetic workload parameters.",
      "url": "https://github.com/CMU-SAFARI/MQSim/blob/51f0f2d3fed92d88ef4a0fa61a38024b07bf9d16/README.md",
      "accessed": "2026-11-10"
    },
    {
      "id": "mqsim-code",
      "title": "CMU-SAFARI MQSim Host_Interface_NVMe.cpp, commit 51f0f2d3fed92d88ef4a0fa61a38024b07bf9d16: fetch admission and serviced-request handling.",
      "url": "https://github.com/CMU-SAFARI/MQSim/blob/51f0f2d3fed92d88ef4a0fa61a38024b07bf9d16/src/ssd/Host_Interface_NVMe.cpp",
      "accessed": "2026-11-10"
    },
    {
      "id": "hesela",
      "title": "Hesela: Sharing an SSD: who pays for the slowdown?",
      "url": "https://hesela.com/analyses/ssd-fairness-shared-queues/#mqsim-fetch",
      "accessed": "2026-11-10"
    }
  ],
  "provenance": [
    "Primary-paper and pinned-code review. No MQSim execution, hardware benchmark or performance replication was performed."
  ]
}
