CORBA PERFORMANCE
BENCHMARKING
ORB PERFORMANCE
When benchmarking ORBs, it is
important to look at more than just the total time it takes for a message
invocation to complete. One important measurement is the time it takes to
perform the transfer without the ORB, or with TCP/IP, to measure the time a
transfer takes using a simple socket program. The difference between the socket
time and the time with the ORB in the loop is the true measure of the CORBA
overhead.
CORBA
BENCHMARKS
Lockheed Martin Advanced Technology
Laboratories has performed tests of many real-time and non-real-time ORBs for
throughput and predictability characteristics. They have done a nice job of
isolating the determinism (or lack thereof) of the operating system and
protocol stack from the ORB processing. Their tests of ORBexpress® have
been extremely favorable, showing that ORBexpress beats all other
ORBs in performance.
Types of Overhead
CORBA adds two types of overhead,
Space and Time.
1)
"Space"
-
added to the system is the number of
bytes on the wire added to create the data for CORBA's standardized messaging
format, General Inter-ORB Protocol (GIOP), or Internet Inter-ORB Protocol
(IIOP) for TCP/IP systems. For TCP/IP systems, there is already a certain
amount of overhead inherent in the protocol. For example:
·
Ethernet adds 26 bytes per frame
·
IP adds 12 bytes per packet
·
TCP adds 24 bytes (+ options) per
packet
CORBA IIOP adds an additional 40 to
80 bytes per message to this overhead. With CORBA IIOP, sending fewer big
messages is more efficient (in terms of added overhead) than sending many small
ones.
2)
"Time" is the
amount of time the ORB takes to process each message.
This time is divided into two parts :
I ) Fixed Overhead
Fixed overhead is the overhead occurring as a result of the ORB performing a single, zero parameter message invocation. Fixed overhead consists of the time the ORB takes to de-multiplex, perform an up-call, context switch, perform system calls, and similar tasks that must occur for every message transfer. In order to achieve low fixed overhead, an ORB must quickly locate objects, invoke operations on the objects, and avoid unnecessary context switches and system calls.
Fixed overhead is the overhead occurring as a result of the ORB performing a single, zero parameter message invocation. Fixed overhead consists of the time the ORB takes to de-multiplex, perform an up-call, context switch, perform system calls, and similar tasks that must occur for every message transfer. In order to achieve low fixed overhead, an ORB must quickly locate objects, invoke operations on the objects, and avoid unnecessary context switches and system calls.
II ) Variable Overhead
Variable overhead is basically marshalling and de-marshalling speed, and will vary based on the number and type of parameters for a given message. In order to achieve low variable overhead, an ORB must marshall and de-marshall data quickly, use the transport efficiently, and avoid making multiple copies of the data.
Variable overhead is basically marshalling and de-marshalling speed, and will vary based on the number and type of parameters for a given message. In order to achieve low variable overhead, an ORB must marshall and de-marshall data quickly, use the transport efficiently, and avoid making multiple copies of the data.
No comments:
Post a Comment