n0derunner

    2M IOPS on a single VM with Nutanix HCI

    Published: (Updated: ) in Storage Performance, fio, , , , by . Leave a Comment on 2M IOPS on a single VM with Nutanix HCI.

    How to generate a lot of IOPS to a single VM.

    Using fio to read from Linux buffer-cache

    Published: (Updated: ) in Storage Performance, fio, , , by . Leave a Comment on Using fio to read from Linux buffer-cache.

    Sometimes we want to read from the Linux cache rather than the underlying device using fio. There are couple of gotchas that might trip you up. Thankfully fio provides the required work-arounds. TL;DR To get this to work as expected (reads are serviced from buffer cache) – the best way is to use the option […]

    fio versions < 3.3 may show inflated random write performance

    Published: (Updated: ) in Storage Performance, fio, , by . Leave a Comment on fio versions < 3.3 may show inflated random write performance.

    TL;DR If your storage system implements inline compression, performance results with small IO size random writes with time_based and runtime may be inflated with fio versions < 3.3 due to fio generating unexpectedly compressible data when using fio’s default data pattern. Although unintuitive, performance can often be increased by enabling compression especially if the bottleneck […]

    Specifying Drive letters with fio for Windows.

    Published: (Updated: ) in fio, , by . 1 Comment on Specifying Drive letters with fio for Windows..

    fio on Windows Download pre-compiled fio binary for Windows Example fio windows file, single drive This will create a 1GB file called fiofile on the F:\ Drive in Windows then read the file.  Notice that the specification is “Driveletter” “Backslash” “Colon” “Filename” In fio terms we are “escaping” the : which fio traditionally uses as […]

    Using rwmixread and rate_iops in fio

    Published: (Updated: ) in fio, by . 2 Comments on Using rwmixread and rate_iops in fio.

    Creating a mixed read/write workload with fio can be a bit confusing. Assume we want to create a fixed rate workload of 100 IOPS split 70:30 between reads and writes. TL;DR Specify the rate directly with rate_iops=<read-rate>,<write-rate> do not try to use rwmixread with rate_iops. For the example above use. rate_iops=70,30 Additionally older versions of […]

    Understanding fio norandommap and randrepeat parameters

    Published: (Updated: ) in fio, by . 2 Comments on Understanding fio norandommap and randrepeat parameters.

    The parameters norandommap and randrepeat significantly change the way that repeated random IO workloads will be executed, and also can meaningfully change the results of an experiment due to the way that caching works on most storage system.

    Creating compressible data with fio.

    Published: (Updated: ) in fio, , , , by .

    Today I used fio to create some compressible data to test on my Nutanix nodes.  I ended up using the following fio params to get what I wanted.   buffer_compress_percentage=50 refill_buffers buffer_pattern=0xdeadbeef buffer_compress_percentage does what you’d expect and specifies how compressible the data is refill_buffers Is required to make the above compress percentage do what you’d […]

    Multiple devices/jobs in fio

    Published: (Updated: ) in fio, , by .

    If your underlying filesystem/devices have different response times (e.g. some devices are cached – or are on SSD) and others are on spinning disk, then the behavior of fio can be quite different depending on how the fio config file is specified.  Typically there are two approaches 1) Have a single “job” that has multiple […]