Tuxedo 8.1 and 9.1 - WSNADDR Not Balancing Load (Doc ID 777224.1)

Last updated on NOVEMBER 04, 2016

Applies to:

Oracle Tuxedo
Information in this document applies to any platform.
Information in this document applies to any platform

Goal

With a mutli-hosted Tuxedo Application with a WSL Server available on each node, Tuxedo /WS client calls will not be load balanced across the available WSL Servers.

For example by using the "|" syntax to balance the load across these WSL processes (let say 3 WSL Servers), the expected behavior would to see a load balanced between all WSL Servers (with 3 WSL Server means 33% of calls per Server).

However, the load figures with be higher for the 1st WSL Server specified and will decrease to get the last WSL Server with lower load (with a 3 WSL servers list in WSNADDR: the load of the 1st WSL Server > the load of the 2nd > the load of the 3rd)

As example with the WSNADDR string set up for all clients:

WSNADDR=(//mach1:7080|//mach2:7080|//mach3:7080)

The distribution is:

Machine #1 (mach1): 56%
Machine #2 (mach2): 28%
Machine #3 (mach3): 15%

By getting serveral WSNADDR setting per group of Tuxedo /WS CLient it could be workarounnd, but it will not be feasible for all configuration.

If you look at the distribution, it is almost exactly that machine #1 receives twice as many requests as machine #2, and machine #2 receives twice as many requests as machine #3.

It is as if the semantics for the /WS balancing using the "|" is using some sort of preference algorithm where each successive machine receives 1/2 of the previous from the list.

Here is a quick test with about 150 executions, 50 each from 3 different machines, to show the distribution:


> d -m all

all> psr

Totals for all machines:

Prog Name Queue Name  Grp Name      ID RqDone Load Done Machine
--------- ----------  --------      -- ------ --------- -------
WSL       00300.03100 GROUP3      3100      0         0 mach3
WSL       00200.02100 GROUP2      2100      0         0 mach2
WSL       00100.01100 GROUP1      1100      0         0 mach1
simpserv  MACH3Q      GROUP3      3000     11       550 mach3
simpserv  MACH2Q      GROUP2      2000     21      1050 mach2
simpserv  MACH1Q      GROUP1      1000     42      2100 mach1
BBL       30004.00000 mach3          0     38      1900 mach3
BBL       30003.00000 mach2          0     41      2050 mach2
BBL       30002.00000 mach1          0     55      2750 mach1
DBBL      122222      mach1          0    188      9400 mach1
simpserv  MACH3Q      GROUP3      3001     11       550 mach3
simpserv  MACH2Q      GROUP2      2001     20      1000 mach2
simpserv  MACH1Q      GROUP1      1001     39      1950 mach1
BRIDGE    908654      mach3          1      0         0 mach3
BRIDGE    646510      mach2          1      0         0 mach2
BRIDGE    384366      mach1          1      0         0 mach1

Solution

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms