commit a7c41e264bac6e5a01d7b54ba171d89c2a0baef9 Author: Yi-Ting Shih Date: Mon Apr 14 09:02:16 2025 +0800 Feat: complete the docs diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ddebfce --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +**/testdisk diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..2aa7d37 --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "docs/template"] + path = docs/template + url = ../typst-template diff --git a/HW1_111550013.zip b/HW1_111550013.zip new file mode 100644 index 0000000..b3ff237 Binary files /dev/null and b/HW1_111550013.zip differ diff --git a/bonus/bonus.fio b/bonus/bonus.fio new file mode 100644 index 0000000..43fc32c --- /dev/null +++ b/bonus/bonus.fio @@ -0,0 +1,23 @@ +[global] +bs=8m +ioengine=libaio +iodepth=64 +size=1G +direct=1 +stonewall + +[ssd-read] +filename=/dev/nvme1n1 +rw=read + +[ssd-randread] +filename=/dev/nvme1n1 +rw=randread + +[hdd-read] +filename=/dev/sda +rw=read + +[hdd-randread] +filename=/dev/sda +rw=randread diff --git a/bonus/bonus.output b/bonus/bonus.output new file mode 100644 index 0000000..82146d8 --- /dev/null +++ b/bonus/bonus.output @@ -0,0 +1,99 @@ +ssd-read: (g=0): rw=read, bs=(R) 8192KiB-8192KiB, (W) 8192KiB-8192KiB, (T) 8192KiB-8192KiB, ioengine=libaio, iodepth=64 +ssd-randread: (g=1): rw=randread, bs=(R) 8192KiB-8192KiB, (W) 8192KiB-8192KiB, (T) 8192KiB-8192KiB, ioengine=libaio, iodepth=64 +hdd-read: (g=2): rw=read, bs=(R) 8192KiB-8192KiB, (W) 8192KiB-8192KiB, (T) 8192KiB-8192KiB, ioengine=libaio, iodepth=64 +hdd-randread: (g=3): rw=randread, bs=(R) 8192KiB-8192KiB, (W) 8192KiB-8192KiB, (T) 8192KiB-8192KiB, ioengine=libaio, iodepth=64 +fio-3.39 +Starting 4 processes + +ssd-read: (groupid=0, jobs=1): err= 0: pid=314662: Mon Apr 14 08:43:57 2025 + read: IOPS=412, BW=3303MiB/s (3464MB/s)(1024MiB/310msec) + slat (usec): min=46, max=7314, avg=1366.16, stdev=1757.98 + clat (msec): min=14, max=255, avg=140.27, stdev=65.17 + lat (msec): min=14, max=257, avg=141.63, stdev=65.69 + clat percentiles (msec): + | 1.00th=[ 17], 5.00th=[ 44], 10.00th=[ 80], 20.00th=[ 85], + | 30.00th=[ 89], 40.00th=[ 94], 50.00th=[ 110], 60.00th=[ 167], + | 70.00th=[ 207], 80.00th=[ 209], 90.00th=[ 226], 95.00th=[ 241], + | 99.00th=[ 253], 99.50th=[ 255], 99.90th=[ 255], 99.95th=[ 255], + | 99.99th=[ 255] + lat (msec) : 20=1.56%, 50=6.25%, 100=36.72%, 250=53.12%, 500=2.34% + cpu : usr=0.00%, sys=10.36%, ctx=176, majf=0, minf=775 + IO depths : 1=0.8%, 2=1.6%, 4=3.1%, 8=6.2%, 16=12.5%, 32=25.0%, >=64=50.8% + submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + complete : 0=0.0%, 4=98.5%, 8=0.0%, 16=0.0%, 32=0.0%, 64=1.5%, >=64=0.0% + issued rwts: total=128,0,0,0 short=0,0,0,0 dropped=0,0,0,0 + latency : target=0, window=0, percentile=100.00%, depth=64 +ssd-randread: (groupid=1, jobs=1): err= 0: pid=314663: Mon Apr 14 08:43:57 2025 + read: IOPS=415, BW=3325MiB/s (3486MB/s)(1024MiB/308msec) + slat (usec): min=44, max=7084, avg=1425.85, stdev=1528.22 + clat (msec): min=12, max=236, avg=139.74, stdev=49.47 + lat (msec): min=12, max=238, avg=141.17, stdev=49.75 + clat percentiles (msec): + | 1.00th=[ 26], 5.00th=[ 79], 10.00th=[ 84], 20.00th=[ 96], + | 30.00th=[ 108], 40.00th=[ 118], 50.00th=[ 123], 60.00th=[ 176], + | 70.00th=[ 176], 80.00th=[ 178], 90.00th=[ 207], 95.00th=[ 222], + | 99.00th=[ 234], 99.50th=[ 236], 99.90th=[ 236], 99.95th=[ 236], + | 99.99th=[ 236] + lat (msec) : 20=0.78%, 50=2.34%, 100=21.09%, 250=75.78% + cpu : usr=0.00%, sys=9.45%, ctx=222, majf=0, minf=265 + IO depths : 1=0.8%, 2=1.6%, 4=3.1%, 8=6.2%, 16=12.5%, 32=25.0%, >=64=50.8% + submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + complete : 0=0.0%, 4=98.5%, 8=0.0%, 16=0.0%, 32=0.0%, 64=1.5%, >=64=0.0% + issued rwts: total=128,0,0,0 short=0,0,0,0 dropped=0,0,0,0 + latency : target=0, window=0, percentile=100.00%, depth=64 +hdd-read: (groupid=2, jobs=1): err= 0: pid=314664: Mon Apr 14 08:43:57 2025 + read: IOPS=20, BW=167MiB/s (175MB/s)(1024MiB/6140msec) + slat (usec): min=342, max=528428, avg=44674.51, stdev=44631.06 + clat (msec): min=419, max=3260, avg=2302.17, stdev=775.39 + lat (msec): min=466, max=3304, avg=2346.84, stdev=776.16 + clat percentiles (msec): + | 1.00th=[ 468], 5.00th=[ 684], 10.00th=[ 936], 20.00th=[ 1485], + | 30.00th=[ 2072], 40.00th=[ 2668], 50.00th=[ 2769], 60.00th=[ 2769], + | 70.00th=[ 2769], 80.00th=[ 2802], 90.00th=[ 2970], 95.00th=[ 3071], + | 99.00th=[ 3205], 99.50th=[ 3272], 99.90th=[ 3272], 99.95th=[ 3272], + | 99.99th=[ 3272] + bw ( KiB/s): min=114688, max=1048576, per=100.00%, avg=299644.71, stdev=331555.65, samples=7 + iops : min= 14, max= 128, avg=36.57, stdev=40.48, samples=7 + lat (msec) : 500=1.56%, 750=4.69%, 1000=4.69%, 2000=17.97%, >=2000=71.09% + cpu : usr=0.00%, sys=0.52%, ctx=837, majf=0, minf=265 + IO depths : 1=0.8%, 2=1.6%, 4=3.1%, 8=6.2%, 16=12.5%, 32=25.0%, >=64=50.8% + submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + complete : 0=0.0%, 4=98.5%, 8=0.0%, 16=0.0%, 32=0.0%, 64=1.5%, >=64=0.0% + issued rwts: total=128,0,0,0 short=0,0,0,0 dropped=0,0,0,0 + latency : target=0, window=0, percentile=100.00%, depth=64 +hdd-randread: (groupid=3, jobs=1): err= 0: pid=314666: Mon Apr 14 08:43:57 2025 + read: IOPS=20, BW=161MiB/s (169MB/s)(1024MiB/6366msec) + slat (usec): min=358, max=108902, avg=46194.96, stdev=14404.86 + clat (msec): min=451, max=3702, avg=2565.65, stdev=871.70 + lat (msec): min=494, max=3754, avg=2611.84, stdev=870.24 + clat percentiles (msec): + | 1.00th=[ 493], 5.00th=[ 735], 10.00th=[ 1036], 20.00th=[ 1687], + | 30.00th=[ 2366], 40.00th=[ 2836], 50.00th=[ 2937], 60.00th=[ 3004], + | 70.00th=[ 3104], 80.00th=[ 3239], 90.00th=[ 3373], 95.00th=[ 3473], + | 99.00th=[ 3675], 99.50th=[ 3708], 99.90th=[ 3708], 99.95th=[ 3708], + | 99.99th=[ 3708] + bw ( KiB/s): min=114688, max=163840, per=92.36%, avg=152137.14, stdev=18230.43, samples=7 + iops : min= 14, max= 20, avg=18.57, stdev= 2.23, samples=7 + lat (msec) : 500=1.56%, 750=3.91%, 1000=3.91%, 2000=15.62%, >=2000=75.00% + cpu : usr=0.02%, sys=0.49%, ctx=835, majf=0, minf=264 + IO depths : 1=0.8%, 2=1.6%, 4=3.1%, 8=6.2%, 16=12.5%, 32=25.0%, >=64=50.8% + submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + complete : 0=0.0%, 4=98.5%, 8=0.0%, 16=0.0%, 32=0.0%, 64=1.5%, >=64=0.0% + issued rwts: total=128,0,0,0 short=0,0,0,0 dropped=0,0,0,0 + latency : target=0, window=0, percentile=100.00%, depth=64 + +Run status group 0 (all jobs): + READ: bw=3303MiB/s (3464MB/s), 3303MiB/s-3303MiB/s (3464MB/s-3464MB/s), io=1024MiB (1074MB), run=310-310msec + +Run status group 1 (all jobs): + READ: bw=3325MiB/s (3486MB/s), 3325MiB/s-3325MiB/s (3486MB/s-3486MB/s), io=1024MiB (1074MB), run=308-308msec + +Run status group 2 (all jobs): + READ: bw=167MiB/s (175MB/s), 167MiB/s-167MiB/s (175MB/s-175MB/s), io=1024MiB (1074MB), run=6140-6140msec + +Run status group 3 (all jobs): + READ: bw=161MiB/s (169MB/s), 161MiB/s-161MiB/s (169MB/s-169MB/s), io=1024MiB (1074MB), run=6366-6366msec + +Disk stats (read/write): + nvme1n1: ios=8036/19, sectors=4114432/504, merge=0/1, ticks=658566/8, in_queue=658578, util=61.58% + sda: ios=1781/0, sectors=4169216/0, merge=0/0, ticks=767527/0, in_queue=767527, util=97.16% diff --git a/docs/bibliography.yml b/docs/bibliography.yml new file mode 100644 index 0000000..ca67322 --- /dev/null +++ b/docs/bibliography.yml @@ -0,0 +1,20 @@ +archlinux: + type: Web + title: ArchLinux, a simple, lightweight distribution + url: https://archlinux.org/ +btrfs: + type: Web + title: Btrfs, a modern copy on write filesystem for Linux + url: https://btrfs.readthedocs.io/en/latest/ +ct1000p3pssd8: + type: Web + title: Crucial P3 Plus 1TB PCIe M.2 2280 SSD + url: https://www.crucial.tw/ssd/p3-plus/ct1000p3pssd8 +wd10ezex: + type: Web + title: WD Blue PC Desktop Hard Drive - 1TB + url: https://www.westerndigital.com/products/internal-drives/wd-blue-desktop-sata-hdd?sku=WD10EZEX +tufh470: + type: Web + title: TUF Gaming H470 Pro WiFi Motherboard + url: https://www.asus.com/tw/motherboards-components/motherboards/tuf-gaming/tuf-gaming-h470-pro-wi-fi/techspec/ diff --git a/docs/code/bonus.output b/docs/code/bonus.output new file mode 120000 index 0000000..fd0e6fa --- /dev/null +++ b/docs/code/bonus.output @@ -0,0 +1 @@ +../../bonus/bonus.output \ No newline at end of file diff --git a/docs/code/q0.output b/docs/code/q0.output new file mode 120000 index 0000000..f62b2a2 --- /dev/null +++ b/docs/code/q0.output @@ -0,0 +1 @@ +../../q0/q0.output \ No newline at end of file diff --git a/docs/code/q1.output b/docs/code/q1.output new file mode 120000 index 0000000..3055666 --- /dev/null +++ b/docs/code/q1.output @@ -0,0 +1 @@ +../../q1/q1.output \ No newline at end of file diff --git a/docs/code/q2.output b/docs/code/q2.output new file mode 120000 index 0000000..fd2c0ea --- /dev/null +++ b/docs/code/q2.output @@ -0,0 +1 @@ +../../q2/q2.output \ No newline at end of file diff --git a/docs/code/q3.output b/docs/code/q3.output new file mode 120000 index 0000000..84df815 --- /dev/null +++ b/docs/code/q3.output @@ -0,0 +1 @@ +../../q3/q3.output \ No newline at end of file diff --git a/docs/code/q4.output b/docs/code/q4.output new file mode 120000 index 0000000..446e939 --- /dev/null +++ b/docs/code/q4.output @@ -0,0 +1 @@ +../../q4/q4.output \ No newline at end of file diff --git a/docs/code/q5.output b/docs/code/q5.output new file mode 120000 index 0000000..c60c21f --- /dev/null +++ b/docs/code/q5.output @@ -0,0 +1 @@ +../../q5/q5.output \ No newline at end of file diff --git a/docs/code/q6.output b/docs/code/q6.output new file mode 120000 index 0000000..79f7162 --- /dev/null +++ b/docs/code/q6.output @@ -0,0 +1 @@ +../../q6/q6.output \ No newline at end of file diff --git a/docs/code/q7.output b/docs/code/q7.output new file mode 120000 index 0000000..8c27bc8 --- /dev/null +++ b/docs/code/q7.output @@ -0,0 +1 @@ +../../q7/q7.output \ No newline at end of file diff --git a/docs/main.pdf b/docs/main.pdf new file mode 100644 index 0000000..0d6bfcb Binary files /dev/null and b/docs/main.pdf differ diff --git a/docs/main.typ b/docs/main.typ new file mode 100644 index 0000000..2682a81 --- /dev/null +++ b/docs/main.typ @@ -0,0 +1,188 @@ +#import "template/styles.typ": document +#show: document.with( + title: "Memory and Storage System - HW1 FIO", + authors: (( + name: "Yi-Ting Shih (111550013)", + affiliation: "National Yang Ming Chaio Tung University", + email: "ytshih@cs.nycu.edu.tw", + ),), +) + += Specifications + +All the read operations except bonus are tested on ssd. \ +Model: Micron CT1000P3PSSD8@ct1000p3pssd8 (Crucial P3 Plus) + +All the write operations are tested on disk files, which are in a RAID 1 +btrfs@btrfs filesystem. + +The tested operating system was Arch Linux@archlinux, which was running Linux +kernel 6.14.2.arch1-1. + += Questions + +== Q0. Example + +=== Result +#raw(read("code/q0.output")) + +== Q1. Read vs. Randread + +=== Result +#raw(read("code/q1.output")) + +=== Question +Is there any significant difference between read and randread? Why or why not? +Please justify your answer in brief. + +=== Answer +_read_ is significantly faster than _randread_. + +The SSD controller might be optimized for sequential access, such as leveraging +internal parallelism more effectively, or have lower command overheader perunit +of data for sequential reads. + +== Q2. Write vs. Randwrite + +=== Result +#raw(read("code/q2.output")) + +=== Question +Is there any significant difference between write and randwrite? Why or why not? +Please justify your answer in brief. + +=== Answer +There is no significant difference between _write_ and _randwrite_. + +The SSD controller will go through the page / block translation process no +matter there is write or random write access. Therefore there is no significant +difference. + +Also, I use disk file to test the write operation, which is on a btrfs +filesystem. There are cache on btrfs@btrfs or page cache so the data might not +be actually write to the SSD. + +== Q3. Forward write vs. Backward write + +=== Result +#raw(read("code/q3.output")) + +=== Question +Is there any significant difference between forward and backward write? Why or +why not? Please justify your answer in brief. + +=== Answer +There is no significant difference between _forward write_ and _backward write_. + +The reason is same as the previous question. + +== Q4. Buffered read vs. Nonbuffered read + +=== Result +#raw(read("code/q4.output")) + +=== Question ++ Is there any significant difference between buffered and nonbuffered + sequential read? Why or why not? Please justify your answer in brief. ++ Replace sequential read with random read. Is there any significant difference + between buffered and nonbuffered random read? Why or why not? Please justify + your answer in brief. + +=== Answer +- _buffered sequential read_ is significantly faster than _non-buffered + sequential read_. +- There is no significant difference between _buffered random read_ and + _non-buffered random read_. + +The data can be buffered by _read-ahead_ for sequential read operation. This +cannot be done for random read operation, because the next read operation +cannot be predicted. + +== Q5. LBA + +=== Result +#raw(read("code/q5.output")) + +=== Question +Is there any bandwidth trend between these jobs? Why or why not? Please justify +your answer in brief. You can also experiment with the size of the file. + +=== Answer +The job where `offset=80%` is faster than `offset=60%`, and `offset=60%` is +faster than the rest of the jobs. + +The identified response presents an analysis of experimental results; the +underlying theoretical framework remains unclear, necessitating further +investigation. + +== Q6. Blocksize + +=== Result +#raw(read("code/q6.output")) + +=== Question + ++ Is there any significant difference between 4k and 1k read? Why or why not? + Please justify your answer in brief. ++ If you want to achieve the best performance in the condition above, how would + you modify `blocksize`? Explain it briefly. + +=== Answer +- _4k read_ is significantly faster than _1k read_ in terms of bandwidth and + latency. +- The bandwidth can be increased by changing `blocksize` to up to `8m`. + +Larger `blocksize` might be useful when doing large sequential read. + +== Q7. Fastest nonbuffered read + +=== Result +#raw(read("code/q7.output")) + +=== Question +Please explain how you achieve the fastest 1G nonbuffered read in brief. + +=== Answer +According to the result in the previous questions, namely, Q5 and Q6, the +fastest non-buffered read happens when `offset=80%` and `blocksize=8m`. + +Furthermore, I have tested the difference between `ioengine=psync`, which is +the default for fio, and `ioengine=libaio`, which is Linux native asynchoronous +I/O. The result shows that `ioengine=libaio` is better in terms of bandwidth. + +For asynchoronous I/O, I also tested the impact of the `iodepth`. The result +showes that `iodepth=64` will reach the peak bandwidth. + +Therefore, the fastest non-buffered 1G read should be the combination of +`offset=80%`, `blocksize=8m`, `ioengine=libaio`, and `iodepth=64`. + +== Bonus + +=== Result +#raw(read("code/bonus.output")) + +=== Question ++ Compare with multiple kinds of storage devices. \ + Is there any significant difference between read/randread on storage devices? + Why or why not? Please justify your answer in brief. ++ Find the specs of your own hardware that you tested on. \ + Is your hardware running to spec? If not, could you come up with a possible + theory? + +=== Answer +This experiment include two storage devices, Crucial P3 Plus M.2 +SSD@ct1000p3pssd8 (Disk 1) and WD Blue HDD@wd10ezex (Disk 2). The hardware +sequential read rate for Disk 1 is 5000MB/s. And the hardware transfer rate for +Disk 2 is up to 150MB/s. + +The result for the experiment shows that ++ Disk 1 (SSD) is significantly faster than Disk 2 (HDD). ++ Disk 1 is quite a bit slower than the hardware spec (about 3400MB/s). ++ Disk 2 is faster than the hardware spec (about 170MB/s). + +The reason for the underperformance of Disk 1 might be +- I'm using Disk 1 to run my OS at the same time, which interferes the result. +- Disk 1 had been used for over 4 years and had used up 50% of the capacity. + In constract, Disk 2 was seldom used and didn't used up any of the capacity. + +#bibliography("bibliography.yml") diff --git a/docs/template b/docs/template new file mode 160000 index 0000000..bc97b8b --- /dev/null +++ b/docs/template @@ -0,0 +1 @@ +Subproject commit bc97b8bb81723287a011dec62bd4dd71d1e1799c diff --git a/flake.lock b/flake.lock new file mode 100644 index 0000000..c8a0cad --- /dev/null +++ b/flake.lock @@ -0,0 +1,27 @@ +{ + "nodes": { + "nixpkgs": { + "locked": { + "lastModified": 1744232761, + "narHash": "sha256-gbl9hE39nQRpZaLjhWKmEu5ejtQsgI5TWYrIVVJn30U=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "f675531bc7e6657c10a18b565cfebd8aa9e24c14", + "type": "github" + }, + "original": { + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", + "type": "github" + } + }, + "root": { + "inputs": { + "nixpkgs": "nixpkgs" + } + } + }, + "root": "root", + "version": 7 +} diff --git a/flake.nix b/flake.nix new file mode 100644 index 0000000..193a50e --- /dev/null +++ b/flake.nix @@ -0,0 +1,27 @@ +{ + description = "Nix flake for running fio (Flexible I/O Tester)"; + + inputs = { + nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable"; + }; + + outputs = { self, nixpkgs, ... }: + let + system = "x86_64-linux"; + pkgs = import nixpkgs { + inherit system; + config.allowUnfree = true; + }; + in + { + devShells.${system}.default = pkgs.mkShell { + packages = with pkgs; [ + fish + pkgs.fio + ]; + shellHook = '' + exec fish + ''; + }; + }; +} diff --git a/q0/q0.fio b/q0/q0.fio new file mode 100644 index 0000000..a4ca07c --- /dev/null +++ b/q0/q0.fio @@ -0,0 +1,8 @@ +[global] +filename=/dev/nvme1n1 +bs=4K +size=1g +direct=1 + +[job1] +rw=read diff --git a/q0/q0.output b/q0/q0.output new file mode 100644 index 0000000..b4573b2 --- /dev/null +++ b/q0/q0.output @@ -0,0 +1,31 @@ +job1: (g=0): rw=read, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=psync, iodepth=1 +fio-3.39 +Starting 1 process + +job1: (groupid=0, jobs=1): err= 0: pid=22642: Sat Apr 12 19:28:44 2025 + read: IOPS=60.8k, BW=238MiB/s (249MB/s)(1024MiB/4311msec) + clat (usec): min=9, max=2086, avg=16.20, stdev= 9.84 + lat (usec): min=9, max=2087, avg=16.23, stdev= 9.84 + clat percentiles (nsec): + | 1.00th=[11712], 5.00th=[11840], 10.00th=[12096], 20.00th=[12224], + | 30.00th=[12352], 40.00th=[12352], 50.00th=[12480], 60.00th=[12736], + | 70.00th=[13504], 80.00th=[14912], 90.00th=[25728], 95.00th=[36608], + | 99.00th=[48896], 99.50th=[64256], 99.90th=[71168], 99.95th=[71168], + | 99.99th=[88576] + bw ( KiB/s): min=210008, max=250232, per=99.85%, avg=242862.00, stdev=13417.57, samples=8 + iops : min=52502, max=62558, avg=60715.50, stdev=3354.39, samples=8 + lat (usec) : 10=0.03%, 20=81.94%, 50=17.13%, 100=0.90%, 250=0.01% + lat (usec) : 500=0.01%, 750=0.01% + lat (msec) : 4=0.01% + cpu : usr=2.39%, sys=7.68%, ctx=262148, majf=0, minf=9 + IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% + submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + issued rwts: total=262144,0,0,0 short=0,0,0,0 dropped=0,0,0,0 + latency : target=0, window=0, percentile=100.00%, depth=1 + +Run status group 0 (all jobs): + READ: bw=238MiB/s (249MB/s), 238MiB/s-238MiB/s (249MB/s-249MB/s), io=1024MiB (1074MB), run=4311-4311msec + +Disk stats (read/write): + nvme1n1: ios=251884/14, sectors=2015072/536, merge=0/0, ticks=3534/6, in_queue=3543, util=81.46% diff --git a/q1/q1.fio b/q1/q1.fio new file mode 100644 index 0000000..2a43b0f --- /dev/null +++ b/q1/q1.fio @@ -0,0 +1,12 @@ +[global] +filename=/dev/nvme1n1 +bs=4k +size=64m +direct=1 +stonewall + +[read] +rw=read + +[randread] +rw=randread diff --git a/q1/q1.output b/q1/q1.output new file mode 100644 index 0000000..d4696a2 --- /dev/null +++ b/q1/q1.output @@ -0,0 +1,51 @@ +read: (g=0): rw=read, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=psync, iodepth=1 +randread: (g=1): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=psync, iodepth=1 +fio-3.39 +Starting 2 processes + +read: (groupid=0, jobs=1): err= 0: pid=23955: Sat Apr 12 19:36:41 2025 + read: IOPS=62.1k, BW=242MiB/s (254MB/s)(64.0MiB/264msec) + clat (usec): min=10, max=913, avg=15.86, stdev=11.07 + lat (usec): min=10, max=913, avg=15.89, stdev=11.07 + clat percentiles (nsec): + | 1.00th=[10176], 5.00th=[11840], 10.00th=[12096], 20.00th=[12224], + | 30.00th=[12224], 40.00th=[12224], 50.00th=[12352], 60.00th=[12480], + | 70.00th=[12992], 80.00th=[14016], 90.00th=[25472], 95.00th=[37632], + | 99.00th=[48896], 99.50th=[51456], 99.90th=[65280], 99.95th=[69120], + | 99.99th=[93696] + lat (usec) : 20=83.84%, 50=15.50%, 100=0.66%, 1000=0.01% + cpu : usr=3.42%, sys=6.84%, ctx=16384, majf=0, minf=9 + IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% + submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + issued rwts: total=16384,0,0,0 short=0,0,0,0 dropped=0,0,0,0 + latency : target=0, window=0, percentile=100.00%, depth=1 +randread: (groupid=1, jobs=1): err= 0: pid=23956: Sat Apr 12 19:36:41 2025 + read: IOPS=15.4k, BW=60.0MiB/s (62.9MB/s)(64.0MiB/1067msec) + clat (usec): min=10, max=2157, avg=64.80, stdev=22.68 + lat (usec): min=10, max=2157, avg=64.83, stdev=22.68 + clat percentiles (usec): + | 1.00th=[ 11], 5.00th=[ 63], 10.00th=[ 65], 20.00th=[ 65], + | 30.00th=[ 65], 40.00th=[ 65], 50.00th=[ 65], 60.00th=[ 65], + | 70.00th=[ 70], 80.00th=[ 71], 90.00th=[ 72], 95.00th=[ 72], + | 99.00th=[ 73], 99.50th=[ 75], 99.90th=[ 113], 99.95th=[ 165], + | 99.99th=[ 914] + bw ( KiB/s): min=61312, max=61784, per=100.00%, avg=61548.00, stdev=333.75, samples=2 + iops : min=15328, max=15446, avg=15387.00, stdev=83.44, samples=2 + lat (usec) : 20=4.03%, 100=95.65%, 250=0.27%, 500=0.02%, 1000=0.01% + lat (msec) : 4=0.01% + cpu : usr=0.66%, sys=2.06%, ctx=16390, majf=0, minf=8 + IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% + submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + issued rwts: total=16384,0,0,0 short=0,0,0,0 dropped=0,0,0,0 + latency : target=0, window=0, percentile=100.00%, depth=1 + +Run status group 0 (all jobs): + READ: bw=242MiB/s (254MB/s), 242MiB/s-242MiB/s (254MB/s-254MB/s), io=64.0MiB (67.1MB), run=264-264msec + +Run status group 1 (all jobs): + READ: bw=60.0MiB/s (62.9MB/s), 60.0MiB/s-60.0MiB/s (62.9MB/s-62.9MB/s), io=64.0MiB (67.1MB), run=1067-1067msec + +Disk stats (read/write): + nvme1n1: ios=30190/5, sectors=241528/376, merge=0/0, ticks=1083/69, in_queue=1153, util=72.01% diff --git a/q2/q2.fio b/q2/q2.fio new file mode 100644 index 0000000..d303935 --- /dev/null +++ b/q2/q2.fio @@ -0,0 +1,12 @@ +[global] +filename=testdisk +bs=4k +size=64m +direct=1 +stonewall + +[write] +rw=write + +[randwrite] +rw=randwrite diff --git a/q2/q2.output b/q2/q2.output new file mode 100644 index 0000000..05371b6 --- /dev/null +++ b/q2/q2.output @@ -0,0 +1,48 @@ +write: (g=0): rw=write, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=psync, iodepth=1 +randwrite: (g=1): rw=randwrite, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=psync, iodepth=1 +fio-3.39 +Starting 2 processes + +write: (groupid=0, jobs=1): err= 0: pid=12418: Sat Apr 12 18:34:15 2025 + write: IOPS=33.1k, BW=129MiB/s (136MB/s)(64.0MiB/495msec); 0 zone resets + clat (usec): min=18, max=2971, avg=29.41, stdev=26.49 + lat (usec): min=19, max=2972, avg=29.55, stdev=26.49 + clat percentiles (usec): + | 1.00th=[ 24], 5.00th=[ 26], 10.00th=[ 26], 20.00th=[ 27], + | 30.00th=[ 27], 40.00th=[ 28], 50.00th=[ 28], 60.00th=[ 28], + | 70.00th=[ 29], 80.00th=[ 31], 90.00th=[ 32], 95.00th=[ 32], + | 99.00th=[ 118], 99.50th=[ 131], 99.90th=[ 208], 99.95th=[ 225], + | 99.99th=[ 619] + lat (usec) : 20=0.01%, 50=98.83%, 100=0.10%, 250=1.01%, 500=0.03% + lat (usec) : 750=0.01% + lat (msec) : 4=0.01% + cpu : usr=3.04%, sys=36.44%, ctx=37026, majf=0, minf=6 + IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% + submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + issued rwts: total=0,16384,0,0 short=0,0,0,0 dropped=0,0,0,0 + latency : target=0, window=0, percentile=100.00%, depth=1 +randwrite: (groupid=1, jobs=1): err= 0: pid=12423: Sat Apr 12 18:34:15 2025 + write: IOPS=39.7k, BW=155MiB/s (162MB/s)(64.0MiB/413msec); 0 zone resets + clat (usec): min=16, max=33415, avg=24.41, stdev=261.81 + lat (usec): min=16, max=33415, avg=24.53, stdev=261.81 + clat percentiles (usec): + | 1.00th=[ 18], 5.00th=[ 22], 10.00th=[ 22], 20.00th=[ 23], + | 30.00th=[ 23], 40.00th=[ 23], 50.00th=[ 23], 60.00th=[ 23], + | 70.00th=[ 23], 80.00th=[ 23], 90.00th=[ 23], 95.00th=[ 23], + | 99.00th=[ 25], 99.50th=[ 25], 99.90th=[ 28], 99.95th=[ 31], + | 99.99th=[ 2835] + lat (usec) : 20=3.01%, 50=96.97%, 250=0.01% + lat (msec) : 4=0.01%, 50=0.01% + cpu : usr=4.13%, sys=31.55%, ctx=16389, majf=0, minf=7 + IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% + submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + issued rwts: total=0,16384,0,0 short=0,0,0,0 dropped=0,0,0,0 + latency : target=0, window=0, percentile=100.00%, depth=1 + +Run status group 0 (all jobs): + WRITE: bw=129MiB/s (136MB/s), 129MiB/s-129MiB/s (136MB/s-136MB/s), io=64.0MiB (67.1MB), run=495-495msec + +Run status group 1 (all jobs): + WRITE: bw=155MiB/s (162MB/s), 155MiB/s-155MiB/s (162MB/s-162MB/s), io=64.0MiB (67.1MB), run=413-413msec diff --git a/q3/q3.fio b/q3/q3.fio new file mode 100644 index 0000000..d7b9a23 --- /dev/null +++ b/q3/q3.fio @@ -0,0 +1,12 @@ +[global] +filename=testdisk +bs=4k +size=64m +direct=1 +stonewall + +[forward] +rw=write + +[backward] +rw=write:-8k diff --git a/q3/q3.output b/q3/q3.output new file mode 100644 index 0000000..ed80423 --- /dev/null +++ b/q3/q3.output @@ -0,0 +1,46 @@ +forward: (g=0): rw=write, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=psync, iodepth=1 +backward: (g=1): rw=write, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=psync, iodepth=1 +fio-3.39 +Starting 2 processes + +forward: (groupid=0, jobs=1): err= 0: pid=12464: Sat Apr 12 18:34:17 2025 + write: IOPS=42.8k, BW=167MiB/s (175MB/s)(64.0MiB/383msec); 0 zone resets + clat (usec): min=15, max=2975, avg=22.54, stdev=23.29 + lat (usec): min=16, max=2976, avg=22.71, stdev=23.30 + clat percentiles (usec): + | 1.00th=[ 17], 5.00th=[ 18], 10.00th=[ 22], 20.00th=[ 23], + | 30.00th=[ 23], 40.00th=[ 23], 50.00th=[ 23], 60.00th=[ 23], + | 70.00th=[ 23], 80.00th=[ 23], 90.00th=[ 24], 95.00th=[ 24], + | 99.00th=[ 28], 99.50th=[ 37], 99.90th=[ 48], 99.95th=[ 58], + | 99.99th=[ 322] + lat (usec) : 20=5.47%, 50=94.43%, 100=0.08%, 500=0.01% + lat (msec) : 4=0.01% + cpu : usr=4.19%, sys=31.41%, ctx=16387, majf=0, minf=6 + IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% + submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + issued rwts: total=0,16384,0,0 short=0,0,0,0 dropped=0,0,0,0 + latency : target=0, window=0, percentile=100.00%, depth=1 +backward: (groupid=1, jobs=1): err= 0: pid=12474: Sat Apr 12 18:34:17 2025 + write: IOPS=41.6k, BW=162MiB/s (170MB/s)(64.0MiB/394msec); 0 zone resets + clat (usec): min=15, max=726, avg=23.17, stdev=10.51 + lat (usec): min=15, max=727, avg=23.34, stdev=10.51 + clat percentiles (usec): + | 1.00th=[ 17], 5.00th=[ 22], 10.00th=[ 22], 20.00th=[ 23], + | 30.00th=[ 23], 40.00th=[ 23], 50.00th=[ 23], 60.00th=[ 23], + | 70.00th=[ 23], 80.00th=[ 24], 90.00th=[ 26], 95.00th=[ 26], + | 99.00th=[ 38], 99.50th=[ 41], 99.90th=[ 59], 99.95th=[ 85], + | 99.99th=[ 693] + lat (usec) : 20=4.46%, 50=95.36%, 100=0.14%, 250=0.02%, 750=0.02% + cpu : usr=4.33%, sys=32.82%, ctx=16389, majf=0, minf=7 + IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% + submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + issued rwts: total=0,16384,0,0 short=0,0,0,0 dropped=0,0,0,0 + latency : target=0, window=0, percentile=100.00%, depth=1 + +Run status group 0 (all jobs): + WRITE: bw=167MiB/s (175MB/s), 167MiB/s-167MiB/s (175MB/s-175MB/s), io=64.0MiB (67.1MB), run=383-383msec + +Run status group 1 (all jobs): + WRITE: bw=162MiB/s (170MB/s), 162MiB/s-162MiB/s (170MB/s-170MB/s), io=64.0MiB (67.1MB), run=394-394msec diff --git a/q4/q4.fio b/q4/q4.fio new file mode 100644 index 0000000..75a640f --- /dev/null +++ b/q4/q4.fio @@ -0,0 +1,21 @@ +[global] +filename=/dev/nvme1n1 +bs=4k +size=64m +stonewall + +[sequential_buffered] +buffered=1 +rw=read + +[sequential_nonbuffered] +buffered=0 +rw=read + +[rand_buffered] +buffered=1 +rw=randread + +[rand_nonbuffered] +buffered=0 +rw=randread diff --git a/q4/q4.output b/q4/q4.output new file mode 100644 index 0000000..7df31f5 --- /dev/null +++ b/q4/q4.output @@ -0,0 +1,97 @@ +sequential_buffered: (g=0): rw=read, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=psync, iodepth=1 +sequential_nonbuffered: (g=1): rw=read, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=psync, iodepth=1 +rand_buffered: (g=2): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=psync, iodepth=1 +rand_nonbuffered: (g=3): rw=randread, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=psync, iodepth=1 +fio-3.39 +Starting 4 processes + +sequential_buffered: (groupid=0, jobs=1): err= 0: pid=225892: Sun Apr 13 16:32:18 2025 + read: IOPS=364k, BW=1422MiB/s (1491MB/s)(64.0MiB/45msec) + clat (nsec): min=414, max=244928, avg=2552.07, stdev=17447.08 + lat (nsec): min=434, max=244948, avg=2573.40, stdev=17447.28 + clat percentiles (nsec): + | 1.00th=[ 426], 5.00th=[ 434], 10.00th=[ 438], 20.00th=[ 446], + | 30.00th=[ 450], 40.00th=[ 454], 50.00th=[ 462], 60.00th=[ 474], + | 70.00th=[ 490], 80.00th=[ 506], 90.00th=[ 556], 95.00th=[ 652], + | 99.00th=[118272], 99.50th=[154624], 99.90th=[211968], 99.95th=[224256], + | 99.99th=[238592] + lat (nsec) : 500=77.34%, 750=19.23%, 1000=1.57% + lat (usec) : 2=0.21%, 4=0.06%, 10=0.01%, 20=0.01%, 50=0.12% + lat (usec) : 100=0.31%, 250=1.15% + cpu : usr=6.82%, sys=34.09%, ctx=246, majf=0, minf=8 + IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% + submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + issued rwts: total=16384,0,0,0 short=0,0,0,0 dropped=0,0,0,0 + latency : target=0, window=0, percentile=100.00%, depth=1 +sequential_nonbuffered: (groupid=1, jobs=1): err= 0: pid=225893: Sun Apr 13 16:32:18 2025 + read: IOPS=35.0k, BW=137MiB/s (143MB/s)(64.0MiB/468msec) + clat (usec): min=10, max=310, avg=28.03, stdev=24.76 + lat (usec): min=10, max=310, avg=28.07, stdev=24.76 + clat percentiles (usec): + | 1.00th=[ 11], 5.00th=[ 13], 10.00th=[ 13], 20.00th=[ 13], + | 30.00th=[ 13], 40.00th=[ 13], 50.00th=[ 14], 60.00th=[ 16], + | 70.00th=[ 25], 80.00th=[ 64], 90.00th=[ 68], 95.00th=[ 73], + | 99.00th=[ 85], 99.50th=[ 122], 99.90th=[ 182], 99.95th=[ 194], + | 99.99th=[ 239] + lat (usec) : 20=65.66%, 50=11.58%, 100=22.11%, 250=0.65%, 500=0.01% + cpu : usr=2.36%, sys=5.35%, ctx=16388, majf=0, minf=8 + IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% + submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + issued rwts: total=16384,0,0,0 short=0,0,0,0 dropped=0,0,0,0 + latency : target=0, window=0, percentile=100.00%, depth=1 +rand_buffered: (groupid=2, jobs=1): err= 0: pid=225899: Sun Apr 13 16:32:18 2025 + read: IOPS=14.8k, BW=57.9MiB/s (60.7MB/s)(64.0MiB/1105msec) + clat (usec): min=11, max=740, avg=67.02, stdev=18.23 + lat (usec): min=11, max=740, avg=67.06, stdev=18.23 + clat percentiles (usec): + | 1.00th=[ 12], 5.00th=[ 64], 10.00th=[ 65], 20.00th=[ 67], + | 30.00th=[ 67], 40.00th=[ 67], 50.00th=[ 68], 60.00th=[ 68], + | 70.00th=[ 72], 80.00th=[ 73], 90.00th=[ 74], 95.00th=[ 75], + | 99.00th=[ 92], 99.50th=[ 106], 99.90th=[ 351], 99.95th=[ 429], + | 99.99th=[ 586] + bw ( KiB/s): min=54936, max=58928, per=95.99%, avg=56932.00, stdev=2822.77, samples=2 + iops : min=13734, max=14732, avg=14233.00, stdev=705.69, samples=2 + lat (usec) : 20=4.00%, 50=0.02%, 100=95.34%, 250=0.51%, 500=0.12% + lat (usec) : 750=0.02% + cpu : usr=0.91%, sys=3.71%, ctx=16386, majf=0, minf=7 + IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% + submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + issued rwts: total=16384,0,0,0 short=0,0,0,0 dropped=0,0,0,0 + latency : target=0, window=0, percentile=100.00%, depth=1 +rand_nonbuffered: (groupid=3, jobs=1): err= 0: pid=225901: Sun Apr 13 16:32:18 2025 + read: IOPS=15.1k, BW=59.1MiB/s (62.0MB/s)(64.0MiB/1082msec) + clat (usec): min=10, max=161, avg=65.44, stdev=11.95 + lat (usec): min=10, max=161, avg=65.48, stdev=11.95 + clat percentiles (usec): + | 1.00th=[ 11], 5.00th=[ 63], 10.00th=[ 64], 20.00th=[ 65], + | 30.00th=[ 65], 40.00th=[ 66], 50.00th=[ 67], 60.00th=[ 68], + | 70.00th=[ 71], 80.00th=[ 72], 90.00th=[ 73], 95.00th=[ 74], + | 99.00th=[ 86], 99.50th=[ 94], 99.90th=[ 112], 99.95th=[ 115], + | 99.99th=[ 153] + bw ( KiB/s): min=60152, max=60984, per=100.00%, avg=60568.00, stdev=588.31, samples=2 + iops : min=15038, max=15246, avg=15142.00, stdev=147.08, samples=2 + lat (usec) : 20=4.01%, 50=0.02%, 100=95.66%, 250=0.31% + cpu : usr=1.20%, sys=2.41%, ctx=16388, majf=0, minf=7 + IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% + submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + issued rwts: total=16384,0,0,0 short=0,0,0,0 dropped=0,0,0,0 + latency : target=0, window=0, percentile=100.00%, depth=1 + +Run status group 0 (all jobs): + READ: bw=1422MiB/s (1491MB/s), 1422MiB/s-1422MiB/s (1491MB/s-1491MB/s), io=64.0MiB (67.1MB), run=45-45msec + +Run status group 1 (all jobs): + READ: bw=137MiB/s (143MB/s), 137MiB/s-137MiB/s (143MB/s-143MB/s), io=64.0MiB (67.1MB), run=468-468msec + +Run status group 2 (all jobs): + READ: bw=57.9MiB/s (60.7MB/s), 57.9MiB/s-57.9MiB/s (60.7MB/s-60.7MB/s), io=64.0MiB (67.1MB), run=1105-1105msec + +Run status group 3 (all jobs): + READ: bw=59.1MiB/s (62.0MB/s), 59.1MiB/s-59.1MiB/s (62.0MB/s-62.0MB/s), io=64.0MiB (67.1MB), run=1082-1082msec + +Disk stats (read/write): + nvme1n1: ios=60308/601, sectors=612976/18856, merge=67/21, ticks=3076/2672, in_queue=5750, util=75.21% diff --git a/q5/q5.fio b/q5/q5.fio new file mode 100644 index 0000000..5561bcf --- /dev/null +++ b/q5/q5.fio @@ -0,0 +1,22 @@ +[global] +filename=/dev/nvme1n1 +bs=1m +size=1g +rw=read +direct=1 +stonewall + +[job1] +offset=80% + +[job2] +offset=60% + +[job3] +offset=40% + +[job4] +offset=20% + +[job5] +offset=0 diff --git a/q5/q5.output b/q5/q5.output new file mode 100644 index 0000000..a4b3966 --- /dev/null +++ b/q5/q5.output @@ -0,0 +1,118 @@ +job1: (g=0): rw=read, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T) 1024KiB-1024KiB, ioengine=psync, iodepth=1 +job2: (g=1): rw=read, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T) 1024KiB-1024KiB, ioengine=psync, iodepth=1 +job3: (g=2): rw=read, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T) 1024KiB-1024KiB, ioengine=psync, iodepth=1 +job4: (g=3): rw=read, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T) 1024KiB-1024KiB, ioengine=psync, iodepth=1 +job5: (g=4): rw=read, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T) 1024KiB-1024KiB, ioengine=psync, iodepth=1 +fio-3.39 +Starting 5 processes + +job1: (groupid=0, jobs=1): err= 0: pid=307878: Mon Apr 14 07:49:52 2025 + read: IOPS=2985, BW=2985MiB/s (3130MB/s)(1024MiB/343msec) + clat (usec): min=328, max=1158, avg=333.33, stdev=26.18 + lat (usec): min=328, max=1158, avg=333.41, stdev=26.19 + clat percentiles (usec): + | 1.00th=[ 330], 5.00th=[ 330], 10.00th=[ 330], 20.00th=[ 330], + | 30.00th=[ 330], 40.00th=[ 330], 50.00th=[ 330], 60.00th=[ 334], + | 70.00th=[ 334], 80.00th=[ 334], 90.00th=[ 334], 95.00th=[ 338], + | 99.00th=[ 351], 99.50th=[ 371], 99.90th=[ 400], 99.95th=[ 1156], + | 99.99th=[ 1156] + lat (usec) : 500=99.90% + lat (msec) : 2=0.10% + cpu : usr=0.58%, sys=7.31%, ctx=1037, majf=0, minf=264 + IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% + submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + issued rwts: total=1024,0,0,0 short=0,0,0,0 dropped=0,0,0,0 + latency : target=0, window=0, percentile=100.00%, depth=1 +job2: (groupid=1, jobs=1): err= 0: pid=307879: Mon Apr 14 07:49:52 2025 + read: IOPS=2737, BW=2738MiB/s (2871MB/s)(1024MiB/374msec) + clat (usec): min=327, max=2373, avg=363.76, stdev=97.13 + lat (usec): min=327, max=2373, avg=363.84, stdev=97.13 + clat percentiles (usec): + | 1.00th=[ 330], 5.00th=[ 330], 10.00th=[ 330], 20.00th=[ 330], + | 30.00th=[ 330], 40.00th=[ 330], 50.00th=[ 330], 60.00th=[ 334], + | 70.00th=[ 334], 80.00th=[ 343], 90.00th=[ 490], 95.00th=[ 515], + | 99.00th=[ 553], 99.50th=[ 586], 99.90th=[ 1500], 99.95th=[ 2376], + | 99.99th=[ 2376] + lat (usec) : 500=91.89%, 750=7.91% + lat (msec) : 2=0.10%, 4=0.10% + cpu : usr=0.27%, sys=6.97%, ctx=1024, majf=0, minf=264 + IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% + submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + issued rwts: total=1024,0,0,0 short=0,0,0,0 dropped=0,0,0,0 + latency : target=0, window=0, percentile=100.00%, depth=1 +job3: (groupid=2, jobs=1): err= 0: pid=307880: Mon Apr 14 07:49:52 2025 + read: IOPS=1996, BW=1996MiB/s (2093MB/s)(1024MiB/513msec) + clat (usec): min=330, max=1471, avg=499.92, stdev=66.04 + lat (usec): min=330, max=1472, avg=500.01, stdev=66.05 + clat percentiles (usec): + | 1.00th=[ 334], 5.00th=[ 461], 10.00th=[ 469], 20.00th=[ 478], + | 30.00th=[ 486], 40.00th=[ 494], 50.00th=[ 498], 60.00th=[ 502], + | 70.00th=[ 510], 80.00th=[ 523], 90.00th=[ 537], 95.00th=[ 545], + | 99.00th=[ 652], 99.50th=[ 709], 99.90th=[ 1270], 99.95th=[ 1467], + | 99.99th=[ 1467] + lat (usec) : 500=53.81%, 750=45.70%, 1000=0.10% + lat (msec) : 2=0.39% + cpu : usr=0.78%, sys=4.49%, ctx=1025, majf=0, minf=262 + IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% + submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + issued rwts: total=1024,0,0,0 short=0,0,0,0 dropped=0,0,0,0 + latency : target=0, window=0, percentile=100.00%, depth=1 +job4: (groupid=3, jobs=1): err= 0: pid=307881: Mon Apr 14 07:49:52 2025 + read: IOPS=2000, BW=2000MiB/s (2097MB/s)(1024MiB/512msec) + clat (usec): min=337, max=1452, avg=499.02, stdev=39.01 + lat (usec): min=338, max=1452, avg=499.10, stdev=39.01 + clat percentiles (usec): + | 1.00th=[ 461], 5.00th=[ 465], 10.00th=[ 469], 20.00th=[ 478], + | 30.00th=[ 486], 40.00th=[ 490], 50.00th=[ 498], 60.00th=[ 502], + | 70.00th=[ 506], 80.00th=[ 519], 90.00th=[ 537], 95.00th=[ 545], + | 99.00th=[ 570], 99.50th=[ 603], 99.90th=[ 644], 99.95th=[ 1450], + | 99.99th=[ 1450] + lat (usec) : 500=60.16%, 750=39.75% + lat (msec) : 2=0.10% + cpu : usr=0.00%, sys=5.28%, ctx=1024, majf=0, minf=262 + IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% + submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + issued rwts: total=1024,0,0,0 short=0,0,0,0 dropped=0,0,0,0 + latency : target=0, window=0, percentile=100.00%, depth=1 +job5: (groupid=4, jobs=1): err= 0: pid=307882: Mon Apr 14 07:49:52 2025 + read: IOPS=2000, BW=2000MiB/s (2097MB/s)(1024MiB/512msec) + clat (usec): min=369, max=1216, avg=499.36, stdev=33.86 + lat (usec): min=369, max=1216, avg=499.45, stdev=33.87 + clat percentiles (usec): + | 1.00th=[ 429], 5.00th=[ 465], 10.00th=[ 469], 20.00th=[ 478], + | 30.00th=[ 486], 40.00th=[ 494], 50.00th=[ 498], 60.00th=[ 502], + | 70.00th=[ 506], 80.00th=[ 519], 90.00th=[ 537], 95.00th=[ 545], + | 99.00th=[ 553], 99.50th=[ 586], 99.90th=[ 627], 99.95th=[ 1221], + | 99.99th=[ 1221] + bw ( MiB/s): min= 2002, max= 2002, per=100.00%, avg=2002.00, stdev= 0.00, samples=1 + iops : min= 2002, max= 2002, avg=2002.00, stdev= 0.00, samples=1 + lat (usec) : 500=56.45%, 750=43.46% + lat (msec) : 2=0.10% + cpu : usr=0.00%, sys=5.09%, ctx=1025, majf=0, minf=264 + IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% + submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + issued rwts: total=1024,0,0,0 short=0,0,0,0 dropped=0,0,0,0 + latency : target=0, window=0, percentile=100.00%, depth=1 + +Run status group 0 (all jobs): + READ: bw=2985MiB/s (3130MB/s), 2985MiB/s-2985MiB/s (3130MB/s-3130MB/s), io=1024MiB (1074MB), run=343-343msec + +Run status group 1 (all jobs): + READ: bw=2738MiB/s (2871MB/s), 2738MiB/s-2738MiB/s (2871MB/s-2871MB/s), io=1024MiB (1074MB), run=374-374msec + +Run status group 2 (all jobs): + READ: bw=1996MiB/s (2093MB/s), 1996MiB/s-1996MiB/s (2093MB/s-2093MB/s), io=1024MiB (1074MB), run=513-513msec + +Run status group 3 (all jobs): + READ: bw=2000MiB/s (2097MB/s), 2000MiB/s-2000MiB/s (2097MB/s-2097MB/s), io=1024MiB (1074MB), run=512-512msec + +Run status group 4 (all jobs): + READ: bw=2000MiB/s (2097MB/s), 2000MiB/s-2000MiB/s (2097MB/s-2097MB/s), io=1024MiB (1074MB), run=512-512msec + +Disk stats (read/write): + nvme1n1: ios=19144/231, sectors=9801728/7256, merge=0/4, ticks=6025/353, in_queue=6382, util=61.60% diff --git a/q6/q6.fio b/q6/q6.fio new file mode 100644 index 0000000..d8d7e0f --- /dev/null +++ b/q6/q6.fio @@ -0,0 +1,30 @@ +[global] +filename=/dev/nvme1n1 +size=64m +rw=read +direct=1 +stonewall + +[1k_block] +bs=1k + +[4k_block] +bs=4k + +[1m_block] +bs=1m + +[2m_block] +bs=2m + +[4m_block] +bs=4m + +[8m_block] +bs=8m + +[16m_block] +bs=16m + +[32m_block] +bs=32m diff --git a/q6/q6.output b/q6/q6.output new file mode 100644 index 0000000..6e9ddca --- /dev/null +++ b/q6/q6.output @@ -0,0 +1,178 @@ +1k_block: (g=0): rw=read, bs=(R) 1024B-1024B, (W) 1024B-1024B, (T) 1024B-1024B, ioengine=psync, iodepth=1 +4k_block: (g=1): rw=read, bs=(R) 4096B-4096B, (W) 4096B-4096B, (T) 4096B-4096B, ioengine=psync, iodepth=1 +1m_block: (g=2): rw=read, bs=(R) 1024KiB-1024KiB, (W) 1024KiB-1024KiB, (T) 1024KiB-1024KiB, ioengine=psync, iodepth=1 +2m_block: (g=3): rw=read, bs=(R) 2048KiB-2048KiB, (W) 2048KiB-2048KiB, (T) 2048KiB-2048KiB, ioengine=psync, iodepth=1 +4m_block: (g=4): rw=read, bs=(R) 4096KiB-4096KiB, (W) 4096KiB-4096KiB, (T) 4096KiB-4096KiB, ioengine=psync, iodepth=1 +8m_block: (g=5): rw=read, bs=(R) 8192KiB-8192KiB, (W) 8192KiB-8192KiB, (T) 8192KiB-8192KiB, ioengine=psync, iodepth=1 +16m_block: (g=6): rw=read, bs=(R) 16.0MiB-16.0MiB, (W) 16.0MiB-16.0MiB, (T) 16.0MiB-16.0MiB, ioengine=psync, iodepth=1 +32m_block: (g=7): rw=read, bs=(R) 32.0MiB-32.0MiB, (W) 32.0MiB-32.0MiB, (T) 32.0MiB-32.0MiB, ioengine=psync, iodepth=1 +fio-3.39 +Starting 8 processes + +1k_block: (groupid=0, jobs=1): err= 0: pid=310156: Mon Apr 14 08:12:27 2025 + read: IOPS=61.9k, BW=60.5MiB/s (63.4MB/s)(64.0MiB/1058msec) + clat (usec): min=9, max=828, avg=15.88, stdev= 6.29 + lat (usec): min=9, max=828, avg=15.92, stdev= 6.29 + clat percentiles (usec): + | 1.00th=[ 10], 5.00th=[ 15], 10.00th=[ 15], 20.00th=[ 15], + | 30.00th=[ 15], 40.00th=[ 15], 50.00th=[ 15], 60.00th=[ 16], + | 70.00th=[ 16], 80.00th=[ 17], 90.00th=[ 18], 95.00th=[ 24], + | 99.00th=[ 25], 99.50th=[ 25], 99.90th=[ 67], 99.95th=[ 137], + | 99.99th=[ 176] + bw ( KiB/s): min=62446, max=62446, per=100.00%, avg=62446.00, stdev= 0.00, samples=1 + iops : min=62446, max=62446, avg=62446.00, stdev= 0.00, samples=1 + lat (usec) : 10=3.78%, 20=89.12%, 50=6.87%, 100=0.15%, 250=0.07% + lat (usec) : 500=0.01%, 1000=0.01% + cpu : usr=3.12%, sys=8.33%, ctx=65539, majf=0, minf=9 + IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% + submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + issued rwts: total=65536,0,0,0 short=0,0,0,0 dropped=0,0,0,0 + latency : target=0, window=0, percentile=100.00%, depth=1 +4k_block: (groupid=1, jobs=1): err= 0: pid=310157: Mon Apr 14 08:12:27 2025 + read: IOPS=61.4k, BW=240MiB/s (251MB/s)(64.0MiB/267msec) + clat (usec): min=10, max=893, avg=15.99, stdev=11.09 + lat (usec): min=10, max=893, avg=16.02, stdev=11.09 + clat percentiles (usec): + | 1.00th=[ 11], 5.00th=[ 12], 10.00th=[ 13], 20.00th=[ 13], + | 30.00th=[ 13], 40.00th=[ 13], 50.00th=[ 13], 60.00th=[ 13], + | 70.00th=[ 14], 80.00th=[ 15], 90.00th=[ 26], 95.00th=[ 38], + | 99.00th=[ 49], 99.50th=[ 50], 99.90th=[ 67], 99.95th=[ 133], + | 99.99th=[ 182] + lat (usec) : 20=83.81%, 50=15.75%, 100=0.38%, 250=0.05%, 1000=0.01% + cpu : usr=2.63%, sys=8.27%, ctx=16384, majf=0, minf=8 + IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% + submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + issued rwts: total=16384,0,0,0 short=0,0,0,0 dropped=0,0,0,0 + latency : target=0, window=0, percentile=100.00%, depth=1 +1m_block: (groupid=2, jobs=1): err= 0: pid=310160: Mon Apr 14 08:12:27 2025 + read: IOPS=2000, BW=2000MiB/s (2097MB/s)(64.0MiB/32msec) + clat (usec): min=372, max=1191, avg=494.23, stdev=91.47 + lat (usec): min=372, max=1191, avg=494.31, stdev=91.49 + clat percentiles (usec): + | 1.00th=[ 371], 5.00th=[ 461], 10.00th=[ 461], 20.00th=[ 469], + | 30.00th=[ 474], 40.00th=[ 478], 50.00th=[ 482], 60.00th=[ 490], + | 70.00th=[ 494], 80.00th=[ 502], 90.00th=[ 515], 95.00th=[ 523], + | 99.00th=[ 1188], 99.50th=[ 1188], 99.90th=[ 1188], 99.95th=[ 1188], + | 99.99th=[ 1188] + lat (usec) : 500=79.69%, 750=18.75% + lat (msec) : 2=1.56% + cpu : usr=0.00%, sys=6.45%, ctx=64, majf=0, minf=262 + IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% + submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + issued rwts: total=64,0,0,0 short=0,0,0,0 dropped=0,0,0,0 + latency : target=0, window=0, percentile=100.00%, depth=1 +2m_block: (groupid=3, jobs=1): err= 0: pid=310161: Mon Apr 14 08:12:27 2025 + read: IOPS=1280, BW=2560MiB/s (2684MB/s)(64.0MiB/25msec) + clat (usec): min=642, max=979, avg=763.00, stdev=45.56 + lat (usec): min=642, max=980, avg=763.10, stdev=45.58 + clat percentiles (usec): + | 1.00th=[ 644], 5.00th=[ 725], 10.00th=[ 750], 20.00th=[ 758], + | 30.00th=[ 758], 40.00th=[ 758], 50.00th=[ 758], 60.00th=[ 766], + | 70.00th=[ 766], 80.00th=[ 766], 90.00th=[ 766], 95.00th=[ 783], + | 99.00th=[ 979], 99.50th=[ 979], 99.90th=[ 979], 99.95th=[ 979], + | 99.99th=[ 979] + lat (usec) : 750=6.25%, 1000=93.75% + cpu : usr=0.00%, sys=4.17%, ctx=32, majf=0, minf=518 + IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% + submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + issued rwts: total=32,0,0,0 short=0,0,0,0 dropped=0,0,0,0 + latency : target=0, window=0, percentile=100.00%, depth=1 +4m_block: (groupid=4, jobs=1): err= 0: pid=310162: Mon Apr 14 08:12:27 2025 + read: IOPS=695, BW=2783MiB/s (2918MB/s)(64.0MiB/23msec) + clat (usec): min=1326, max=2065, avg=1403.20, stdev=176.93 + lat (usec): min=1326, max=2065, avg=1403.32, stdev=177.04 + clat percentiles (usec): + | 1.00th=[ 1319], 5.00th=[ 1319], 10.00th=[ 1352], 20.00th=[ 1352], + | 30.00th=[ 1352], 40.00th=[ 1352], 50.00th=[ 1352], 60.00th=[ 1369], + | 70.00th=[ 1369], 80.00th=[ 1369], 90.00th=[ 1385], 95.00th=[ 2073], + | 99.00th=[ 2073], 99.50th=[ 2073], 99.90th=[ 2073], 99.95th=[ 2073], + | 99.99th=[ 2073] + lat (msec) : 2=93.75%, 4=6.25% + cpu : usr=0.00%, sys=4.55%, ctx=17, majf=0, minf=520 + IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% + submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + issued rwts: total=16,0,0,0 short=0,0,0,0 dropped=0,0,0,0 + latency : target=0, window=0, percentile=100.00%, depth=1 +8m_block: (groupid=5, jobs=1): err= 0: pid=310163: Mon Apr 14 08:12:27 2025 + read: IOPS=363, BW=2909MiB/s (3050MB/s)(64.0MiB/22msec) + clat (usec): min=2545, max=3297, avg=2648.25, stdev=262.22 + lat (usec): min=2545, max=3297, avg=2648.38, stdev=262.28 + clat percentiles (usec): + | 1.00th=[ 2540], 5.00th=[ 2540], 10.00th=[ 2540], 20.00th=[ 2540], + | 30.00th=[ 2540], 40.00th=[ 2540], 50.00th=[ 2540], 60.00th=[ 2573], + | 70.00th=[ 2573], 80.00th=[ 2573], 90.00th=[ 3294], 95.00th=[ 3294], + | 99.00th=[ 3294], 99.50th=[ 3294], 99.90th=[ 3294], 99.95th=[ 3294], + | 99.99th=[ 3294] + lat (msec) : 4=100.00% + cpu : usr=4.76%, sys=0.00%, ctx=8, majf=0, minf=522 + IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% + submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + issued rwts: total=8,0,0,0 short=0,0,0,0 dropped=0,0,0,0 + latency : target=0, window=0, percentile=100.00%, depth=1 +16m_block: (groupid=6, jobs=1): err= 0: pid=310164: Mon Apr 14 08:12:27 2025 + read: IOPS=190, BW=3048MiB/s (3196MB/s)(64.0MiB/21msec) + clat (usec): min=4946, max=5717, avg=5146.10, stdev=380.86 + lat (usec): min=4946, max=5717, avg=5146.43, stdev=380.85 + clat percentiles (usec): + | 1.00th=[ 4948], 5.00th=[ 4948], 10.00th=[ 4948], 20.00th=[ 4948], + | 30.00th=[ 4948], 40.00th=[ 4948], 50.00th=[ 4948], 60.00th=[ 4948], + | 70.00th=[ 4948], 80.00th=[ 5735], 90.00th=[ 5735], 95.00th=[ 5735], + | 99.00th=[ 5735], 99.50th=[ 5735], 99.90th=[ 5735], 99.95th=[ 5735], + | 99.99th=[ 5735] + lat (msec) : 10=100.00% + cpu : usr=0.00%, sys=5.00%, ctx=4, majf=0, minf=525 + IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% + submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + issued rwts: total=4,0,0,0 short=0,0,0,0 dropped=0,0,0,0 + latency : target=0, window=0, percentile=100.00%, depth=1 +32m_block: (groupid=7, jobs=1): err= 0: pid=310165: Mon Apr 14 08:12:27 2025 + read: IOPS=90, BW=2909MiB/s (3050MB/s)(64.0MiB/22msec) + clat (usec): min=10075, max=11211, avg=10643.69, stdev=803.40 + lat (usec): min=10075, max=11212, avg=10643.99, stdev=803.39 + clat percentiles (usec): + | 1.00th=[10028], 5.00th=[10028], 10.00th=[10028], 20.00th=[10028], + | 30.00th=[10028], 40.00th=[10028], 50.00th=[10028], 60.00th=[11207], + | 70.00th=[11207], 80.00th=[11207], 90.00th=[11207], 95.00th=[11207], + | 99.00th=[11207], 99.50th=[11207], 99.90th=[11207], 99.95th=[11207], + | 99.99th=[11207] + lat (msec) : 20=100.00% + cpu : usr=0.00%, sys=9.52%, ctx=2, majf=0, minf=533 + IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% + submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + issued rwts: total=2,0,0,0 short=0,0,0,0 dropped=0,0,0,0 + latency : target=0, window=0, percentile=100.00%, depth=1 + +Run status group 0 (all jobs): + READ: bw=60.5MiB/s (63.4MB/s), 60.5MiB/s-60.5MiB/s (63.4MB/s-63.4MB/s), io=64.0MiB (67.1MB), run=1058-1058msec + +Run status group 1 (all jobs): + READ: bw=240MiB/s (251MB/s), 240MiB/s-240MiB/s (251MB/s-251MB/s), io=64.0MiB (67.1MB), run=267-267msec + +Run status group 2 (all jobs): + READ: bw=2000MiB/s (2097MB/s), 2000MiB/s-2000MiB/s (2097MB/s-2097MB/s), io=64.0MiB (67.1MB), run=32-32msec + +Run status group 3 (all jobs): + READ: bw=2560MiB/s (2684MB/s), 2560MiB/s-2560MiB/s (2684MB/s-2684MB/s), io=64.0MiB (67.1MB), run=25-25msec + +Run status group 4 (all jobs): + READ: bw=2783MiB/s (2918MB/s), 2783MiB/s-2783MiB/s (2918MB/s-2918MB/s), io=64.0MiB (67.1MB), run=23-23msec + +Run status group 5 (all jobs): + READ: bw=2909MiB/s (3050MB/s), 2909MiB/s-2909MiB/s (3050MB/s-3050MB/s), io=64.0MiB (67.1MB), run=22-22msec + +Run status group 6 (all jobs): + READ: bw=3048MiB/s (3196MB/s), 3048MiB/s-3048MiB/s (3196MB/s-3196MB/s), io=64.0MiB (67.1MB), run=21-21msec + +Run status group 7 (all jobs): + READ: bw=2909MiB/s (3050MB/s), 2909MiB/s-2909MiB/s (3050MB/s-3050MB/s), io=64.0MiB (67.1MB), run=22-22msec + +Disk stats (read/write): + nvme1n1: ios=71570/134, sectors=179344/4416, merge=0/3, ticks=948/104, in_queue=1053, util=62.66% diff --git a/q7/q7.fio b/q7/q7.fio new file mode 100644 index 0000000..309f2e4 --- /dev/null +++ b/q7/q7.fio @@ -0,0 +1,31 @@ +[global] +filename=/dev/nvme1n1 +direct=1 +size=1g +stonewall +rw=read + +offset=80% +bs=8m + +[psync] +ioengine=psync + +[libaio] +ioengine=libaio +iodepth=1 + +[libaio-iod32] +ioengine=libaio +iodepth=32 + +[libaio-iod64] +ioengine=libaio +iodepth=64 + +[libaio-iod128] +ioengine=libaio +iodepth=128 + +[fastest] +ioengine=libaio diff --git a/q7/q7.output b/q7/q7.output new file mode 100644 index 0000000..a1fbd9a --- /dev/null +++ b/q7/q7.output @@ -0,0 +1,137 @@ +psync: (g=0): rw=read, bs=(R) 8192KiB-8192KiB, (W) 8192KiB-8192KiB, (T) 8192KiB-8192KiB, ioengine=psync, iodepth=1 +libaio: (g=1): rw=read, bs=(R) 8192KiB-8192KiB, (W) 8192KiB-8192KiB, (T) 8192KiB-8192KiB, ioengine=libaio, iodepth=1 +libaio-iod32: (g=2): rw=read, bs=(R) 8192KiB-8192KiB, (W) 8192KiB-8192KiB, (T) 8192KiB-8192KiB, ioengine=libaio, iodepth=32 +libaio-iod64: (g=3): rw=read, bs=(R) 8192KiB-8192KiB, (W) 8192KiB-8192KiB, (T) 8192KiB-8192KiB, ioengine=libaio, iodepth=64 +libaio-iod128: (g=4): rw=read, bs=(R) 8192KiB-8192KiB, (W) 8192KiB-8192KiB, (T) 8192KiB-8192KiB, ioengine=libaio, iodepth=128 +fastest: (g=5): rw=read, bs=(R) 8192KiB-8192KiB, (W) 8192KiB-8192KiB, (T) 8192KiB-8192KiB, ioengine=libaio, iodepth=1 +fio-3.39 +Starting 6 processes + +psync: (groupid=0, jobs=1): err= 0: pid=314338: Mon Apr 14 08:40:53 2025 + read: IOPS=411, BW=3293MiB/s (3453MB/s)(1024MiB/311msec) + clat (usec): min=2412, max=3248, avg=2426.43, stdev=73.58 + lat (usec): min=2412, max=3248, avg=2426.55, stdev=73.59 + clat percentiles (usec): + | 1.00th=[ 2409], 5.00th=[ 2409], 10.00th=[ 2409], 20.00th=[ 2409], + | 30.00th=[ 2409], 40.00th=[ 2409], 50.00th=[ 2409], 60.00th=[ 2409], + | 70.00th=[ 2409], 80.00th=[ 2409], 90.00th=[ 2442], 95.00th=[ 2442], + | 99.00th=[ 2442], 99.50th=[ 3261], 99.90th=[ 3261], 99.95th=[ 3261], + | 99.99th=[ 3261] + lat (msec) : 4=100.00% + cpu : usr=0.00%, sys=2.90%, ctx=130, majf=0, minf=522 + IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% + submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + issued rwts: total=128,0,0,0 short=0,0,0,0 dropped=0,0,0,0 + latency : target=0, window=0, percentile=100.00%, depth=1 +libaio: (groupid=1, jobs=1): err= 0: pid=314339: Mon Apr 14 08:40:53 2025 + read: IOPS=410, BW=3282MiB/s (3441MB/s)(1024MiB/312msec) + slat (usec): min=62, max=651, avg=75.86, stdev=53.47 + clat (usec): min=2219, max=2586, avg=2352.36, stdev=25.94 + lat (usec): min=2414, max=3238, avg=2428.22, stdev=72.91 + clat percentiles (usec): + | 1.00th=[ 2343], 5.00th=[ 2343], 10.00th=[ 2343], 20.00th=[ 2343], + | 30.00th=[ 2343], 40.00th=[ 2343], 50.00th=[ 2343], 60.00th=[ 2343], + | 70.00th=[ 2343], 80.00th=[ 2343], 90.00th=[ 2376], 95.00th=[ 2376], + | 99.00th=[ 2409], 99.50th=[ 2573], 99.90th=[ 2573], 99.95th=[ 2573], + | 99.99th=[ 2573] + lat (msec) : 4=100.00% + cpu : usr=0.00%, sys=2.89%, ctx=131, majf=0, minf=522 + IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% + submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + issued rwts: total=128,0,0,0 short=0,0,0,0 dropped=0,0,0,0 + latency : target=0, window=0, percentile=100.00%, depth=1 +libaio-iod32: (groupid=2, jobs=1): err= 0: pid=314340: Mon Apr 14 08:40:53 2025 + read: IOPS=418, BW=3346MiB/s (3509MB/s)(1024MiB/306msec) + slat (usec): min=48, max=597, avg=500.10, stdev=162.08 + clat (msec): min=11, max=146, avg=73.69, stdev=30.45 + lat (msec): min=11, max=147, avg=74.19, stdev=30.48 + clat percentiles (msec): + | 1.00th=[ 12], 5.00th=[ 15], 10.00th=[ 27], 20.00th=[ 52], + | 30.00th=[ 77], 40.00th=[ 77], 50.00th=[ 77], 60.00th=[ 77], + | 70.00th=[ 77], 80.00th=[ 88], 90.00th=[ 120], 95.00th=[ 133], + | 99.00th=[ 144], 99.50th=[ 148], 99.90th=[ 148], 99.95th=[ 148], + | 99.99th=[ 148] + lat (msec) : 20=7.03%, 50=12.50%, 100=64.84%, 250=15.62% + cpu : usr=0.00%, sys=5.90%, ctx=177, majf=0, minf=136 + IO depths : 1=0.8%, 2=1.6%, 4=3.1%, 8=6.2%, 16=12.5%, 32=75.8%, >=64=0.0% + submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + complete : 0=0.0%, 4=99.0%, 8=0.0%, 16=0.0%, 32=1.0%, 64=0.0%, >=64=0.0% + issued rwts: total=128,0,0,0 short=0,0,0,0 dropped=0,0,0,0 + latency : target=0, window=0, percentile=100.00%, depth=32 +libaio-iod64: (groupid=3, jobs=1): err= 0: pid=314341: Mon Apr 14 08:40:53 2025 + read: IOPS=418, BW=3346MiB/s (3509MB/s)(1024MiB/306msec) + slat (usec): min=49, max=7156, avg=1794.84, stdev=2134.18 + clat (msec): min=18, max=263, avg=138.99, stdev=70.33 + lat (msec): min=19, max=266, avg=140.78, stdev=70.87 + clat percentiles (msec): + | 1.00th=[ 35], 5.00th=[ 60], 10.00th=[ 62], 20.00th=[ 66], + | 30.00th=[ 79], 40.00th=[ 100], 50.00th=[ 129], 60.00th=[ 155], + | 70.00th=[ 186], 80.00th=[ 232], 90.00th=[ 236], 95.00th=[ 249], + | 99.00th=[ 262], 99.50th=[ 264], 99.90th=[ 264], 99.95th=[ 264], + | 99.99th=[ 264] + lat (msec) : 20=0.78%, 50=1.56%, 100=39.06%, 250=53.91%, 500=4.69% + cpu : usr=0.00%, sys=10.49%, ctx=221, majf=0, minf=265 + IO depths : 1=0.8%, 2=1.6%, 4=3.1%, 8=6.2%, 16=12.5%, 32=25.0%, >=64=50.8% + submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + complete : 0=0.0%, 4=98.5%, 8=0.0%, 16=0.0%, 32=0.0%, 64=1.5%, >=64=0.0% + issued rwts: total=128,0,0,0 short=0,0,0,0 dropped=0,0,0,0 + latency : target=0, window=0, percentile=100.00%, depth=64 +libaio-iod128: (groupid=4, jobs=1): err= 0: pid=314344: Mon Apr 14 08:40:53 2025 + read: IOPS=418, BW=3346MiB/s (3509MB/s)(1024MiB/306msec) + slat (usec): min=371, max=7565, avg=1792.97, stdev=2067.63 + clat (msec): min=76, max=304, avg=231.90, stdev=60.80 + lat (msec): min=82, max=305, avg=233.69, stdev=59.54 + clat percentiles (msec): + | 1.00th=[ 83], 5.00th=[ 104], 10.00th=[ 132], 20.00th=[ 197], + | 30.00th=[ 215], 40.00th=[ 220], 50.00th=[ 226], 60.00th=[ 255], + | 70.00th=[ 284], 80.00th=[ 296], 90.00th=[ 300], 95.00th=[ 305], + | 99.00th=[ 305], 99.50th=[ 305], 99.90th=[ 305], 99.95th=[ 305], + | 99.99th=[ 305] + lat (msec) : 100=3.91%, 250=54.69%, 500=41.41% + cpu : usr=0.00%, sys=17.38%, ctx=198, majf=0, minf=522 + IO depths : 1=0.8%, 2=1.6%, 4=3.1%, 8=6.2%, 16=12.5%, 32=25.0%, >=64=50.8% + submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + complete : 0=0.0%, 4=50.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=50.0% + issued rwts: total=128,0,0,0 short=0,0,0,0 dropped=0,0,0,0 + latency : target=0, window=0, percentile=100.00%, depth=128 +fastest: (groupid=5, jobs=1): err= 0: pid=314345: Mon Apr 14 08:40:53 2025 + read: IOPS=411, BW=3293MiB/s (3453MB/s)(1024MiB/311msec) + slat (usec): min=60, max=630, avg=72.57, stdev=51.51 + clat (usec): min=2214, max=2634, avg=2353.93, stdev=29.25 + lat (usec): min=2413, max=3265, avg=2426.50, stdev=75.19 + clat percentiles (usec): + | 1.00th=[ 2311], 5.00th=[ 2343], 10.00th=[ 2343], 20.00th=[ 2343], + | 30.00th=[ 2343], 40.00th=[ 2343], 50.00th=[ 2343], 60.00th=[ 2343], + | 70.00th=[ 2343], 80.00th=[ 2343], 90.00th=[ 2376], 95.00th=[ 2376], + | 99.00th=[ 2442], 99.50th=[ 2638], 99.90th=[ 2638], 99.95th=[ 2638], + | 99.99th=[ 2638] + lat (msec) : 4=100.00% + cpu : usr=0.00%, sys=2.90%, ctx=128, majf=0, minf=522 + IO depths : 1=100.0%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0% + submit : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + complete : 0=0.0%, 4=100.0%, 8=0.0%, 16=0.0%, 32=0.0%, 64=0.0%, >=64=0.0% + issued rwts: total=128,0,0,0 short=0,0,0,0 dropped=0,0,0,0 + latency : target=0, window=0, percentile=100.00%, depth=1 + +Run status group 0 (all jobs): + READ: bw=3293MiB/s (3453MB/s), 3293MiB/s-3293MiB/s (3453MB/s-3453MB/s), io=1024MiB (1074MB), run=311-311msec + +Run status group 1 (all jobs): + READ: bw=3282MiB/s (3441MB/s), 3282MiB/s-3282MiB/s (3441MB/s-3441MB/s), io=1024MiB (1074MB), run=312-312msec + +Run status group 2 (all jobs): + READ: bw=3346MiB/s (3509MB/s), 3346MiB/s-3346MiB/s (3509MB/s-3509MB/s), io=1024MiB (1074MB), run=306-306msec + +Run status group 3 (all jobs): + READ: bw=3346MiB/s (3509MB/s), 3346MiB/s-3346MiB/s (3509MB/s-3509MB/s), io=1024MiB (1074MB), run=306-306msec + +Run status group 4 (all jobs): + READ: bw=3346MiB/s (3509MB/s), 3346MiB/s-3346MiB/s (3509MB/s-3509MB/s), io=1024MiB (1074MB), run=306-306msec + +Run status group 5 (all jobs): + READ: bw=3293MiB/s (3453MB/s), 3293MiB/s-3293MiB/s (3453MB/s-3453MB/s), io=1024MiB (1074MB), run=311-311msec + +Disk stats (read/write): + nvme1n1: ios=22560/1, sectors=11454960/176, merge=128/0, ticks=940215/0, in_queue=940215, util=51.56% diff --git a/run.sh b/run.sh new file mode 100755 index 0000000..1a17fa4 --- /dev/null +++ b/run.sh @@ -0,0 +1,9 @@ +#!/usr/bin/env -S bash + +JOBS=$(find . -type f -name '*.fio') + +for job in ${JOBS[@]}; do + output="$(sed -rn 's/(.*)\.fio/\1.output/p' <<< "$job")" + echo "Running $job, writing result into $output" + sudo $(which fio) "$job" > "$output" +done