Use IOmeter under Linux

IOmeter is a collection of tools for running detailed IO benchmarks. It is often used as the tool is able to reproduce the characteristics of current applications and services. IOmeter consists of a management software that manages and evaluates the particular tests and Dynamo – an executable that run these tests in multiple threads on the local or a remote computer.

Beside Windows, the last version of IOmeter also supports Linux on 32- and 64-bit machines. The graphical management software for controlling the tests is only available on Windows, for Linux systems only the worker engine dynamo can be downloaded. This engine can be downloaded on the project website. Older versions are also available for NetWare, Solaris and Linux for the dowdy architectures XScale and PowerPC.

For communicating with the management station, Dynamo uses a random high TCP port aus – it is not possible to configure a fixed value. For debugging and testing setups it might be easier to temporarily disable the local firewall of the system you want to benchmark. It might also be a good idea to also disable SELinux for the test:

# wget
# tar xf iometer-1.1.0-linux.x86_64-bin.tar.bz2
# service iptables stop ; setenforce 0

Afterwards dynamo can be started on a host (mySrv in this example) like this to be managed by a Windows PC (myDesk in this example):

mySrv # ./dynamo -i myDesk -m mySrv

The switch -i defines the the name of the Windows machine running IOmeter. It is recommended to start dynamo after IOmeter. The hostname of the system that should be benchmarked is assigned using the switch -m – that value is used by IOmeter on the Windows system. If you have problems with DNS you can also assign the IP. To assign a readable name to the IP inside IOmeter you can specify a string along with the optional switch -n:

mySrv # ./dynamo -i -m -n mySrv

Afterwards, dynamo establishes a connection to the management software and starts scanning the host for devices:

Dynamo version 1.1.0, x86-64, built Mar 25 2014 22:08:27

Command line parameter(s):
 Looking for Iometer on "myDesk"
 New manager name is "myDesk"
Sending login request...
 mySrv (port 39472)
Successful PortTCP::Connect
 - port name:

*** If dynamo and iometer hangs here, please make sure
*** you use a correct -m <manager_computer_name> that
*** can ping from iometer machine. use IP if need.
 Login accepted.
Reporting drive information...

In this example the TCP port 39472 is used. If you don’t want to disable the local firewall you will need to open this port.

Afterwards the system is shown in IOmeter. Now it is possible to configure the particular drives and test scenarios:

IOmeter + Linux

IOmeter + Linux

Don’t forget to enable the local firewall and – if used – SELinux after benchmark tests:

# service iptables start ; setenforce 1

Sharing is caring

4 comments Write a comment

      • Dear Christian, you should need to talk about some workload scenarios and supply some .icf in order to simulate some of these scenarios themself.
        Yuo just wrote about the iometer/dynamo intercommunication, but in this we are talking about not so much. Sorry for the comment, but really in a guide you should cover also the analysis problem, not only the “make it work” problem (that for somebody could be enough but not if you intend to benchmark a system).

        thank you

      • Hey Andrea,
        thanks for you feedback!

        I was writing this post back then when I was doing very basic IO analysis during my work on vSphere High Performance essentials. So you’re absolutely right, this post focusses rather on installation and getting things up than deep diving IO benchmarking. As you know, IOmeter can be used to benchmark very specific IO application patterns.

        I’d love to hear some of your thoughts – how are you benchmarking systems?

        Best wishes,

Leave a Reply