[omniORB] Extreme slowdown of omniORB with messages >=1024 characters

Robert Nebauer robert.nebauer@fait.at
Wed, 27 Mar 2002 15:27:22 +0100


Am Dienstag, 26. M=E4rz 2002 17:40 schrieb Duncan Grisby:
> On Tuesday 26 March, Robert Nebauer wrote:
> > I played a little bit with the echo examples in the omniORB4-20020325
> > snapshot. While sending messages greater than or equal 1024 chars (i.=
e.
> > strings with a length of 1023 characters) omniORB slows downs extreme=
ly.
> >
> > The performance drops from 0,3 ms/call to 80 ms/call (Athlon 700mhz) =
and
> > the cpu-usage goes down to 1-2%. It doesn't matter if thread tracing =
is
> > enabled or not.
>
> Are the client and server on the same machine? =20

Yes.=20

> There is something
> very dodgy about the Linux TCP loopback that causes wild fluctuations
> in transmission times. If you increase the message size even more,
> you'll find that the time decreases again, then cycles.
>
> The work-around for omniORB 4 is to enable the Unix domain socket
> transport, since that works fine. Use command line arguments of
> -ORBendPoint giop:unix: -ORBendPoint giop:tcp:: (or the config file
> equivalents) to enable the Unix transport.


With "-ORBendPoint giop::unix:" the performance is excellent now. But the=
=20
slowdown probleme occurs also on different machines. I have no troubles w=
hen=20
a non omniORB-client (e.c. ORBit-0.5.14) is sending the message.

Here my performance results:

+ RedHat 7.1, linux-2.4.17
+ 1000x calls of echo()
+ with no reply from server (empty string).
+ first column: msg length, second column: time for 1000 calls
+ omniORB-20020326 on client and server

same machine: -ORBendPoint giop:unix:
(good - scales linear with the message size)

512       0.193s
1023      0.199s
1024      0.215s
2048      0.230s
4096      0.251s
8192      0.294s
16384     0.386s
32768     0.594s
65536     1.544s
131027    3.909s
262144    7.943s
524288   16.481s
1048576  30.270s

same machine: -ORBendPoint giop:tcp::
(bad at some msg. sizes)

512        0.220s
1023       0.224s
1024      40.020s   <=3D slow, very low cpu usage
2048      40.023s   <=3D slow, very low cpu usage
4096      40.029s   <=3D slow, very low cpu usage
8192      40.026s   <=3D slow, very low cpu usage
16384      0.430s
32768     40.178s   <=3D slow, very low cpu usage
65536      1.821s
131027    24.958s   <=3D slow, very low cpu usage
262144    39.287s   <=3D slow, very low cpu usage
524288    50.375s   <=3D slow, very low cpu usage
1048576   70.112s   <=3D slow, very low cpu usage


different machines (100mbit): -ORBendPoint giop:tcp::
(bad only at 1024 chars)

512        0.368s
1023       0.431s
1024      40.017s   <=3D slow
2048       0.694s
4096       0.849s
8192       1.295s
16384      2.295s
32768      4.540s
65536      9.146s
131027    18.323s
262144    45.007s
524288    72.990s
1048576  149.924s


RN

--=20
Robert Nebauer R&D
FAIT Internet Software AG
Getreidemarkt 14/29, A-1010 Vienna, Austria
phone: +43 1 585 56 30 - 14, fax: +43 1 585 56 30 - 33
mailto:robert.nebauer@fait.at
http://www.fait.at