INTRODUCTION
Overview
Download and Install
Quick Start
Documentation
Publications

NONFRAMEWORK CODE
Driver Interfaces
Drivers
Libraries
Utilities

FRAMEWORK CODE
Interfaces
Components
Libraries
Utilities

Full Software Listings

DEVELOPER
Tutorials
Examples
Dev Guide
Dashboard

PEOPLE
Contributors
Users

SourceForge.net Logo
Project
Download
Mailing lists

 

         

Performance of Orca Components

Note:
Reviewed for release 2.2.0.

Performance of a distributed system can be measured in variety of ways. For comprehensive performance tests of Ice itself, see this Ice vs CORBA comparison done by ZeroC.

The tests we perform are slightly different and reflect the typical usage of our components: frequent transfer of small to medium size messages. Here we provide some numbers on round trip time (RTT) for sending messages of various sizes. The plots below show average RTT for sending 100 objects with an interval of 0.25s. Vertical bars show min and max values. Ping results are shown for comparison.

perf_rtt_all.png
Hardware
  • Computers: rack-mounted servers with Intel DG965RY motherboards, with 2-core 2.13GHz Intel Core-2 Duo 6400.
  • Network: 1000Mb/s Ethernet using a LinkSys switch.
Software

Operating System.

  • Linux: Kubuntu 6.10. Kernel 2.6.17-10.
  • QNX: Neutrino 6.2.3.

Ice v.3.1.1

  • Compiled with default options.

Orca v.2.2.0

  • Compiled compiled with CMAKE_BUILD_TYPE=Release (translates to -O3 for gcc).
  • Test components orca_test_pinger and orca_test_replier.
Objects

We transmit orca::PingReplyData which contains a single integer and a variable-length sequence of doubles. We use doubles to make Ice work a bit harder during marshalling/demarshalling. Presumably, a sequence of bytes can be copied all at once, whereas doubles must be converted according to endiness. (This is just a theory and should be verified). The length of the sequence of double is varied from 1 to 10e6. The size of the byte stream after serialization is estimated using sizeof() function. This is the size of the payload. The actual number of bytes on the wire is slighly higher due to Ice protocol overhead.

Procedure

Orca objects are sent from Pinger to Replier and immediately sent back. The process is repeated 100 times. There is 0.25s delay after each send-receive operation. For a tutorial on how to obtain these results in your environment see Testing Orca Latencies.

UNIX ping for comparison

The ping settings closely follow the settings described above. RTT values are measured for packet sizes from 16 B to 64 KB (maximum allowed size).

$ ping host -c 100 -s 8 -i 0.25 -q
$ ping host -c 100 -s 24 -i 0.25 -q
...
$ ping host -c 3 -s 32760 -i 0.25 -q
$ ping host -c 3 -s 65499 -i 0.25 -q
 

Webmaster: Tobias Kaupp (tobasco at users.sourceforge.net)


Generated for Orca Robotics by  doxygen 1.4.5