Skip to content
David Hill edited this page Mar 3, 2016 · 2 revisions

iogen is a lightweight tool that generates heavily fragmented I/O. It accomplishes this by forking a number of children that run I/O to a filesystem.

This tool is intended to test storage stacks under stress and worst case scenarios. However due to heavy fragmentation of the I/O files, it tends to "bypass" caching algorithms in hardware storage stacks.

Although the algorithm for I/O generation is incredibly simple, it has proven to be very effective at bringing out issues in storage stacks. It first grows the initial file a minimal amount to be able to start running I/O in it. After the initial growth, it reads randomly within the current file size. Every run is a distribution between reads and writes which is governed by the read percentage value. The file is grown sequentially until it reaches maximum file size. Whenever this happens a message is logged to syslogd(8) and all writes become random.

Clone this wiki locally