Skip to content

Commit 168e8bd

Browse files
committed
Update documentation for profile calculations, FIO and DiskSpd workloads.
1 parent 5c16fba commit 168e8bd

File tree

3 files changed

+60
-12
lines changed

3 files changed

+60
-12
lines changed

website/docs/guides/0011-profiles.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -334,6 +334,7 @@ e.g.
334334
{calculate(100 / {TotalThreads})}
335335
{calculate({LogicalCoreCount} - 2)}
336336
{calculate(({LogicalCoreCount} - 2) / 512)}
337+
{calculate(\"{Platform}\".StartsWith(\"linux\") ? \"libaio\" : \"windowsaio\")}
337338
```
338339

339340
``` json

website/docs/workloads/diskspd/diskspd-profiles.md

Lines changed: 23 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -89,9 +89,29 @@ aspects of the workload execution.
8989

9090
| Parameter | Purpose | Default Value |
9191
|---------------------------|---------------------------------------------------------------------------------|---------------|
92-
| DiskFilter | Optional. Filter allowing the user to select the disks on which to test.<br/><br/>See the link 'Testing Specific Disks' at the top for more details. for more details. | BiggestSize |
93-
| DiskFillSize | Optional. Allows the user to override the default disk fill size used in the DiskSpd profile (e.g. 500GB -> 26GB). This enables the profile to be used in scenarios where the disk size is very small (e.g. local/temp disk -> 32GB in size). Note that this parameter is application ONLY on the Stress profile. | 500G |
94-
| FileSize | Optional. Allows the user to override the default file size used in the DiskSpd profile (e.g. 496GB -> 26GB). This enables the profile to be used in scenarios where the disk size is very small (e.g. local/temp disk -> 32GB in size). Note that this parameter is application ONLY on the Stress profile. | 496G |
92+
| DiskFilter | Optional. Filter allowing the user to select the disks on which to test.<br/><br/>See the link 'Testing Specific Disks' at the top for more details. | BiggestSize |
93+
| DiskFillSize | Optional. Allows the user to override the default disk fill size used in the FIO profile (e.g. 500GB -> 26GB). This enables the profile to be used in scenarios where the disk size is very small (e.g. local/temp disk -> 32GB in size). | 500GB |
94+
| Duration | Optional. Defines the amount of time to run each FIO scenario/action within the profile. | 5 minutes |
95+
| FileSize | Optional. Allows the user to override the default file size used in the FIO profile (e.g. 496GB -> 26GB). This enables the profile to be used in scenarios where the disk size is very small (e.g. local/temp disk -> 32GB in size). | 496GB |
96+
| ProcessModel | Optional. Defines how the FIO processes will be executed. The following are valid process models:<br/><br/><b>SingleProcess</b><br/>Executes a single FIO process running 1 job targeting I/O operations against each disk. Results are separated per-disk.<br/><br/><b>SingleProcessPerDisk</b><br/>Executes a single FIO process for each disk with each process running 1 job targeting I/O operations against that disk (higher stress profile). Results are separated per-disk.<br/><br/><b>SingleProcessAggregated</b><br/>Executes a single FIO process running 1 job per disk targeting I/O operations against that disk. Results are provided as an aggregation across all disks (i.e. a rollup). | SingleProcess |
97+
| QueueDepth | Optional. Defines the I/O queue depth to use for the operations | 512/the thread count |
98+
| ThreadCount | Optional. Specifies the number of distinct parallel operations/threads to run per job. | # logical processors / 2 |
99+
100+
* **Profile Component Parameters**
101+
The following section describes the parameters used by the individual components in the profile.
102+
103+
| Parameter | Purpose | Accepted Values |
104+
|---------------------------|-------------------------------------------------------------------------------|-----------------|
105+
| Scenario | Scenario use to define the given action of profile. This can be used to specify exact actions to run or exclude from the profile. | Any string |
106+
| MetricsScenario | The name to use as the "scenario" for all metrics output for the particular profile action. | |
107+
| CommandLine | The command line parameters for FIO tool set. | Any Valid FIO arguments |
108+
| DiskFilter | Filter allowing the user to select the disks on which to test. | See the link 'Testing Specific Disks' at the top for more details. |
109+
| Duration | Defines the amount of time to run each FIO scenario/action within the profile. | integer or time span |
110+
| PackageName | The logical name for FIO package downloaded and that contains the toolset. | |
111+
| ProcessModel | Defines how the FIO processes will be executed. | <b>SingleProcess</b><br/>Executes a single FIO process running 1 job targeting I/O operations against each disk. Results are separated per-disk.<br/><br/><b>SingleProcessPerDisk</b><br/>Executes a single FIO process for each disk with each process running 1 job targeting I/O operations against that disk (higher stress profile). Results are separated per-disk.<br/><br/><b>SingleProcessAggregated</b><br/>Executes a single FIO process running 1 job per disk targeting I/O operations against that disk. Results are provided as an aggregation across all disks (i.e. a rollup). |
112+
| QueueDepth | Defines the I/O queue depth to use for the operations | integer |
113+
| Tags | Tags useful for telemetry data | Any comma-separated string |
114+
| ThreadCount | Specifies the number of distinct parallel operations/threads to run per job. | |
95115

96116
* **Profile Runtimes**
97117
See the 'Metadata' section of the profile for estimated runtimes. These timings represent the length of time required to run a single round of profile

website/docs/workloads/fio/fio-profiles.md

Lines changed: 36 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -99,10 +99,32 @@ aspects of the workload execution.
9999

100100
| Parameter | Purpose | Default Value |
101101
|---------------------------|---------------------------------------------------------------------------------|---------------|
102+
| DataIntegrityFileSize | Optional. Defines the size of the file/disk space that will be used for profile disk integrity scenarios/actions. | 4GB |
102103
| DiskFilter | Optional. Filter allowing the user to select the disks on which to test.<br/><br/>See the link 'Testing Specific Disks' at the top for more details. | BiggestSize |
103104
| DiskFillSize | Optional. Allows the user to override the default disk fill size used in the FIO profile (e.g. 500GB -> 26GB). This enables the profile to be used in scenarios where the disk size is very small (e.g. local/temp disk -> 32GB in size). | 500GB |
105+
| Duration | Optional. Defines the amount of time to run each FIO scenario/action within the profile. | 5 minutes |
106+
| Engine | Optional. Defines the I/O engine to use for the FIO operations (e.g. posixaio, libaio, windowsaio). | Linux = libaio, Windows = windowsaio |
104107
| FileSize | Optional. Allows the user to override the default file size used in the FIO profile (e.g. 496GB -> 26GB). This enables the profile to be used in scenarios where the disk size is very small (e.g. local/temp disk -> 32GB in size). | 496GB |
105-
| InitializeDisksInParallel | Optional. Specifies whether uninitialized/unformatted disks on the system should be initialized + formatted in parallel. | false (initialized sequentially) |
108+
| ProcessModel | Optional. Defines how the FIO processes will be executed. The following are valid process models:<br/><br/><b>SingleProcess</b><br/>Executes a single FIO process running 1 job targeting I/O operations against each disk. Results are separated per-disk.<br/><br/><b>SingleProcessPerDisk</b><br/>Executes a single FIO process for each disk with each process running 1 job targeting I/O operations against that disk (higher stress profile). Results are separated per-disk.<br/><br/><b>SingleProcessAggregated</b><br/>Executes a single FIO process running 1 job per disk targeting I/O operations against that disk. Results are provided as an aggregation across all disks (i.e. a rollup). | SingleProcess |
109+
| QueueDepth | Optional. Defines the I/O queue depth to use for the operations | 512/the thread count |
110+
| ThreadCount | Optional. Specifies the number of distinct parallel operations/threads to run per job. | # logical processors / 2 |
111+
112+
* **Profile Component Parameters**
113+
The following section describes the parameters used by the individual components in the profile.
114+
115+
| Parameter | Purpose | Accepted Values |
116+
|---------------------------|-------------------------------------------------------------------------------|-----------------|
117+
| Scenario | Scenario use to define the given action of profile. This can be used to specify exact actions to run or exclude from the profile. | Any string |
118+
| MetricsScenario | The name to use as the "scenario" for all metrics output for the particular profile action. | |
119+
| CommandLine | The command line parameters for FIO tool set. | Any Valid FIO arguments |
120+
| DiskFilter | Filter allowing the user to select the disks on which to test. | See the link 'Testing Specific Disks' at the top for more details. |
121+
| Duration | Defines the amount of time to run each FIO scenario/action within the profile. | integer or time span |
122+
| Engine | Optional. Defines the I/O engine to use for the FIO operations (e.g. posixaio, libaio, windowsaio). | Linux = libaio, Windows = windowsaio |
123+
| PackageName | The logical name for FIO package downloaded and that contains the toolset. | |
124+
| ProcessModel | Defines how the FIO processes will be executed. | <b>SingleProcess</b><br/>Executes a single FIO process running 1 job targeting I/O operations against each disk. Results are separated per-disk.<br/><br/><b>SingleProcessPerDisk</b><br/>Executes a single FIO process for each disk with each process running 1 job targeting I/O operations against that disk (higher stress profile). Results are separated per-disk.<br/><br/><b>SingleProcessAggregated</b><br/>Executes a single FIO process running 1 job per disk targeting I/O operations against that disk. Results are provided as an aggregation across all disks (i.e. a rollup). |
125+
| QueueDepth | Defines the I/O queue depth to use for the operations | integer |
126+
| Tags | Tags useful for telemetry data | Any comma-separated string |
127+
| ThreadCount | Specifies the number of distinct parallel operations/threads to run per job. | |
106128

107129
* **Profile Runtimes**
108130
See the 'Metadata' section of the profile for estimated runtimes. These timings represent the length of time required to run a single round of profile
@@ -225,11 +247,13 @@ This profile uses an algorithm to determine the total number of jobs/threads as
225247
|---------------------------|---------------------------------------------------------------------------------|---------------|
226248
| DiskFilter | Optional. Filter allowing the user to select the disks on which to test.<br/><br/>See '[disk testing scenarios](https://github.com/microsoft/VirtualClient/blob/main/website/docs/guides/usage-scenarios/test-disks.md)' for more details. | BiggestSize |
227249
| DiskFillSize | Optional. Allows the user to override the default disk fill size used in the FIO profile (e.g. 134GB -> 26GB). This enables the profile to be used in scenarios where the disk size is very small (e.g. local/temp disk -> 32GB in size). | 134GB |
250+
| Engine | Optional. Defines the I/O engine to use for the FIO operations (e.g. posixaio, libaio, windowsaio). | Linux = libaio, Windows = windowsaio |
228251
| FileSize | Optional. Allows the user to override the default file size used in the FIO profile (e.g. 134GB -> 26GB). This enables the profile to be used in scenarios where the disk size is very small (e.g. local/temp disk -> 32GB in size). | 134GB |
229252
| ProcessModel | Optional. Allows the user to override the default value you can selection Single Process for all disk(SingleProcess) or 1 process for each disk under test (SingleProcessPerDisk). | SingleProcess |
230-
| MaxThreads | Optional. Allows the user to override the maximum number of threads used by FIO.By default if 'null' is given as value. It will use the number cores of the machine | Number of CPU cores |
253+
| MaxThreads | Optional. Allows the user to override the maximum number of threads used by FIO. | # of logical processors |
254+
| ProcessModel | Optional. Defines how the FIO processes will be executed. The following are valid process models:<br/><br/><b>SingleProcess</b><br/>Executes a single FIO process running 1 job targeting I/O operations against each disk. Results are separated per-disk.<br/><br/><b>SingleProcessPerDisk</b><br/>Executes a single FIO process for each disk with each process running 1 job targeting I/O operations against that disk (higher stress profile). Results are separated per-disk.<br/><br/><b>SingleProcessAggregated</b><br/>Executes a single FIO process running 1 job per disk targeting I/O operations against that disk. Results are provided as an aggregation across all disks (i.e. a rollup). | SingleProcess |
231255
| QueueDepths | Optional. Allows the user to override the a comma seperated list of queuedepths to iterate. A single queueDepth can be named as ScenarioQueueDepth | "1,4,16,64,256,1024" |
232-
| DirectIO | Optional. Set to true to avoid using I/O buffering and to operate directly against the disk. Set to false to use I/O buffering. | true |
256+
| DirectIO | Optional. Set to true to use hardware I/O buffering and false to operate directly against the disk without any hardware buffering/caching (i.e. pure disk). | true |
233257
| InitializeDisksInParallel | Optional. Specifies whether uninitialized/unformatted disks on the system should be initialized + formatted in parallel. | true (initialized in-parallel) |
234258

235259
* **Profile Component Parameters**
@@ -238,14 +262,17 @@ This profile uses an algorithm to determine the total number of jobs/threads as
238262
| Parameter | Purpose | Accepted Values |
239263
|---------------------------|-------------------------------------------------------------------------------|-----------------|
240264
| Scenario | Scenario use to define the given action of profile. This can be used to specify exact actions to run or exclude from the profile. | Any string |
241-
| CommandLine | The command line parameters for FIO tool set. | Any Valid FIO arguments |
265+
| CommandLine | The command line parameters for FIO tool set. | valid FIO arguments |
242266
| BlockSize | The block size for FIO tool set. | 4k;8k;16k |
243-
| DurationSecs | The number of seconds to run the FIO scenario/action | |
244-
| IOType | Type of Input Output operation | RandRead;RandWrite;Read;Write |
267+
| DirectIO | Set to true to use hardware I/O buffering and false to operate directly against the disk without any hardware buffering/caching (i.e. pure disk). | true |
268+
| Duration | Defines the amount of time to run each FIO scenario/action within the profile. | integer or time span |
269+
| Engine | Defines the I/O engine to use for the FIO operations (e.g. posixaio, libaio, windowsaio). | Linux = libaio, Windows = windowsaio |
270+
| IOType | Type of Input Output operation | randread, randwrite, read, write |
271+
| MaxThreads | Allows the user to override the maximum number of threads used by FIO per job. | integer |
245272
| PackageName | The logical name for FIO package downloaded and that contains the toolset. | fio |
246-
| Tags | Tags usefull for telemetry data | Any comma seperated string |
247-
| DeleteTestFilesOnFinish | Not used. | |
248-
| Tests | Not used. | |
273+
| ProcessModel | Defines how the FIO processes will be executed. | <b>SingleProcess</b><br/>Executes a single FIO process running 1 job targeting I/O operations against each disk. Results are separated per-disk.<br/><br/><b>SingleProcessPerDisk</b><br/>Executes a single FIO process for each disk with each process running 1 job targeting I/O operations against that disk (higher stress profile). Results are separated per-disk.<br/><br/><b>SingleProcessAggregated</b><br/>Executes a single FIO process running 1 job per disk targeting I/O operations against that disk. Results are provided as an aggregation across all disks (i.e. a rollup). |
274+
| QueueDepths | Allows the user to override the a comma seperated list of queuedepths to iterate. A single queueDepth can be named as ScenarioQueueDepth | "1,4,16,64,256,1024" |
275+
| Tags | Tags useful for telemetry data | Any comma-separated string |
249276

250277
* **Profile Runtimes**
251278
See the 'Metadata' section of the profile for estimated runtimes. These timings represent the length of time required to run a single round of profile

0 commit comments

Comments
 (0)