VMS and TCP

pats@millcomm.com (Patrick Spinler) wrote:

>Hi:
>
>We've recently upgraded some of our VMS Ingres servers from vms 6.2 to
>vms 7.1, all of which are running ucx 4.2.  In the process, we
>switched to using tcp in our vms client vnode definitions instead of
>decnet for other reasons.  Complicating the issue, we have also been
>forced to upgrade our c compiler from Dec C 5.6 to Dec C 6.0.
>
>Since we switched to tcp from decnet, we've noticed a huge performance
>hit from our tcp connected clients.  This hit is visible even from the
>not upgraded vms 6.2 client nodes.  
>
>Here's a table summarizing the performance:
>
>(units are measured in seconds)
>
>                    |      TCP Vnode      |    Decnet Vnode     |
>                    | On Server|On Client | On Server|On Client |
> Program compiled   |          |          |          |          |
> under Dec C 5.6    |    4 sec | 32 sec   |   4 sec  |  4 sec   |
> -------------------+----------+----------+----------+----------+
> Program compiled   |          |          |          |          |
> under Dec C 6.0    |   29 sec | 337 sec  |   5 sec  |  6 sec   |
> -------------------+----------+----------+----------+----------+
>
>This testing was done with identical queries in an esqlc program,
>compiled once on vms 6.2 decc 5.6 and once on vms 7.1 decc 6.0.  The
>test runs were essentially identical on vms 6.2 and 7.1 clients, and
>only depended on what C compiler/library was used.  The server was
>always a vms 7.1 server.  (e.g., brought the decc 5.6 vms 6.2 compiled
>program to the vms 7.1 box).
>
>The test program does:
>
>  loops 10 times
>     clears the buffer cache and qsf pool (trace points dm421 and qs506)
>     run about 12 commonly executed queries
>     gather time stats
>  gather overall time stats (reported in the chart above)
>
>Note that there is essentially _no_ performance difference between a
>decnet client and decnet server no matter which version of the
>compiler (and libraries) was used.  
>
>Now, obviously we can switch to use decnet vnodes on our VMS systems,
>but this is not a complete solution.  We have non-vms clients to worry
>about, and we have some reasons to be forced to use TCP on some of our
>VMS nodes.
>
>Running with an II_GC_TRACE or ii_embed_set "printqry" shows no
>obvious differences between environments.
>
>Has anyone run into anything similar before ?  So far, the only answer
>I've gotten from tech support has been "upgrade to Ingres II".  Faugh.
>
>Any help or pointers would be appreciated.
>
>Thanks,
>-- Pat
>
>
From: Bill Meier 
Subject: Re: VMS ingres/Net performance on TCP/IP vrs decnet ?

The following may or may not be relevant  to your problem using Ingres with
TCP/IP.

We ran into a "slowness" problem in a Sybase environment when we switched some
clients to use TCP/IP instead of DECNET to the server.

After some sleuthing, we determined that  we needed to enable "TCP_NODELAY"
(on both the server and the client) for the TCP/IP connections. 

This was a parameter in the server, but required some coding changes in the
client. (As a workaround on the client we increased the Sybase "default
network packet size" in the client to be larger than the queries being sent
from the client).

One of the Stevens books  --- TCP/IP Illustrated ? Unix Network Programming ?
-- has a page or two discussing the "Nagle Algorithm" and describing why
TCP_NODELAY should be used to disable same on a TCP/IP connection being used
in a query/response situation.

Bill Meier
Ingres Q & A
Back to William's Home Page

© William Yuan 2000

Email William