How do I test IO performance in Linux?
closed as too broad by Andrew Medico, Kevin Panko, Michael Gardner, dasblinkenlight, Michael Zajac Jun 26 '14 at 20:22Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question.If this question can be reworded to fit the rules in the help center, please edit the question. |
|||
|
IO and filesystem benchmark is a complex topic. No single benchmarking tool is good in all situations. Here is a small overview about different benchmarking tools: Block Storage:
File System (synthetic):
File System (workload):
Stony Brook University and IBM Watson Labs have published a highly recommended journal paper in the "Transaction of Storage" about file system benchmarking, in which they present different benchmarks and their strong and weak points: A nine year study of file system and storage benchmarking. The article clearly points out that the results of most benchmarks at least questionable. A note: Is the question programming related? Maybe not, but maybe it is. I spend a lot of time benchmarking the IO performance of the systems I develop. At least for me, questions about how to benchmarking these things is highly programming related. Please: Do not close all questions that are not development/programming related from your point of view. The point of view of other developers might be different. |
|||||
|
tool: fio link: http://freshmeat.net/projects/fio/ test physical disk IO:
set parameter: sequential r/w: rw=read or rw=write random r/w: rw=randread or rw=randwrite |
||||
|
if you need a quick way without hassle of installing anything . This is the method I use for write speed test:
And the output is something like this
Also : delete the test file after this to recover the extra space used Some explanation :
Adjust these parameters to change the size of the file written as per your server specs and the amount of time you want to spend writing. the read speed as suggested already by gtsouk, can be checked by using /dev/null as output. |
|||||
|
Let this run for a few minutes and stop it with ctrl+C. It will print the read transfer speed of your drive/controller. This is the maximum read speed you can get out of your drive. |
||||
|
you need to specify what you're testing for, otherwise benchmarks will only mislead. There are different aspects of IO performance that you need to chose to optimize for, and different parameters to play with. Your system parameters:
Your test parameters:
|
|||
|
There is an excellent program to test block storage IO on Unix called IORATE. You can get a copy at iorate.org. It can generate complex mixed IO, including re-use (hits) and hot zones for tiered storage testing. |
|||
|
sysbench See http://www.howtoforge.com/how-to-benchmark-your-system-cpu-file-io-mysql-with-sysbench Example
It can also test cpu, memory, threads, and database server performance, It's awesome. Or testing software written in java: http://www.dacapobench.org/ |
||||
|
Take a look at IOzone: http://www.iozone.org/ If you would like to read a whitepaper illustrating real-world usage on an HPC cluster, please see this pdf, page 36: http://i.dell.com/sites/content/business/solutions/hpcc/en/Documents/Dell-NSS-NFS-Storage-solution-final.pdf |
|||
|