1

I need to find out about the impact different levels of disk I/O have on my application. To do so I am looking for a way to generate different amounts of disk load while I am running the application in a benchmark mode.

We currently get complaints from users about slow performance, however the information we get is very thin, so we cannot yet determine where exactly the problem is. I/O is the primary suspect, however we'd like to know for sure.

For starters I would be fine with something to create a configurable continuous read or write load, e. g. from /dev/zero to a tmp file or something. I know I can use dd, but this will push the disk to the limit immediately whereas I'd like some kind of throttle to make different test runs with increasing amounts of background traffic.

To make things a little more challenging, this has to run on RedHat9 boxes, which means kernel 2.4. So ideally this would be some kind of script that makes use of the default tools present anyway.

5 Answers 5

3

You could make a big file (eg 1GB) and then use rsync to copy the file. rsync has a built in option to limit the bandwith. So you could copy the file at 10KiB/sec, or 50KiB/sec or 2MiB/sec, etc.

1
  • This is a great idea, especially since our production system is handed some of the data to write via the network. This would reflect the actual environment even a little more. Jun 23, 2009 at 9:44
1

As far as I remember, Bonnie can create some load : http://www.coker.com.au/bonnie++/ If it does not work the way you want it to, compose a small bash script that will, using various utilities such as dd, rm, ls (or the mentioned rsync).

1
  • Bonnie++'s very good at simulating different types of I/O. But you can't throttle what it does. It's all or nothing.
    – Dan Carley
    Jun 23, 2009 at 10:50
0

If you have a benchmark mode can you spin up multiple instances of it? If so you can keep running copies until you get something close to your production load.

0

You may use a scriptable tool to stress the disks with the proper pattern. For instance :

  • IOZone is a cli tool, quite easy to set up, gives directly CVS or XLS files ( www.iozone.org )
  • IOMeter has a windows GUI to remotely control what's happening in real time. ( www.iometer.org )

Both allow you to choose precisely how to balance read and write, IO size, etc.

0

rugg is a disk testing utility that may do the trick for you. You can control the number of threads it uses to perform its tests thus controlling the load on the disk(s) and the system. It also allows you to control whether it does its tests in parallel or sequentially, adding another level of control.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .