Stress Test: fs_stress

### TEST NAME

> fs_stress - UNIX file system stress utility

### SYNOPSIS

> `fs_stress` [ `-D` device ] [ `-F` fstype ] [ `-f` min:max ] [ `-n` num ] [ `-t` min:max ] [ `-mRLAdrsN1` ]

### DESCRIPTION

> By default, `fs_stress` performs stress tests against all available file systems and all devices. By default, `fs_stress` reads the mount table and selects all file systems currently mounted that meet the test criteria.

> Instead of testing all file systems and devices, you can configure `fs_stress` to perform stress tests against a specified file system type and specified device.

> All I/O is sequential. By default, the amount of data to transfer is doubled at each iteration. You can use the `-r` option to vary the incremental transfer size randomly.

> Any selected file system or device is skipped if it is marked read-only, if `fs_stress` has insufficient access privileges, or if the size is less than the maximum file size required by `fs_stress`.

> You can use the `-d` option to perform raw disk I/O instead of file I/O.

> CAUTION: Specify an unused slice to test raw disk I/O. Raw disk I/O could scratch the whole disk and all data will be lost.

> During a test run, `fs_stress` performs the following tasks:

> - Steps through each selected file system
> - Makes a test directory
> - Steps through increasing file sizes
> - Performs `write` operations
> - Performs `read` operations
> - Performs `write` operations with record locking
> - Performs `read` operations with record locking
> - Performs `aiowrite` operations
> - Performs `aioread` operations

> To test the compatibility of a 32-bit application on a 64-bit system environment, the test run time is divided into two halves during certification. The 64-bit `fs_stress` application runs in first half of the test, and the 32-bit `fs_stress` application runs in second half of the test.

### OPTIONS

> `-D` device
>   Use only this device. The default is to use all devices.

> `-F` fstype
>   Use only this file system type. The default is to use all file system types.

> `-f` min:max
>   The minimum and maximum file sizes to step through. The default is 1m:4m. See Valid suffixes for min and max values.

> `-n` num_tests
>   The number of tests to run per file system. The default is 2.

> `-r`
>   Use random file sizes and transfer sizes. The default is to step through the minimum and maximum file sizes in fixed steps.

> `-t` min:max
>   The minimum and maximum transfer sizes to use. The default is 1k:64k. See Valid suffixes for min and max values.

>   File transfer increments start at either 1 Kbyte or the user-specifed min minimum. File transfer increments double with each step until one of the following maximums is reached: either the default maximum of 64 Kbytes or the user-specifed max maximum. Use the `-r` option to vary the incremental transfer size randomly.

> Valid suffixes for min and max values:

> `b` bytes

> `k` kilobytes

> `m` megabytes

> `g` gigabytes

> The following options restrict or modify the type of I/O tests:

> `-A`
>   Perform asynchronous I/O only.

> `-L`
>   Use record lock only.

> `-R`
>   Use regular I/O only.

> `-d`
>   Use raw disk I/O instead of file I/O.

>   Note: If you specify this `-d` option, you must also specify the `-D` option with a raw slice.

> `-m`
>   Memory map the file under test.

> The following options are used in benchmarking:

> `-1`
>   Select only one partition per file system.

> `-N`
>   No byte comparisons.

> `-s`
>   Silent mode (do not display transfers).

### OUTPUT

> This test sends output that describes the test command executed to standard output.

> If critical failures occur, the test exits and writes the errors to standard error.

### DURATION

> About 2 hours

### POSSIBLE CONCURRENT TESTS

> This test can run concurrently with `CON5`, `cdrom`, and `dd`.

### EXAMPLES

> #### Example 1:

> This example runs a basic set of tests on all file systems that are mounted, subject to the constraints noted above.

> > `# fs_stress`

> #### Example 2:

> This example runs only on UFS file systems, performs 20 tests per file system instead of the default of 2, and uses a broader range of file sizes and transfer sizes.

> > `# fs_stress -F ufs -r -n 20 -f 128k:16m -t 1k:256k`

Copyright 2005 Sun Microsystems, Inc. All rights reserved.