[omniORB] BOA vs POA Performance

Craig A. Roloff car9697@drtn303.ca.boeing.com
Mon, 11 Dec 2000 09:26:48 -0800 (PST)


Actually, catior shows the server's IORs contain the machine's IP
address, not the loopback interface.  Per your suggestion, we tried
running the client on a separate machine.  No change.  We even tried
using the loopback interface (via -ORBpoa_iiop_name_port), also
without luck.

Unfortunately, trying a different OS is not an easy possibility.
We're willing to invest some effort to track down the problem but
we're at a loss on how to proceed.  Any ideas?

Thanks.

| > We have an HP-UX 10.20 client/server application we want to
| > upgrade from omniORB 2.8.0 (BOA) to omniORB 3.0.2 (POA).  The
| > conversion was relatively simple but the resulting performance
| > is perplexing -- the POA version runs an order of magnitude
| > slower.
| 
| The POA does add some overhead, but it's minimal. You certainly
| shouldn't be seeing such an enormous difference.
| 
| > The server and the client run on the same machine (indeed they
| > are parent and child processes).  When we try all four of the
| > BOA/POA combinations only the POA server combinations are slow.
| > When using either the BOA or POA client with the BOA server, the
| > application runs in 11 seconds.  When using either client with
| > the POA server, the application runs in 140 seconds.
| 
| This sounds very similar to a problem we've seen on Linux. When client
| and server are in different processes on the same machine, so the TCP
| loopback is being used, there is a very odd pattern of performance. A
| simple program which does several thousand requests containing an
| octet sequence fluctuates wildly in execution time.
| It only does that through the loopback interface. Across a
| network, the time increases roughly linearly with sequence size, as is
| expected.
| 
| The problem seems to be that omniORB 3 is more aggressive with sending
| data in large lumps than omniORB 2 was. That ought to make it faster,
| but it seems to interact badly with the Linux loopback interface.
| Maybe HP-UX is the same. Is there any way you can test your program
| across a network, to see if the performance improves?  Another
| possibility is trying on a different OS, to see if the problem is
| HP-UX specific.