12 March, 2007

Throughput v Scalability

How do you measure "performance" of an Oracle Database [or "Database Server"] ? When asked to make a presentation on "performance" do you present CPU utilisation figures obtained from the OS ? Do you present I/O waits obtained from "sar" or "iostat" ?
Oracle's Wait Interface does allow us to provide a "breakdown" of Total Response Time into CPU, I/O waits and -- importantly -- Contention : Latches / Locks (Enqueues) etc. You could have a system where a single program has very high throughput -- screaming.
Add multiple copies of the same code running concurrently, multiple users accesing the same data and you run into Contention. You have to change focus from Throughput to Scalability. You have to convince users / management how Scalability can be an issue even when "only queries" are running. Latch management means that Read Only operations (known by users as "Reports") can , at times, "not Scale".

2 comments:

Anonymous said...

Good Comentary!!
How to calc troughput of my query?

Hemant K Chitale said...

Luciano,
"Throughput" is measured of the system / database, not a query.
For a query "Response Time" is measured.
The "effort" in a query (not actually throughput) comprises of the number of I/Os (physical and logical).

Hemant K Chitale