OS   IOPS value Vs  Storage IOPS value

mokkan
mokkan used Ask the Experts™
on
How do we differentiate the IOPS value from  OS to Storage. For an example I'm writing 8K block of data using dd command in linux

dd if=/dev/zero of=/opt/rg/perf/testing123 bs=8k count=30000000
245760000000 bytes (246 GB) copied, 334.014 s, 736 MB/s

IOPS value is 30000000/334= 89820

but in Storage I'm only seeing around 2000 IOPS. IF I understand correctly it converts to different block size, and then do the calculation?
Comment
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
President
Top Expert 2010
Commented:
dd does NOT write data to the HDD in 8KB I/O chunks, or for that matter, the way you are running it, it won't even write only 8KB x 30000000 bytes of data.

Your filesystem, kernel, and device drivers are doing a heck of a lot of things underneath the covers such as dealing with journaling, aggregating I/O, and potentially doing some compression depending on some settings.

It is even queuing I/O, so if you kill the dd, you will note that the HDD still blinks for a while after dd is killed.

If you want to measure how fast data gets to the disk, with reasonable accuracy, you must do a dd but set the of= to the raw physical device (which destroys file system).   If you want to insure that the block sizes are correct and when you do a dd to write chunks in 8KB and exactly 8KB of data gets written and nothing else, then you have to write a program that uses the pass-through /dev/sg driver and send out the WRITE(10) and/or WRITE(16) CDBs.   The raw SCSI method is the ONLY accurate means of having complete control.
Top Expert 2014
Commented:
Same goes for Windows, the device driver will even re-order writes to try to make bigger I/Os to cut down the IOPS requirement especially if it's a clever RAID controller.

Author

Commented:
Thank you very much. If I'm  writing to  raw device, then how do I much up IOPS value with storage? Does it need to be equal or depends on the storage and stripe size?
How to Generate Services Revenue the Easiest Way

This Tuesday! Learn key insights about modern cyber protection services & gain practical strategies to skyrocket business:

- What it takes to build a cloud service portfolio
- How to determine which services will help your unique business grow
- Various use-cases and examples

DavidPresident
Top Expert 2010
Commented:
There is no such thing as stripe size when sending raw WRITE commands to the HDD.  If you send it 2,618 bytes, then that is what it writes.  IF you send 32,768 bytes, then that is what it writes.

Now what i think you want to do is send raw SCSI commands to the RAID volume, and that process depends on whether you are doing hardware or software RAID .. so be specific, what is the method you use for RAID?

Author

Commented:
No, I mean in storage side, does it convert to different stripe size and write it to disk?
DavidPresident
Top Expert 2010
Commented:
If you send the raw scsi commands to the RAID volume, then the controller will slice and dice as necessary to get it to the disk.  Example, if stripe size is 64KB and you have a 3-disk RAID5, then if you send just one byte to the raid volume, then this will generate approx 256KB worth of I/O.

But if you read 1 byte, then that could generate anywhere from 1 byte to 64KB worth of physical disk I/O.

It is all dependent on understanding the RAID architecture.

Author

Commented:
Thank you all.

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial