diff --git a/VERSION b/VERSION index 348fc11efe..ea4bd0fb3d 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.1.12 +2.1.13 diff --git a/src/VirtualClient/VirtualClient.Actions.FunctionalTests/FioDiscoveryProfileTests.cs b/src/VirtualClient/VirtualClient.Actions.FunctionalTests/FioDiscoveryProfileTests.cs index 775c643ab7..999539edec 100644 --- a/src/VirtualClient/VirtualClient.Actions.FunctionalTests/FioDiscoveryProfileTests.cs +++ b/src/VirtualClient/VirtualClient.Actions.FunctionalTests/FioDiscoveryProfileTests.cs @@ -26,7 +26,7 @@ public void SetupFixture() } [Test] - [TestCase("PERF-IO-FIO-DISCOVERY.json")] + [TestCase("PERF-IO-FIO-DISCOVERY-v2.json")] public void FioDiscoveryWorkloadProfileParametersAreInlinedCorrectly(string profile) { this.mockFixture.Setup(PlatformID.Win32NT); @@ -37,7 +37,7 @@ public void FioDiscoveryWorkloadProfileParametersAreInlinedCorrectly(string prof } [Test] - [TestCase("PERF-IO-FIO-DISCOVERY.json")] + [TestCase("PERF-IO-FIO-DISCOVERY-v2.json")] public async Task FioDiscoveryWorkloadProfileInstallsTheExpectedDependenciesOnUnixPlatform(string profile) { // The disks are setup in a typical Azure VM scenario @@ -61,7 +61,7 @@ public async Task FioDiscoveryWorkloadProfileInstallsTheExpectedDependenciesOnUn } [Test] - [TestCase("PERF-IO-FIO-DISCOVERY.json")] + [TestCase("PERF-IO-FIO-DISCOVERY-v2.json")] public async Task FioDiscoveryWorkloadProfileExecutesTheExpectedWorkloadsOnUnixPlatform(string profile) { IEnumerable expectedCommands = FioDiscoveryProfileTests.GetFioProfileExpectedCommands(PlatformID.Unix); @@ -98,151 +98,36 @@ private static IEnumerable GetFioProfileExpectedCommands(PlatformID plat { return new List { + // this is not a complete list of the commands run by default using the FIO Discovery v2 profile "fio --name=disk_fill --size=134G --rw=write --bs=256K --numjobs=1 --iodepth=64 --ioengine=libaio --fallocate=none --refill_buffers=1 --direct=1 --overwrite=1 --output-format=json", - "fio --name=fio_discovery_randread_134G_4k_d1_th1 --numjobs=1 --iodepth=1 --ioengine=libaio --size=134G --rw=randread --bs=4k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randread_134G_4k_d1_th4 --numjobs=4 --iodepth=1 --ioengine=libaio --size=134G --rw=randread --bs=4k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randread_134G_4k_d2_th8 --numjobs=8 --iodepth=2 --ioengine=libaio --size=134G --rw=randread --bs=4k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randread_134G_4k_d8_th8 --numjobs=8 --iodepth=8 --ioengine=libaio --size=134G --rw=randread --bs=4k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randread_134G_4k_d32_th8 --numjobs=8 --iodepth=32 --ioengine=libaio --size=134G --rw=randread --bs=4k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randread_134G_4k_d128_th8 --numjobs=8 --iodepth=128 --ioengine=libaio --size=134G --rw=randread --bs=4k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randread_134G_8k_d1_th1 --numjobs=1 --iodepth=1 --ioengine=libaio --size=134G --rw=randread --bs=8k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randread_134G_8k_d1_th4 --numjobs=4 --iodepth=1 --ioengine=libaio --size=134G --rw=randread --bs=8k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randread_134G_8k_d2_th8 --numjobs=8 --iodepth=2 --ioengine=libaio --size=134G --rw=randread --bs=8k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randread_134G_8k_d8_th8 --numjobs=8 --iodepth=8 --ioengine=libaio --size=134G --rw=randread --bs=8k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randread_134G_8k_d32_th8 --numjobs=8 --iodepth=32 --ioengine=libaio --size=134G --rw=randread --bs=8k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randread_134G_8k_d128_th8 --numjobs=8 --iodepth=128 --ioengine=libaio --size=134G --rw=randread --bs=8k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randread_134G_16k_d1_th1 --numjobs=1 --iodepth=1 --ioengine=libaio --size=134G --rw=randread --bs=16k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randread_134G_16k_d1_th4 --numjobs=4 --iodepth=1 --ioengine=libaio --size=134G --rw=randread --bs=16k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randread_134G_16k_d2_th8 --numjobs=8 --iodepth=2 --ioengine=libaio --size=134G --rw=randread --bs=16k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randread_134G_16k_d8_th8 --numjobs=8 --iodepth=8 --ioengine=libaio --size=134G --rw=randread --bs=16k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randread_134G_16k_d32_th8 --numjobs=8 --iodepth=32 --ioengine=libaio --size=134G --rw=randread --bs=16k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randread_134G_16k_d128_th8 --numjobs=8 --iodepth=128 --ioengine=libaio --size=134G --rw=randread --bs=16k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randread_134G_64k_d1_th1 --numjobs=1 --iodepth=1 --ioengine=libaio --size=134G --rw=randread --bs=64k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randread_134G_64k_d1_th4 --numjobs=4 --iodepth=1 --ioengine=libaio --size=134G --rw=randread --bs=64k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randread_134G_64k_d2_th8 --numjobs=8 --iodepth=2 --ioengine=libaio --size=134G --rw=randread --bs=64k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randread_134G_64k_d8_th8 --numjobs=8 --iodepth=8 --ioengine=libaio --size=134G --rw=randread --bs=64k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randread_134G_64k_d32_th8 --numjobs=8 --iodepth=32 --ioengine=libaio --size=134G --rw=randread --bs=64k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randread_134G_64k_d128_th8 --numjobs=8 --iodepth=128 --ioengine=libaio --size=134G --rw=randread --bs=64k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randread_134G_256k_d1_th1 --numjobs=1 --iodepth=1 --ioengine=libaio --size=134G --rw=randread --bs=256k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randread_134G_256k_d1_th4 --numjobs=4 --iodepth=1 --ioengine=libaio --size=134G --rw=randread --bs=256k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randread_134G_256k_d2_th8 --numjobs=8 --iodepth=2 --ioengine=libaio --size=134G --rw=randread --bs=256k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randread_134G_256k_d8_th8 --numjobs=8 --iodepth=8 --ioengine=libaio --size=134G --rw=randread --bs=256k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randread_134G_256k_d32_th8 --numjobs=8 --iodepth=32 --ioengine=libaio --size=134G --rw=randread --bs=256k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randread_134G_256k_d128_th8 --numjobs=8 --iodepth=128 --ioengine=libaio --size=134G --rw=randread --bs=256k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randread_134G_1024k_d1_th1 --numjobs=1 --iodepth=1 --ioengine=libaio --size=134G --rw=randread --bs=1024k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randread_134G_1024k_d1_th4 --numjobs=4 --iodepth=1 --ioengine=libaio --size=134G --rw=randread --bs=1024k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randread_134G_1024k_d2_th8 --numjobs=8 --iodepth=2 --ioengine=libaio --size=134G --rw=randread --bs=1024k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randread_134G_1024k_d8_th8 --numjobs=8 --iodepth=8 --ioengine=libaio --size=134G --rw=randread --bs=1024k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randread_134G_1024k_d32_th8 --numjobs=8 --iodepth=32 --ioengine=libaio --size=134G --rw=randread --bs=1024k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randread_134G_1024k_d128_th8 --numjobs=8 --iodepth=128 --ioengine=libaio --size=134G --rw=randread --bs=1024k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randwrite_134G_4k_d1_th1 --numjobs=1 --iodepth=1 --ioengine=libaio --size=134G --rw=randwrite --bs=4k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randwrite_134G_4k_d1_th4 --numjobs=4 --iodepth=1 --ioengine=libaio --size=134G --rw=randwrite --bs=4k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randwrite_134G_4k_d2_th8 --numjobs=8 --iodepth=2 --ioengine=libaio --size=134G --rw=randwrite --bs=4k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randwrite_134G_4k_d8_th8 --numjobs=8 --iodepth=8 --ioengine=libaio --size=134G --rw=randwrite --bs=4k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randwrite_134G_4k_d32_th8 --numjobs=8 --iodepth=32 --ioengine=libaio --size=134G --rw=randwrite --bs=4k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randwrite_134G_4k_d128_th8 --numjobs=8 --iodepth=128 --ioengine=libaio --size=134G --rw=randwrite --bs=4k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randwrite_134G_8k_d1_th1 --numjobs=1 --iodepth=1 --ioengine=libaio --size=134G --rw=randwrite --bs=8k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randwrite_134G_8k_d1_th4 --numjobs=4 --iodepth=1 --ioengine=libaio --size=134G --rw=randwrite --bs=8k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randwrite_134G_8k_d2_th8 --numjobs=8 --iodepth=2 --ioengine=libaio --size=134G --rw=randwrite --bs=8k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randwrite_134G_8k_d8_th8 --numjobs=8 --iodepth=8 --ioengine=libaio --size=134G --rw=randwrite --bs=8k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randwrite_134G_8k_d32_th8 --numjobs=8 --iodepth=32 --ioengine=libaio --size=134G --rw=randwrite --bs=8k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randwrite_134G_8k_d128_th8 --numjobs=8 --iodepth=128 --ioengine=libaio --size=134G --rw=randwrite --bs=8k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randwrite_134G_16k_d1_th1 --numjobs=1 --iodepth=1 --ioengine=libaio --size=134G --rw=randwrite --bs=16k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randwrite_134G_16k_d1_th4 --numjobs=4 --iodepth=1 --ioengine=libaio --size=134G --rw=randwrite --bs=16k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randwrite_134G_16k_d2_th8 --numjobs=8 --iodepth=2 --ioengine=libaio --size=134G --rw=randwrite --bs=16k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randwrite_134G_16k_d8_th8 --numjobs=8 --iodepth=8 --ioengine=libaio --size=134G --rw=randwrite --bs=16k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randwrite_134G_16k_d32_th8 --numjobs=8 --iodepth=32 --ioengine=libaio --size=134G --rw=randwrite --bs=16k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randwrite_134G_16k_d128_th8 --numjobs=8 --iodepth=128 --ioengine=libaio --size=134G --rw=randwrite --bs=16k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randwrite_134G_64k_d1_th1 --numjobs=1 --iodepth=1 --ioengine=libaio --size=134G --rw=randwrite --bs=64k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randwrite_134G_64k_d1_th4 --numjobs=4 --iodepth=1 --ioengine=libaio --size=134G --rw=randwrite --bs=64k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randwrite_134G_64k_d2_th8 --numjobs=8 --iodepth=2 --ioengine=libaio --size=134G --rw=randwrite --bs=64k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randwrite_134G_64k_d8_th8 --numjobs=8 --iodepth=8 --ioengine=libaio --size=134G --rw=randwrite --bs=64k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randwrite_134G_64k_d32_th8 --numjobs=8 --iodepth=32 --ioengine=libaio --size=134G --rw=randwrite --bs=64k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randwrite_134G_64k_d128_th8 --numjobs=8 --iodepth=128 --ioengine=libaio --size=134G --rw=randwrite --bs=64k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randwrite_134G_256k_d1_th1 --numjobs=1 --iodepth=1 --ioengine=libaio --size=134G --rw=randwrite --bs=256k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randwrite_134G_256k_d1_th4 --numjobs=4 --iodepth=1 --ioengine=libaio --size=134G --rw=randwrite --bs=256k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randwrite_134G_256k_d2_th8 --numjobs=8 --iodepth=2 --ioengine=libaio --size=134G --rw=randwrite --bs=256k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randwrite_134G_256k_d8_th8 --numjobs=8 --iodepth=8 --ioengine=libaio --size=134G --rw=randwrite --bs=256k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randwrite_134G_256k_d32_th8 --numjobs=8 --iodepth=32 --ioengine=libaio --size=134G --rw=randwrite --bs=256k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randwrite_134G_256k_d128_th8 --numjobs=8 --iodepth=128 --ioengine=libaio --size=134G --rw=randwrite --bs=256k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randwrite_134G_1024k_d1_th1 --numjobs=1 --iodepth=1 --ioengine=libaio --size=134G --rw=randwrite --bs=1024k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randwrite_134G_1024k_d1_th4 --numjobs=4 --iodepth=1 --ioengine=libaio --size=134G --rw=randwrite --bs=1024k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randwrite_134G_1024k_d2_th8 --numjobs=8 --iodepth=2 --ioengine=libaio --size=134G --rw=randwrite --bs=1024k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randwrite_134G_1024k_d8_th8 --numjobs=8 --iodepth=8 --ioengine=libaio --size=134G --rw=randwrite --bs=1024k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randwrite_134G_1024k_d32_th8 --numjobs=8 --iodepth=32 --ioengine=libaio --size=134G --rw=randwrite --bs=1024k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_randwrite_134G_1024k_d128_th8 --numjobs=8 --iodepth=128 --ioengine=libaio --size=134G --rw=randwrite --bs=1024k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_read_134G_4k_d1_th1 --numjobs=1 --iodepth=1 --ioengine=libaio --size=134G --rw=read --bs=4k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_read_134G_4k_d1_th4 --numjobs=4 --iodepth=1 --ioengine=libaio --size=134G --rw=read --bs=4k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_read_134G_4k_d2_th8 --numjobs=8 --iodepth=2 --ioengine=libaio --size=134G --rw=read --bs=4k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_read_134G_4k_d8_th8 --numjobs=8 --iodepth=8 --ioengine=libaio --size=134G --rw=read --bs=4k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_read_134G_4k_d32_th8 --numjobs=8 --iodepth=32 --ioengine=libaio --size=134G --rw=read --bs=4k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_read_134G_4k_d128_th8 --numjobs=8 --iodepth=128 --ioengine=libaio --size=134G --rw=read --bs=4k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_read_134G_8k_d1_th1 --numjobs=1 --iodepth=1 --ioengine=libaio --size=134G --rw=read --bs=8k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_read_134G_8k_d1_th4 --numjobs=4 --iodepth=1 --ioengine=libaio --size=134G --rw=read --bs=8k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_read_134G_8k_d2_th8 --numjobs=8 --iodepth=2 --ioengine=libaio --size=134G --rw=read --bs=8k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_read_134G_8k_d8_th8 --numjobs=8 --iodepth=8 --ioengine=libaio --size=134G --rw=read --bs=8k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_read_134G_8k_d32_th8 --numjobs=8 --iodepth=32 --ioengine=libaio --size=134G --rw=read --bs=8k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_read_134G_8k_d128_th8 --numjobs=8 --iodepth=128 --ioengine=libaio --size=134G --rw=read --bs=8k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_read_134G_16k_d1_th1 --numjobs=1 --iodepth=1 --ioengine=libaio --size=134G --rw=read --bs=16k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_read_134G_16k_d1_th4 --numjobs=4 --iodepth=1 --ioengine=libaio --size=134G --rw=read --bs=16k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_read_134G_16k_d2_th8 --numjobs=8 --iodepth=2 --ioengine=libaio --size=134G --rw=read --bs=16k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_read_134G_16k_d8_th8 --numjobs=8 --iodepth=8 --ioengine=libaio --size=134G --rw=read --bs=16k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_read_134G_16k_d32_th8 --numjobs=8 --iodepth=32 --ioengine=libaio --size=134G --rw=read --bs=16k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_read_134G_16k_d128_th8 --numjobs=8 --iodepth=128 --ioengine=libaio --size=134G --rw=read --bs=16k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_read_134G_64k_d1_th1 --numjobs=1 --iodepth=1 --ioengine=libaio --size=134G --rw=read --bs=64k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_read_134G_64k_d1_th4 --numjobs=4 --iodepth=1 --ioengine=libaio --size=134G --rw=read --bs=64k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_read_134G_64k_d2_th8 --numjobs=8 --iodepth=2 --ioengine=libaio --size=134G --rw=read --bs=64k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_read_134G_64k_d8_th8 --numjobs=8 --iodepth=8 --ioengine=libaio --size=134G --rw=read --bs=64k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_read_134G_64k_d32_th8 --numjobs=8 --iodepth=32 --ioengine=libaio --size=134G --rw=read --bs=64k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_read_134G_64k_d128_th8 --numjobs=8 --iodepth=128 --ioengine=libaio --size=134G --rw=read --bs=64k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_read_134G_256k_d1_th1 --numjobs=1 --iodepth=1 --ioengine=libaio --size=134G --rw=read --bs=256k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_read_134G_256k_d1_th4 --numjobs=4 --iodepth=1 --ioengine=libaio --size=134G --rw=read --bs=256k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_read_134G_256k_d2_th8 --numjobs=8 --iodepth=2 --ioengine=libaio --size=134G --rw=read --bs=256k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_read_134G_256k_d8_th8 --numjobs=8 --iodepth=8 --ioengine=libaio --size=134G --rw=read --bs=256k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_read_134G_256k_d32_th8 --numjobs=8 --iodepth=32 --ioengine=libaio --size=134G --rw=read --bs=256k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_read_134G_256k_d128_th8 --numjobs=8 --iodepth=128 --ioengine=libaio --size=134G --rw=read --bs=256k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_read_134G_1024k_d1_th1 --numjobs=1 --iodepth=1 --ioengine=libaio --size=134G --rw=read --bs=1024k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_read_134G_1024k_d1_th4 --numjobs=4 --iodepth=1 --ioengine=libaio --size=134G --rw=read --bs=1024k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_read_134G_1024k_d2_th8 --numjobs=8 --iodepth=2 --ioengine=libaio --size=134G --rw=read --bs=1024k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_read_134G_1024k_d8_th8 --numjobs=8 --iodepth=8 --ioengine=libaio --size=134G --rw=read --bs=1024k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_read_134G_1024k_d32_th8 --numjobs=8 --iodepth=32 --ioengine=libaio --size=134G --rw=read --bs=1024k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_read_134G_1024k_d128_th8 --numjobs=8 --iodepth=128 --ioengine=libaio --size=134G --rw=read --bs=1024k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_write_134G_4k_d1_th1 --numjobs=1 --iodepth=1 --ioengine=libaio --size=134G --rw=write --bs=4k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_write_134G_4k_d1_th4 --numjobs=4 --iodepth=1 --ioengine=libaio --size=134G --rw=write --bs=4k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_write_134G_4k_d2_th8 --numjobs=8 --iodepth=2 --ioengine=libaio --size=134G --rw=write --bs=4k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_write_134G_4k_d8_th8 --numjobs=8 --iodepth=8 --ioengine=libaio --size=134G --rw=write --bs=4k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_write_134G_4k_d32_th8 --numjobs=8 --iodepth=32 --ioengine=libaio --size=134G --rw=write --bs=4k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_write_134G_4k_d128_th8 --numjobs=8 --iodepth=128 --ioengine=libaio --size=134G --rw=write --bs=4k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_write_134G_8k_d1_th1 --numjobs=1 --iodepth=1 --ioengine=libaio --size=134G --rw=write --bs=8k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_write_134G_8k_d1_th4 --numjobs=4 --iodepth=1 --ioengine=libaio --size=134G --rw=write --bs=8k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_write_134G_8k_d2_th8 --numjobs=8 --iodepth=2 --ioengine=libaio --size=134G --rw=write --bs=8k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_write_134G_8k_d8_th8 --numjobs=8 --iodepth=8 --ioengine=libaio --size=134G --rw=write --bs=8k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_write_134G_8k_d32_th8 --numjobs=8 --iodepth=32 --ioengine=libaio --size=134G --rw=write --bs=8k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_write_134G_8k_d128_th8 --numjobs=8 --iodepth=128 --ioengine=libaio --size=134G --rw=write --bs=8k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_write_134G_16k_d1_th1 --numjobs=1 --iodepth=1 --ioengine=libaio --size=134G --rw=write --bs=16k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_write_134G_16k_d1_th4 --numjobs=4 --iodepth=1 --ioengine=libaio --size=134G --rw=write --bs=16k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_write_134G_16k_d2_th8 --numjobs=8 --iodepth=2 --ioengine=libaio --size=134G --rw=write --bs=16k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_write_134G_16k_d8_th8 --numjobs=8 --iodepth=8 --ioengine=libaio --size=134G --rw=write --bs=16k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_write_134G_16k_d32_th8 --numjobs=8 --iodepth=32 --ioengine=libaio --size=134G --rw=write --bs=16k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_write_134G_16k_d128_th8 --numjobs=8 --iodepth=128 --ioengine=libaio --size=134G --rw=write --bs=16k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_write_134G_64k_d1_th1 --numjobs=1 --iodepth=1 --ioengine=libaio --size=134G --rw=write --bs=64k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_write_134G_64k_d1_th4 --numjobs=4 --iodepth=1 --ioengine=libaio --size=134G --rw=write --bs=64k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_write_134G_64k_d2_th8 --numjobs=8 --iodepth=2 --ioengine=libaio --size=134G --rw=write --bs=64k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_write_134G_64k_d8_th8 --numjobs=8 --iodepth=8 --ioengine=libaio --size=134G --rw=write --bs=64k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_write_134G_64k_d32_th8 --numjobs=8 --iodepth=32 --ioengine=libaio --size=134G --rw=write --bs=64k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_write_134G_64k_d128_th8 --numjobs=8 --iodepth=128 --ioengine=libaio --size=134G --rw=write --bs=64k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_write_134G_256k_d1_th1 --numjobs=1 --iodepth=1 --ioengine=libaio --size=134G --rw=write --bs=256k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_write_134G_256k_d1_th4 --numjobs=4 --iodepth=1 --ioengine=libaio --size=134G --rw=write --bs=256k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_write_134G_256k_d2_th8 --numjobs=8 --iodepth=2 --ioengine=libaio --size=134G --rw=write --bs=256k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_write_134G_256k_d8_th8 --numjobs=8 --iodepth=8 --ioengine=libaio --size=134G --rw=write --bs=256k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_write_134G_256k_d32_th8 --numjobs=8 --iodepth=32 --ioengine=libaio --size=134G --rw=write --bs=256k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_write_134G_256k_d128_th8 --numjobs=8 --iodepth=128 --ioengine=libaio --size=134G --rw=write --bs=256k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_write_134G_1024k_d1_th1 --numjobs=1 --iodepth=1 --ioengine=libaio --size=134G --rw=write --bs=1024k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_write_134G_1024k_d1_th4 --numjobs=4 --iodepth=1 --ioengine=libaio --size=134G --rw=write --bs=1024k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_write_134G_1024k_d2_th8 --numjobs=8 --iodepth=2 --ioengine=libaio --size=134G --rw=write --bs=1024k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_write_134G_1024k_d8_th8 --numjobs=8 --iodepth=8 --ioengine=libaio --size=134G --rw=write --bs=1024k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_write_134G_1024k_d32_th8 --numjobs=8 --iodepth=32 --ioengine=libaio --size=134G --rw=write --bs=1024k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - "fio --name=fio_discovery_write_134G_1024k_d128_th8 --numjobs=8 --iodepth=128 --ioengine=libaio --size=134G --rw=write --bs=1024k --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]" + "fio --name=fio_discovery_randread_134G_4k_d1_th1 --numjobs=1 --iodepth=1 --bs=4k --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + "fio --name=fio_discovery_randread_134G_4k_d1_th4 --numjobs=4 --iodepth=1 --bs=4k --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + "fio --name=fio_discovery_randread_134G_4k_d2_th8 --numjobs=8 --iodepth=2 --bs=4k --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + "fio --name=fio_discovery_randread_134G_4k_d8_th8 --numjobs=8 --iodepth=8 --bs=4k --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + "fio --name=fio_discovery_randread_134G_4k_d32_th8 --numjobs=8 --iodepth=32 --bs=4k --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + "fio --name=fio_discovery_randread_134G_4k_d128_th8 --numjobs=8 --iodepth=128 --bs=4k --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + "fio --name=fio_discovery_randread_134G_8k_d1_th1 --numjobs=1 --iodepth=1 --bs=8k --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + "fio --name=fio_discovery_randread_134G_8k_d1_th4 --numjobs=4 --iodepth=1 --bs=8k --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + "fio --name=fio_discovery_randread_134G_8k_d2_th8 --numjobs=8 --iodepth=2 --bs=8k --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + "fio --name=fio_discovery_randread_134G_8k_d8_th8 --numjobs=8 --iodepth=8 --bs=8k --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + "fio --name=fio_discovery_randread_134G_8k_d32_th8 --numjobs=8 --iodepth=32 --bs=8k --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + "fio --name=fio_discovery_randread_134G_8k_d128_th8 --numjobs=8 --iodepth=128 --bs=8k --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + "fio --name=fio_discovery_randread_134G_16k_d1_th1 --numjobs=1 --iodepth=1 --bs=16k --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + "fio --name=fio_discovery_randread_134G_16k_d1_th4 --numjobs=4 --iodepth=1 --bs=16k --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + "fio --name=fio_discovery_randread_134G_16k_d2_th8 --numjobs=8 --iodepth=2 --bs=16k --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + "fio --name=fio_discovery_randread_134G_16k_d8_th8 --numjobs=8 --iodepth=8 --bs=16k --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + "fio --name=fio_discovery_randread_134G_16k_d32_th8 --numjobs=8 --iodepth=32 --bs=16k --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + "fio --name=fio_discovery_randread_134G_16k_d128_th8 --numjobs=8 --iodepth=128 --bs=16k --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + "fio --name=fio_discovery_randread_134G_64k_d1_th1 --numjobs=1 --iodepth=1 --bs=64k --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + "fio --name=fio_discovery_randread_134G_64k_d1_th4 --numjobs=4 --iodepth=1 --bs=64k --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + "fio --name=fio_discovery_randread_134G_64k_d2_th8 --numjobs=8 --iodepth=2 --bs=64k --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + "fio --name=fio_discovery_randread_134G_64k_d8_th8 --numjobs=8 --iodepth=8 --bs=64k --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + "fio --name=fio_discovery_randread_134G_64k_d32_th8 --numjobs=8 --iodepth=32 --bs=64k --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + "fio --name=fio_discovery_randread_134G_64k_d128_th8 --numjobs=8 --iodepth=128 --bs=64k --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + "fio --name=fio_discovery_randread_134G_256k_d1_th1 --numjobs=1 --iodepth=1 --bs=256k --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + "fio --name=fio_discovery_randread_134G_256k_d1_th4 --numjobs=4 --iodepth=1 --bs=256k --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + "fio --name=fio_discovery_randread_134G_256k_d2_th8 --numjobs=8 --iodepth=2 --bs=256k --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + "fio --name=fio_discovery_randread_134G_256k_d8_th8 --numjobs=8 --iodepth=8 --bs=256k --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=15 --runtime=180 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]" }; } } diff --git a/src/VirtualClient/VirtualClient.Actions.UnitTests/FIO/FioDiscoveryExecutorTests.cs b/src/VirtualClient/VirtualClient.Actions.UnitTests/FIO/FioDiscoveryExecutorTests.cs index 1db50e5d22..6188c6faa8 100644 --- a/src/VirtualClient/VirtualClient.Actions.UnitTests/FIO/FioDiscoveryExecutorTests.cs +++ b/src/VirtualClient/VirtualClient.Actions.UnitTests/FIO/FioDiscoveryExecutorTests.cs @@ -37,7 +37,7 @@ public void SetupTest() this.Parameters = new Dictionary { { nameof(FioDiscoveryExecutor.Scenario), "AnyScenario_ReadOrWrite_AnyBlockSize" }, - { nameof(FioDiscoveryExecutor.CommandLine), "--ioengine=libaio --size={FileSize} --rw={IOType} --bs={BlockSize} --direct={DirectIO} --ramp_time=30 --runtime={DurationSec} --time_based --overwrite=1 --thread --group_reporting --output-format=json" }, + { nameof(FioDiscoveryExecutor.CommandLine), "--ioengine=libaio --size={FileSize} --direct={DirectIO} --ramp_time=30 --runtime={DurationSec} --time_based --overwrite=1 --thread --group_reporting --output-format=json" }, { nameof(FioDiscoveryExecutor.BlockSize), "4K" }, { nameof(FioDiscoveryExecutor.DiskFillSize), "140G" }, { nameof(FioDiscoveryExecutor.FileSize), "134G" }, @@ -51,7 +51,6 @@ public void SetupTest() { nameof(FioDiscoveryExecutor.PackageName), "fio" }, { nameof(FioDiscoveryExecutor.DiskFilter), "BiggestSize" } }; - this.FileSystem.Setup(fe => fe.File.Exists(It.IsAny())).Returns(true); this.defaultOutput.Clear(); @@ -173,9 +172,9 @@ public async Task FioDiscoveryExecutorExecutesAsExpectedInSingleProcessModel() List expectedCommandLines = new List { - $"--name=fio_discovery_randwrite_134G_4K_d1_th1 --numjobs=1 --iodepth=1 --ioengine=libaio --size=134G --rw=randwrite --bs=4K --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z] --filename=/dev/sd[a-z] --filename=/dev/sd[a-z]", - $"--name=fio_discovery_randwrite_134G_4K_d1_th4 --numjobs=4 --iodepth=1 --ioengine=libaio --size=134G --rw=randwrite --bs=4K --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z] --filename=/dev/sd[a-z] --filename=/dev/sd[a-z]", - $"--name=fio_discovery_randwrite_134G_4K_d2_th8 --numjobs=8 --iodepth=2 --ioengine=libaio --size=134G --rw=randwrite --bs=4K --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z] --filename=/dev/sd[a-z] --filename=/dev/sd[a-z]" + $"--name=fio_discovery_randwrite_134G_4K_d1_th1 --numjobs=1 --iodepth=1 --bs=4K --rw=randwrite --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z] --filename=/dev/sd[a-z] --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randwrite_134G_4K_d1_th4 --numjobs=4 --iodepth=1 --bs=4K --rw=randwrite --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z] --filename=/dev/sd[a-z] --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randwrite_134G_4K_d2_th8 --numjobs=8 --iodepth=2 --bs=4K --rw=randwrite --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z] --filename=/dev/sd[a-z] --filename=/dev/sd[a-z]" }; using (TestFioDiscoveryExecutor executor = new TestFioDiscoveryExecutor(this.Dependencies, this.Parameters)) @@ -195,15 +194,15 @@ public async Task FioDiscoveryExecutorExecutesAsExpectedInSingleProcessPerDiskMo List expectedCommandLines = new List { - $"--name=fio_discovery_randwrite_134G_4K_d1_th1 --numjobs=1 --iodepth=1 --ioengine=libaio --size=134G --rw=randwrite --bs=4K --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - $"--name=fio_discovery_randwrite_134G_4K_d1_th1 --numjobs=1 --iodepth=1 --ioengine=libaio --size=134G --rw=randwrite --bs=4K --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - $"--name=fio_discovery_randwrite_134G_4K_d1_th1 --numjobs=1 --iodepth=1 --ioengine=libaio --size=134G --rw=randwrite --bs=4K --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - $"--name=fio_discovery_randwrite_134G_4K_d1_th4 --numjobs=4 --iodepth=1 --ioengine=libaio --size=134G --rw=randwrite --bs=4K --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - $"--name=fio_discovery_randwrite_134G_4K_d1_th4 --numjobs=4 --iodepth=1 --ioengine=libaio --size=134G --rw=randwrite --bs=4K --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - $"--name=fio_discovery_randwrite_134G_4K_d1_th4 --numjobs=4 --iodepth=1 --ioengine=libaio --size=134G --rw=randwrite --bs=4K --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - $"--name=fio_discovery_randwrite_134G_4K_d2_th8 --numjobs=8 --iodepth=2 --ioengine=libaio --size=134G --rw=randwrite --bs=4K --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - $"--name=fio_discovery_randwrite_134G_4K_d2_th8 --numjobs=8 --iodepth=2 --ioengine=libaio --size=134G --rw=randwrite --bs=4K --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", - $"--name=fio_discovery_randwrite_134G_4K_d2_th8 --numjobs=8 --iodepth=2 --ioengine=libaio --size=134G --rw=randwrite --bs=4K --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]" + $"--name=fio_discovery_randwrite_134G_4K_d1_th1 --numjobs=1 --iodepth=1 --bs=4K --rw=randwrite --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randwrite_134G_4K_d1_th1 --numjobs=1 --iodepth=1 --bs=4K --rw=randwrite --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randwrite_134G_4K_d1_th1 --numjobs=1 --iodepth=1 --bs=4K --rw=randwrite --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randwrite_134G_4K_d1_th4 --numjobs=4 --iodepth=1 --bs=4K --rw=randwrite --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randwrite_134G_4K_d1_th4 --numjobs=4 --iodepth=1 --bs=4K --rw=randwrite --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randwrite_134G_4K_d1_th4 --numjobs=4 --iodepth=1 --bs=4K --rw=randwrite --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randwrite_134G_4K_d2_th8 --numjobs=8 --iodepth=2 --bs=4K --rw=randwrite --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randwrite_134G_4K_d2_th8 --numjobs=8 --iodepth=2 --bs=4K --rw=randwrite --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randwrite_134G_4K_d2_th8 --numjobs=8 --iodepth=2 --bs=4K --rw=randwrite --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]" }; using (TestFioDiscoveryExecutor executor = new TestFioDiscoveryExecutor(this.Dependencies, this.Parameters)) @@ -284,9 +283,9 @@ public async Task FioDiscoveryExecutorExecutesAsExpectedIfGroupIDIsRemoved() List expectedCommandLines = new List { $"sudo chmod", - $"--name=fio_discovery_randwrite_134G_4K_d1_th1 --numjobs=1 --iodepth=1 --ioengine=libaio --size=134G --rw=randwrite --bs=4K --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sdc --filename=/dev/sdd --filename=/dev/sde", - $"--name=fio_discovery_randwrite_134G_4K_d1_th4 --numjobs=4 --iodepth=1 --ioengine=libaio --size=134G --rw=randwrite --bs=4K --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sdc --filename=/dev/sdd --filename=/dev/sde", - $"--name=fio_discovery_randwrite_134G_4K_d2_th8 --numjobs=8 --iodepth=2 --ioengine=libaio --size=134G --rw=randwrite --bs=4K --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sdc --filename=/dev/sdd --filename=/dev/sde" + $"--name=fio_discovery_randwrite_134G_4K_d1_th1 --numjobs=1 --iodepth=1 --bs=4K --rw=randwrite --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sdc --filename=/dev/sdd --filename=/dev/sde", + $"--name=fio_discovery_randwrite_134G_4K_d1_th4 --numjobs=4 --iodepth=1 --bs=4K --rw=randwrite --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sdc --filename=/dev/sdd --filename=/dev/sde", + $"--name=fio_discovery_randwrite_134G_4K_d2_th8 --numjobs=8 --iodepth=2 --bs=4K --rw=randwrite --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sdc --filename=/dev/sdd --filename=/dev/sde" }; using (TestFioDiscoveryExecutor executor = new TestFioDiscoveryExecutor(this.Dependencies, this.Parameters)) @@ -299,6 +298,63 @@ public async Task FioDiscoveryExecutorExecutesAsExpectedIfGroupIDIsRemoved() } } + [Test] + public async Task FioDiscoveryExecutorExecutesAsExpectedWithMultipleBlockSizeIOTypes() + { + this.Parameters[nameof(FioDiscoveryExecutor.BlockSize)] = "1K,4K"; + this.Parameters[nameof(FioDiscoveryExecutor.IOType)] = "randwrite,randread"; + this.Parameters[nameof(FioDiscoveryExecutor.ProcessModel)] = WorkloadProcessModel.SingleProcessPerDisk; + + List expectedCommandLines = new List + { + $"--name=fio_discovery_randwrite_134G_1K_d1_th1 --numjobs=1 --iodepth=1 --bs=1K --rw=randwrite --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randwrite_134G_1K_d1_th1 --numjobs=1 --iodepth=1 --bs=1K --rw=randwrite --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randwrite_134G_1K_d1_th1 --numjobs=1 --iodepth=1 --bs=1K --rw=randwrite --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randwrite_134G_1K_d1_th4 --numjobs=4 --iodepth=1 --bs=1K --rw=randwrite --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randwrite_134G_1K_d1_th4 --numjobs=4 --iodepth=1 --bs=1K --rw=randwrite --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randwrite_134G_1K_d1_th4 --numjobs=4 --iodepth=1 --bs=1K --rw=randwrite --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randwrite_134G_1K_d2_th8 --numjobs=8 --iodepth=2 --bs=1K --rw=randwrite --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randwrite_134G_1K_d2_th8 --numjobs=8 --iodepth=2 --bs=1K --rw=randwrite --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randwrite_134G_1K_d2_th8 --numjobs=8 --iodepth=2 --bs=1K --rw=randwrite --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randread_134G_1K_d1_th1 --numjobs=1 --iodepth=1 --bs=1K --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randread_134G_1K_d1_th1 --numjobs=1 --iodepth=1 --bs=1K --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randread_134G_1K_d1_th1 --numjobs=1 --iodepth=1 --bs=1K --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randread_134G_1K_d1_th4 --numjobs=4 --iodepth=1 --bs=1K --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randread_134G_1K_d1_th4 --numjobs=4 --iodepth=1 --bs=1K --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randread_134G_1K_d1_th4 --numjobs=4 --iodepth=1 --bs=1K --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randread_134G_1K_d2_th8 --numjobs=8 --iodepth=2 --bs=1K --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randread_134G_1K_d2_th8 --numjobs=8 --iodepth=2 --bs=1K --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randread_134G_1K_d2_th8 --numjobs=8 --iodepth=2 --bs=1K --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randwrite_134G_4K_d1_th1 --numjobs=1 --iodepth=1 --bs=4K --rw=randwrite --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randwrite_134G_4K_d1_th1 --numjobs=1 --iodepth=1 --bs=4K --rw=randwrite --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randwrite_134G_4K_d1_th1 --numjobs=1 --iodepth=1 --bs=4K --rw=randwrite --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randwrite_134G_4K_d1_th4 --numjobs=4 --iodepth=1 --bs=4K --rw=randwrite --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randwrite_134G_4K_d1_th4 --numjobs=4 --iodepth=1 --bs=4K --rw=randwrite --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randwrite_134G_4K_d1_th4 --numjobs=4 --iodepth=1 --bs=4K --rw=randwrite --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randwrite_134G_4K_d2_th8 --numjobs=8 --iodepth=2 --bs=4K --rw=randwrite --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randwrite_134G_4K_d2_th8 --numjobs=8 --iodepth=2 --bs=4K --rw=randwrite --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randwrite_134G_4K_d2_th8 --numjobs=8 --iodepth=2 --bs=4K --rw=randwrite --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randread_134G_4K_d1_th1 --numjobs=1 --iodepth=1 --bs=4K --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randread_134G_4K_d1_th1 --numjobs=1 --iodepth=1 --bs=4K --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randread_134G_4K_d1_th1 --numjobs=1 --iodepth=1 --bs=4K --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randread_134G_4K_d1_th4 --numjobs=4 --iodepth=1 --bs=4K --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randread_134G_4K_d1_th4 --numjobs=4 --iodepth=1 --bs=4K --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randread_134G_4K_d1_th4 --numjobs=4 --iodepth=1 --bs=4K --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randread_134G_4K_d2_th8 --numjobs=8 --iodepth=2 --bs=4K --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randread_134G_4K_d2_th8 --numjobs=8 --iodepth=2 --bs=4K --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]", + $"--name=fio_discovery_randread_134G_4K_d2_th8 --numjobs=8 --iodepth=2 --bs=4K --rw=randread --ioengine=libaio --size=134G --direct=1 --ramp_time=30 --runtime=300 --time_based --overwrite=1 --thread --group_reporting --output-format=json --filename=/dev/sd[a-z]" + }; + + using (TestFioDiscoveryExecutor executor = new TestFioDiscoveryExecutor(this.Dependencies, this.Parameters)) + { + await executor.ExecuteAsync(CancellationToken.None) + .ConfigureAwait(false); + + Assert.AreEqual(1 + expectedCommandLines.Count, this.ProcessManager.Commands.Count()); + Assert.IsTrue(this.ProcessManager.CommandsExecuted(expectedCommandLines.ToArray())); + } + } + private class TestFioDiscoveryExecutor : FioDiscoveryExecutor { public TestFioDiscoveryExecutor(IServiceCollection dependencies, IDictionary parameters) diff --git a/src/VirtualClient/VirtualClient.Actions/FIO/FioDiscoveryExecutor.cs b/src/VirtualClient/VirtualClient.Actions/FIO/FioDiscoveryExecutor.cs index cec4862034..5abf4d6c58 100644 --- a/src/VirtualClient/VirtualClient.Actions/FIO/FioDiscoveryExecutor.cs +++ b/src/VirtualClient/VirtualClient.Actions/FIO/FioDiscoveryExecutor.cs @@ -244,7 +244,7 @@ await this.Logger.LogMessageAsync($"{this.TypeName}.ExecuteVariation", variation int direct = this.DirectIO; commandLine = this.ApplyParameter(commandLine, nameof(this.DirectIO), direct); - commandLine = $"--name={testName} --numjobs={numJobs} --iodepth={queueDepthPerThread} {commandLine}"; + commandLine = $"--name={testName} --numjobs={numJobs} --iodepth={queueDepthPerThread} --bs={blockSize} --rw={ioType} {commandLine}"; string filePath = string.Join(',', disksToTest.Select(disk => disk.DevicePath).ToArray()); diff --git a/src/VirtualClient/VirtualClient.Main/profiles/PERF-IO-FIO-DISCOVERY-v2.json b/src/VirtualClient/VirtualClient.Main/profiles/PERF-IO-FIO-DISCOVERY-v2.json new file mode 100644 index 0000000000..ddc0d25187 --- /dev/null +++ b/src/VirtualClient/VirtualClient.Main/profiles/PERF-IO-FIO-DISCOVERY-v2.json @@ -0,0 +1,93 @@ +{ + "Description": "FIO I/O Stress Performance Workload", + "Metadata": { + "RecommendedMinimumExecutionTime": "02:00:00", + "SupportedPlatforms": "linux-x64,linux-arm64,win-x64", + "SupportedOperatingSystems": "CBL-Mariner,CentOS,Debian,RedHat,Suse,Ubuntu,Windows" + }, + "Parameters": { + "DiskFillSize": "134G", + "FileSize": "134G", + "DiskFilter": "BiggestSize", + "ProcessModel": "SingleProcess", + "MaxThreads": "8", + "QueueDepths": "1,4,16,64,256,1024", + "BlockSize": "1k,4k,8k,16k,64k,256k,1024k", + "IOType": "randread,randwrite,read,write", + "Engine": "{calculate(\"{Platform}\".StartsWith(\"linux\") ? \"libaio\" : \"windowsaio\")}", + "DirectIO": true, + "InitializeDisksInParallel": true + }, + "Actions": [ + { + "Type": "FioDiscoveryExecutor", + "Parameters": { + "Scenario": "DiskFill", + "CommandLine": "--name=disk_fill --size={DiskFillSize} --rw=write --bs=256K --numjobs=1 --iodepth=64 --ioengine={Engine} --fallocate=none --refill_buffers=1 --direct=1 --overwrite=1 --output-format=json", + "Engine": "$.Parameters.Engine", + "PackageName": "fio", + "ProcessModel": "SingleProcessPerDisk", + "DiskFillSize": "$.Parameters.DiskFillSize", + "DiskFill": true, + "DeleteTestFilesOnFinish": false, + "DiskFilter": "$.Parameters.DiskFilter" + } + }, + { + "Type": "FioDiscoveryExecutor", + "Parameters": { + "Scenario": "FIOAction", + "BlockSize": "$.Parameters.BlockSize", + "CommandLine": "--ioengine={Engine} --size={FileSize} --direct={DirectIO} --ramp_time=15 --runtime={DurationSec} --time_based --overwrite=1 --thread --group_reporting --output-format=json", + "Engine": "$.Parameters.Engine", + "FileSize": "$.Parameters.FileSize", + "DurationSec": "180", + "IOType": "$.Parameters.IOType", + "MaxThreads": "$.Parameters.MaxThreads", + "PackageName": "fio", + "ProcessModel": "$.Parameters.ProcessModel", + "QueueDepths": "$.Parameters.QueueDepths", + "DirectIO": "$.Parameters.DirectIO", + "DeleteTestFilesOnFinish": false, + "DiskFilter": "$.Parameters.DiskFilter", + "Tags": "IO,FIO,Discovery,randread,randwrite,read,write" + } + } + ], + "Dependencies": [ + { + "Type": "LinuxPackageInstallation", + "Parameters": { + "Scenario": "InstallLinuxPackages", + "Packages-Apt": "fio", + "Packages-Dnf": "fio,lshw,parted", + "Packages-Yum": "fio", + "Packages-Zypper": "fio" + } + }, + { + "Type": "FormatDisks", + "Parameters": { + "Scenario": "InitializeDisks" + } + }, + { + "Type": "MountDisks", + "Parameters": { + "Scenario": "CreateMountPoints", + "DiskFilter": "$.Parameters.DiskFilter" + } + }, + { + "Type": "DependencyPackageInstallation", + "Parameters": { + "Scenario": "InstallFIOPackage", + "SupportedPlatforms": "win-x64", + "BlobContainer": "packages", + "BlobName": "fio.3.30.0.zip", + "PackageName": "fio", + "Extract": true + } + } + ] +} \ No newline at end of file