|
Real Application Clusters
|
In this issue, I actually analyze a system structured with Real Application Cluster (RAC)
.
Following is RAC hardware configuration.

--------------------------------------------------------------------------
INSTANCE[1-n]: instances configuring RAC
Public LAN: LAN used to access database
LAN connecting with application server
Private LAN: LAN configuring RAC interconnect
cache fusion is used
Private LAN is structured with gigabit ethernet
Shared Disk: disk shared among instances
In RAC, shared disk is mostly used in RAW device.
-------------------------------------------------------------------------
The RAC configuration above looks similar to other cluster databases.
However, as well as OPS, Oracle in every instance is active and is available.
This is different from the clustered database with Hot/Cold standby.
In other words, all resources in RAC database are active. Thus, RAC
has advantage in operating capability.
What is the difference between RAC and OPS, then?
OPS serves in all instances as RAC does, but what makes major difference
between the two is cache fusion using interconnect.
I don't talk about how cache fusion operates in detail. Cache fusion is generally
used to transfer or share the same Oracle block that is requested by instances.
OPS cache fusion is capable of processing READ/READ and READ/WRITE requests
from instances but is not capable of processing WRITE/WRITE request.
When OPS cache fusion receives WRITE/WRITE request, the cache fusion writes
the request back to the disk and reads it from the disk.
In RAC, when cache fusion receives WRITE/WRITE request, cache fusion enables
accessing the same block quickly.
In other words, RAC cache fusion prevents disk I/O (that is one of the serious bottlenecks)
from occurring and consequently, prevents performance slowdown.
Now, I actually examine actual process capability.
I use OLTP system where 1000000 of data expected to be updated in an hour.
RAC is structured with two instances and each has six CPUs and 8GB of memory.
I let 250 sessions access each instance from application server to database server above.
First, I estimate the processing speed for one side of the instance, and then estimate the
processing speed for both instances. I then calculate the processing speed.
Result is as follows:
CASE INSTANCE NO SESSIONs EPS(*1) TPS(*2)
=======================================================
01 1 237 16,083 732.3
-------------------------------------------------------
02 1 256 5,453
2 256 5,362
----------------------------------------------
Total 512 10,815 489.4
-------------------------------------------------------
|
*1: EPS (Execution per second): Number of SQL executions per second
*2: TPS (Transaction per second): Number of transactions per second
Please pay not much attention to number of sessions in CASE 01...
When I double the number of sessions in RAC environment with two instances,
process speed becomes slower than the one in a single instance.
Scalability is approximately 0.67.
Regarding CASE 02, the process speed looks normal, but it does not mean anything
if the process speed slows down after I structure RAC environment.
That's it for today.
Tadashi Yamashita
|
|