Hello everybody.
I think there's a misunderstanding of bonnie++ does. I looked for other entries here in the forum about bonnie++ and also the HardwareTuningFactor (http://wiki.splunk.com/Community:HardwareTuningFactors) , but I really think that they are not correct. Looking at bonnie++ site (http://www.coker.com.au/bonnie++/), and also in a blog from the site (http://etbe.cocker.com.au/) I didn't find any place that tells that bonnie measures IOPS. Not only this. In Russell Cocker (bonnie++'s author) blog, the only result for the search iops was about a new patch regarding Direct I/O that was developed by Dave Murch from Violin Memory (http://etbe.coker.com.au/?s=iops).
Violin Memory itself is a company that does flash storage appliances and arrays and they have small lectures of how does performance can be measured in disk subsystems. Two different, but related articles shows clearly that bonnie++ doesn't measure IOPS (http://www.violin-memory.com/blog/the-fundamental-characteristics-of-storage/
http://www.violin-memory.com/blog/understanding-io-random-vs-sequential/).
Then I started searching here in answers.splunk.com about bonnie++ and found some links:
http://answers.splunk.com/answers/116011/bonnie-anything-splunk-specific.html
http://answers.splunk.com/answers/60452/bonnie-results-for-different-raid-configurations.html
http://answers.splunk.com/answers/72091/how-to-calculate-iops-without-using-bonnie.html
http://answers.splunk.com/answers/29919/testing-splunk-systems-with-iozone-how-to-interpret-results.html
http://answers.splunk.com/answers/75907/calculating-iops-from-bonnie-results.html
http://answers.splunk.com/answers/84337/how-can-i-use-bonnie-to-measure-iops.html
http://answers.splunk.com/answers/60745/bonnie-for-vm-iops-monitoring.html
http://answers.splunk.com/answers/224661/iostat-how-do-i-get-disk-iops-out.html
This last one made me really curious... because someone wrote "This wont give you IOPS. You'll need to look at a different tool for getting accurate results on the linux platform.. Check out bonnie++" But bonnie++ also doesn't tell IOPS.
Researching more about the subject, I found two interesting discussions in serverfault.com, a place that can be compared to this forum, as the nature is the same:
http://serverfault.com/questions/578250/interpreting-iops-these-bonnie-and-iostat-results - This one contradicts explicitly the sentence above that tells that iostat doesn't give IOPS when someone answers: "What are you expecting? Your results look fine. The tps figure is what you should be monitoring if you're specifically trying to determine IOPS."
The other discussion that I found was:
http://serverfault.com/questions/517051/can-i-determine-iops-on-a-disk-array-using-bonnie
that basically tells that if you want to measure IOPS, then bonnie++ is a good way to generate data in disk, but another tool is needed to measure it, like iostat. Also, tps again is used to be the IOPS measure reference.
After reading all of the links above, I was pretty sure that bonnie++ could not measure IOPS, but I decided to try a different approach. bonnie++ doesn't tell anything about IOPS, but what about iostat? And in man page (http://linux.die.net/man/1/iostat) I could read this:
"tps
Indicate the number of transfers per second that were issued to the device. A transfer is an I/O request to the device. Multiple logical requests can be combined into a single I/O request to the device. A transfer is of indeterminate size."
It was written in all words that this is what I'm looking for. IOPS.
The reason to write this answer is that bonnie++ to be used to measure IOPS is not adequate, and achieve 1200 Random Seeks /s as suggested is far away more difficult than achieving 1200 IOPS based on the nature of each one.
What I ask now is: Splunk recommends 1200 IOPS or 1200 Random Seeks/s ? This question become more important than ever now.
... View more