[omniORB] CORBA performance on InfiniBand network
Johnny Willemsen
jwillemsen at remedy.nl
Mon Aug 3 12:04:44 BST 2015
Hi,
I agree, instead of fragmenting the data yourself, let CORBA do this, it
could do it probably much better then your code does. Also be aware that
CORBA is just a specification, there are multiple implementations which
means you now test the omniORB implementation. We do mostly use TAO and
TAOX11 which has its own optimizations, it could be worth to benchmark
with different implementations.
Also omniORB and TAO have support for ZIOP which enables you to let the
ORB compress your data, it is a trade off between CPU usage and
bandwidth and could help in some use cases.
In our experience we mostly beat any customer created own IPC mechanism
because a CORBA implementation is way more optimized.
Best regards,
Johnny Willemsen
Remedy IT
http://www.remedy.nl
On 08/03/2015 09:27 AM, Michael Teske wrote:
> Hi,
>
> without any in-depth analysis, bandwidth is not the only relevant
> networking parameter here. You might want to change ping time to your
> hosts, too. Because a CORBA call usually waits until an ACK is received,
> ping times can have a big influence here when sending small data
> packets. That's why we usually have algorithms that transfer more than
> one message per call, as CORBA sequences. If the messages neither get
> too small or too big, CORBA can be very performant, so I'd prefer it any
> time over self-written TCP protocols.
>
> Regards,
> Michael
>
>
> Am 03.08.15 um 07:01 schrieb Soundararajan, Krishna:
>> Hi,
>> I am performing a bandwidth comparison study on CORBA using Infiniband
>> and 10GeT link.
>> I created a simple CORBA app to test the CORBA performance on IB vs 10GeT.
>> A CORBA servant object is hosted on Windows R2 server with 64GB RAM and
>> Intel Xeon 2.5GHz processor.
>> The clients are hosted in RHEL server with 36GB RAM and Intel Xeon
>> 2.5GHz processor.
>>
>> There have been two variables which were used. Each remote call is
>> repeated until the total data sent is 8GB
>> a) Remote calls are made with different argument sizes from
>> 1kB,2kB,4kB upto 1mB.
>> b) Number of client threads is varied from 1 to 32(Each thread
>> splitting totalData/NumOfThreads)
>>
>> The surprising result is that CORBA performance on 10GeT is better than
>> Infiniband.
>> IB(theoretical max: 54Gbps) 10 GeT(theoretical max: 10Gbps) 1
>> GeT(theoretical max: 1Gbps)
>> CORBA B/w:8.66 B/w:8.76 B/w:0.864
>> MTU:2044 MTU:9048 MTU:63
>> Parallel:26 Parallel:32 Parallel:32
>> KB/call:256 kB/Call:256 kB/Call:64
>> Window scaling :ON Window scaling :ON Window scaling :ON
>>
>> Socket B/w:43.6 B/w:9.35 B/w:0.951
>> Rec.Window:1M Rec.Window:512K Rec.Window:63K
>> Send.Window:256 Send.Window:256K Send.Window:256K
>> Parallel:6 Parallel:2 Parallel:3
>>
>>
>> Here Socket performance means the bandwidth measured by iperf.
>>
>> With this results, I have following questions.
>>
>> 1. I read in several old articles in internet that ORB kills the
>> throughput because of inefficient memory copies and
>> marshalling/unmarshalling. In 10Gb Ethernet and 1 Gb Ethernet, I do
>> see almost 90% utilization(CORBA compared to ethernet). But IB card
>> give less than 25% of network utilization. What is causing this
>> overhead?
>> 2. Though CORBA is meant to be used for remote method calls, we are
>> amazed with its superiority in serializing. Can we use it as
>> alternative for socket data transfer with amnual serializing code?
>> Is CORBA suitable in high bandwidth networks for data transfer?
>>
>>
>> Thanks
>> Krishna
>>
>>
>>
>> _______________________________________________
>> omniORB-list mailing list
>> omniORB-list at omniorb-support.com
>> http://www.omniorb-support.com/mailman/listinfo/omniorb-list
>>
>
>
> _______________________________________________
> omniORB-list mailing list
> omniORB-list at omniorb-support.com
> http://www.omniorb-support.com/mailman/listinfo/omniorb-list
>
>
More information about the omniORB-list
mailing list