Operating System - Linux
1753278 Members
5599 Online
108792 Solutions
New Discussion юеВ

Re: Testing Disk I/O Performance

 
SOLVED
Go to solution
Jorge Cocomess
Super Advisor

Testing Disk I/O Performance

Hi,

Does anyone know how I can test my local attached disk storage by writing & reading and captured the disk I/O??

I am currently running RHAS 3.0 ia64 server.

Thank you in advance.

Jorge
15 REPLIES 15
Ivan Ferreira
Honored Contributor
Solution

Re: Testing Disk I/O Performance

You can use iometer
http://www.iometer.org/

iozone
http://www.iozone.org/

Or a simple dd to create a 1GB file and meassure the time

time dd if=/dev/zero of=/dev/sd bs=8192 count=131072

Remember this dd is command destructive.
Por que hacerlo dificil si es posible hacerlo facil? - Why do it the hard way, when you can do it the easy way?
Jorge Cocomess
Super Advisor

Re: Testing Disk I/O Performance

Ivan,

I've checked out your recommandations. Unfortunately, iometer doesn't support IA64 at this time. However, the iozone does, I think. Would you know how to use the IOzone utility?

Thanks,
Jorge
Jorge Cocomess
Super Advisor

Re: Testing Disk I/O Performance

Here's the result after I can the dd test command.

time -p dd if=/dev/raw/raw4 of=/dev/null bs=1024k

dd: reading `/dev/raw/raw40': No such device or address
262146+1 records in
262146+1 records out
real 1633.71
user 0.23
sys 59.88

It came back with results even though it said it couldn't find the device. Can someone let me know how to read these numbers?

Thank you!!

Jorge
Ivan Ferreira
Honored Contributor

Re: Testing Disk I/O Performance

time -p dd if=/dev/raw/raw4 of=/dev/null bs=1024k

dd: reading `/dev/raw/raw40': No such device or address
262146+1 records in
262146+1 records out
real 1633.71
user 0.23
sys 59.88


I think that it "does" find the device, but as you did not specified a "count" then it reached the end of the device.

Is this a device of 262GB aprox (262146 records of 1MB)? If so, then it took 27 minutes (16633/60) to read 262GB, that is about 164 MB/s (very good!).
Por que hacerlo dificil si es posible hacerlo facil? - Why do it the hard way, when you can do it the easy way?
Jorge Cocomess
Super Advisor

Re: Testing Disk I/O Performance

Ivan,

You're correct. The partition was roughly around 274GB raw. How do you specified a "count" within the command line that I used ealier?

As you've indicated, the I/O seems to be good. I don't think 164 MB/s is good since the storage is built on a HP EVA5000 Storage. Shouldn't I be getting something like double or 3 times faster than my testing? We were getting about the same speed when our Oracle DB was running on the MSA1500 storage.

Any ideas where else I can look for some answers??

Thanks,
Jorge
Ivan Ferreira
Honored Contributor

Re: Testing Disk I/O Performance

The question would be, is storage limitating I/O or are you reaching another resource limit? Is your server fast enough to do a storage load test?

The storage sould be connected to a sanswitch, you could monitor the performance via portperfshow command of the sanswitch, and lauch a few "dd" in parallel to try to saturate I/O, to different LUNs. Check also your CPU resource usage and try different block sizes.

You could also try different I/O elevators:

http://www.redhat.com/magazine/008jun05/features/schedulers/
Por que hacerlo dificil si es posible hacerlo facil? - Why do it the hard way, when you can do it the easy way?
dirk dierickx
Honored Contributor

Re: Testing Disk I/O Performance

why don't you give bonnie a try?
http://www.garloff.de/kurt/linux/bonnie/
Jorge Cocomess
Super Advisor

Re: Testing Disk I/O Performance

I ran another test on another disk volume just to see if there is a different. The results as follows:
time -p dd if=/dev/raw/raw47 of=/dev/null bs=1024k
dd: reading `/dev/raw/raw47': No such device or address
262138+1 records in
262138+1 records out
real 1562.16
user 0.25
sys 51.88

I will give other options you've suggested a look and let you all know.

Thanks,
Jorge
Ivan Ferreira
Honored Contributor

Re: Testing Disk I/O Performance

You don't need to read the whole device to do a performance test, reading/writing 1 GB would be enough to meassure the performance, you do that by specifying the block size and a count.

AFAIK, Oracle uses 8k block sizes, so, in my first example you can see:

time dd if=/dev/zero of=/dev/sd bs=8192 count=131072

time dd if=/dev/sd of=/dev/null bs=8192 count=131072

That is, read or write 8k 131072 times (8k*131072=1GB).

And the suggested test is to run in more than one dd at the same time to different devices.

Good luck.
Por que hacerlo dificil si es posible hacerlo facil? - Why do it the hard way, when you can do it the easy way?