PDA

View Full Version : IOMeter Linux benchmarking



Kain665
01-15-2013, 04:47 PM
Hi all,

I'm trying to get IOMeter to work properly in Linux. I have the latest dynamo executable available from sourceforge patched with the libaio patch detailed here:

http://sourceforge.net/mailarchive/forum.php?thread_name=44685876B8A16D4E8B8D935932BD 1B8102BFF66403%40exch-mbx-114.vmware.com&forum_name=iometer-devel

Problem is, performance is nowhere near FIO. Looking at iostat, it seems that there are very many IO request merges going on while running IOMeter - while none when running FIO. According the Mr. Axboe, there is a switch to disable all IO merging for a block device, located at /sys/block/sd_/queue/nomerge:

77 nomerges (RW)
78 -------------
79 This enables the user to disable the lookup logic involved with IO
80 merging requests in the block layer. By default (0) all merges are
81 enabled. When set to 1 only simple one-hit merges will be tried. When
82 set to 2 no merge algorithms will be tried (including one-hit or more
83 complex tree/hash lookups).

http://www.mjmwired.net/kernel/Documentation/block/queue-sysfs.txt

However, any time I try to edit the file I get a permissions error. I'm using EL6.2 (Kernel 2.6.32-220). Any ideas?

C'mon, Xtremesystems must have some Linux gurus!

Christopher
01-16-2013, 08:34 PM
To be perfectly honest, I've never got anything close to satisfactory out of IOmeter and Linux. And no matter what I tried, it all seemed to go pear shape in a hurry. Even if performance looked to be where it was supposed to (almost never), I had stability issues with IOmeter running on Windows and the Dynamo client running on Linux.

Are you sure that even with the libaio patch for dynamo that the libaio engine is being used? Aren't the merges kind of a sign that a sync engine is being utilized?

I'll spend some seeing what the deal is. I'm super curious now.

Kain665
01-17-2013, 10:38 AM
Great to have your interest!

Here's a small update:

I did some digging and the nomerges switch is only supported in 2.6.34 and newer kernels - RHEL 6.2/3 comes with 2.6.32. I updated my install to 3.5 - nomerges works fine but Dynamo has some issues on the newer kernel. It compiles fine and runs, but hangs on attempting to log into the IOMeter GUI.

I am currently running 2.6.35.9, nomerges works and so does Dynamo. Running with request merging turned completely off, performance is marginally higher than with it on. IOStat reflects device utilization similar to that of FIO - no request merges, and a steady request queue.

Although performance is now better, it's still not good by any means. I can't seem to get the IOPS over 100k, no matter what. Keep in mind that the LIBAIO patch, the nomerges switch, and using the noop scheduler all affected performance positively.

I've attached the Dynamo source that I'm using. It has the patch applied, and has it's dependency on stropts.h removed so you can compile it without it whining about files that were removed ages ago.

Edit:

I don't know how to attach it over the forum, there's no "Add files" button for me under Manage attachments in either Opera or Chrome. If you want the source just PM me your email.

Kain665
01-21-2013, 10:43 AM
This may be of use:

http://www.scheibli.com/patches/iometer/