Toad World® Forums

Quest BMF - Can I change Read/Write ratio ?


I am running TPC-C workload using Quest benchmark factory. As per my understanding, I should see around 70% Read and 30% write transactions when I execute TPC-C transactions. I am monitoring the IOPS on my storage array but observing almost 70% write and 30% read operations.

Am I missing anything here ?

If I am executing OLTP(TPC-C) transactions, I should have seen more read and less write transactions ??

Is there any way, I can specify the Read/Write ratio in Quest BMF ?

Any help is greatly appreciated.


Your R/W ratio as observed on the array will be skewed by buffer cache hit/rehit behaviors in the server.


Thanks for the response.

I am still confused. I am using a database with more than 100GB size. I am also monitoring the I/O transactions on the disks. The disk I/Os are also reporting more writes than read operations. If I am running TPC-C workload, it should be other way right ? I should have seen more reads than write operations…




The database will initially do quite a few real read IOs to populate the buffer cache - it will periodically flush these during a checkpoint operation - assuming some correlation between inbound read and write transactions, and array side read and write IO you would expect roughly proportional ratios. However once the server side cache begins to fill you have the very real (99+% in some cases) possiblity of a cache re-hit - in that case the inbound read transaction does not generate an associated read IO. However your writes are still causing dirty pages which must be checkpointed. (there is a corresponding cache re-hit on write as well) However those pages that were just written in a checkpoint do not need to be re-read.

This is, or course, all very dependent on workload and locality of reference - but you can see how the inbound transaction R:W ratio an the IO ratio observed on the array can be dramatically different.



Thanks a lot for the detailed explanation.

When I run ORION tests( 70% Read and 30% write ), I see the same ratio being updated on the array as well. Just wondering why server side cache does not have any impact in this case.

Also, is there any way I can simulate the exact read/write ratio using Quest BMF tool ?



I’ve never used ORION - I mostly use MS SQL Server. Based on Oracle’s website it’s a IO generator - so you would expect a consistent R:W ratio. It’s not using the DB server and buffer cache so all of that would not apply.

I don’t know how to make BMF generate a target R:W ratio - maybe someone from Quest would have an idea.


Message was edited by: jmoran after consulting Google.


In order to get the exact read/write ratios that you desire you would need to setup your own custom test which would be setup to force a read IO. As explained earlier writes are easy to control, but the reads get more complicated when going through the database engine. A random read from a very large table(s) so that the table information cannot be cached. You may also have to change the amount of rows retrieved in order to get the read rate up to what you want. In other words there is not an easy solution.