Linux IOzone Workload
To do disk performance studies, we often use a Linux guest running the tool IOzone. IOzone is a publicly available disk performance analyzer. It runs on a number of platforms. See iozone.org for more information.
IOzone is a straightforward file system exerciser that measures disk performance through the following four-phase experiment:
- It creates a new file and writes it from beginning to end;
- It rewrites the file;
- It reads the file it just wrote;
- It rereads the file it just wrote.
Each of the four phases operates on the file in an interlaced fashion. By interlaced we mean that the file is not just sequentially handled from beginning to end. Rather, IOzone uses an input parameter called the stride to handle a record, skip over many records, handle another record, skip again, and so on, proceeding in modulus fashion until all records have been handled. For example, during the write pass, if the stride were set to 17 records, IOzone would write records 0, 17, 34, 51, ..., 1, 18, 35, ..., and so on until all records were written.
IOzone measures the elapsed time it experiences during each of the four phases of its experiment and prints the KB-per-second data rate it experiences in each phase.
To collect processor time per transaction, we use the zSeries hardware sampler to measure processor time. We define a transaction to be 100 KB handled through the four phases of the IOzone run. In other words, we define that the run contains 8192 transactions.
We run IOzone as follows:
- Linux guest virtual machine size is 192 MB.
- Linux file system is ext2.
- Ballast file 800 MB.
- Record size 64 KB.
- Processor cache size set to 1024 Kbytes.
- Processor cache line size set to 256 bytes.
- File stride size set to 17 * record size.
- Throughput test with 1 process.
- Include fsync in write timing.
It is important to notice that we chose the ballast file to be about four times larger than the virtual machine. This ensures that the Linux page cache plays little to no role in buffering IOzone's file operations. We wanted to be sure to measure disk I/O performance, not the performance of the Linux page cache.
We measure several different choices for disk technology, as described in the following table. The abbreviations explained in the table below appear elsewhere in this report as shorthand so as to describe the configurations measured.
Regarding block size, the following notes apply:
- For mke2fs, we use block sizes (-bs parameter) of 1024, 2048, or 4096 bytes, as called out in the tables below.
- On ECKD DASD, the formatting of the DASD tracks matches the -bs setting we use in mke2fs.
- On FBA DASD, the volumes are always formatted at 512 bytes per block.
Run | Subsystem | Disk type | Attachment | MDC setting | Linux driver | Block size |
---|---|---|---|---|---|---|
EDED | 2105-F20 FICON | ECKD | Dedicated | n/a | ECKD SSCH | 4096 |
EMD0 | 2105-F20 FICON | ECKD | Minidisk | OFF | ECKD SSCH | 4096 |
EMD1 | 2105-F20 FICON | ECKD | Minidisk | ON | ECKD SSCH | 4096 |
FDED | 2105-F20 FCP | Emulated FBA | Dedicated | n/a | FBA SSCH | 4096 |
FMD0 | 2105-F20 FCP | Emulated FBA | Minidisk | OFF | FBA SSCH | 4096 |
FMD1 | 2105-F20 FCP | Emulated FBA | Minidisk | ON | FBA SSCH | 4096 |
9DED | FAStT900 FCP with EDEV attribute FASTT | Emulated FBA | Dedicated | n/a | FBA SSCH | 4096 |
9MD0 | FAStT900 FCP with EDEV attribute FASTT | Emulated FBA | Minidisk | OFF | FBA SSCH | 4096 |
9MD1 | FAStT900 FCP with EDEV attribute FASTT | Emulated FBA | Minidisk | ON | FBA SSCH | 4096 |
LNS0 | 2105-F20 FCP | SCSI | Linux owns FCP adapter subchannel | n/a | zFCP | 4096 |
D210 | 2105-F20 FICON | ECKD | Minidisk | OFF | Diag X'250' | 1024 |
D211 | 2105-F20 FICON | ECKD | Minidisk | ON | Diag X'250' | 1024 |
D220 | 2105-F20 FICON | ECKD | Minidisk | OFF | Diag X'250' | 2048 |
D221 | 2105-F20 FICON | ECKD | Minidisk | ON | Diag X'250' | 2048 |
D240 | 2105-F20 FICON | ECKD | Minidisk | OFF | Diag X'250' | 4096 |
D241 | 2105-F20 FICON | ECKD | Minidisk | ON | Diag X'250' | 4096 |
G210 | 2105-F20 FCP | Emulated FBA | Minidisk | OFF | Diag X'250' | 1024 |
G211 | 2105-F20 FCP | Emulated FBA | Minidisk | ON | Diag X'250' | 1024 |
G220 | 2105-F20 FCP | Emulated FBA | Minidisk | OFF | Diag X'250' | 2048 |
G221 | 2105-F20 FCP | Emulated FBA | Minidisk | ON | Diag X'250' | 2048 |
G240 | 2105-F20 FCP | Emulated FBA | Minidisk | OFF | Diag X'250' | 4096 |
G241 | 2105-F20 FCP | Emulated FBA | Minidisk | ON | Diag X'250' | 4096 |