From f875da40196e83ac207e0e37a79033e01eb4f878 Mon Sep 17 00:00:00 2001 From: "Simon A. F. Lund" Date: Wed, 28 Oct 2020 16:48:22 +0100 Subject: [PATCH] examples/nvme_fio_plugin: update ZNS section of README Signed-off-by: Simon A. F. Lund Change-Id: I99c82490811314201b53dde59e586538835e0840 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/4950 Reviewed-by: Jim Harris Reviewed-by: Niklas Cassel Reviewed-by: Ben Walker Community-CI: Mellanox Build Bot Tested-by: SPDK CI Jenkins --- examples/nvme/fio_plugin/README.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/examples/nvme/fio_plugin/README.md b/examples/nvme/fio_plugin/README.md index 2e9cf9c4a..267aaf15a 100644 --- a/examples/nvme/fio_plugin/README.md +++ b/examples/nvme/fio_plugin/README.md @@ -116,3 +116,33 @@ To your fio-script, also have a look at script-examples provided with fio: fio/examples/zbd-seq-read.fio fio/examples/zbd-rand-write.fio + +## Maximum Open Zones + +Zoned Namespaces has a resource constraint on the amount of zones which can be in an opened state at +any point in time. You can control how many zones fio will keep in an open state by using the +``--max_open_zones`` option. + +The SPDK/NVMe fio io-engine will set a default value if you do not provide one. + +## Maximum Active Zones + +Zoned Namespaces has a resource constraint on the number of zones that can be active at any point in +time. Unlike ``max_open_zones``, then fio currently do not manage this constraint, and there is thus +no option to limit it either. + +When running with the SPDK/NVMe fio io-engine you can be exposed to error messages, in the form of +completion errors, with the NVMe status code of 0xbd ("Too Many Active Zones"). To work around this, +then you can reset all zones before fio start running its jobs by using the engine option: + + --initial_zone_reset=1 + +## Shared Memory Increase + +If your device has a lot of zones, fio can give you errors such as: + + smalloc: OOM. Consider using --alloc-size to increase the shared memory available. + +This is because fio needs to allocate memory for the zone-report, that is, retrieve the state of +zones on the device including auxiliary accounting information. To solve this, then you can follow +fio's advice and increase ``--alloc-size``.