Poor implementation of TCP/IP or RPC on a SUN3/60 running SUNOS-4.0?
Stephen X. Nahm
sxn at sun.com
Wed Jun 7 08:42:34 AEST 1989
In article <8905101313.AA04157 at iesd.dk> in Sun-Spots-Digest: Volume 7,
Issue 304, ruseng at iesd.dk (Carsten Ruseng Jakobsen) writes:
>While evaluating the performance of SUN-RPC, I detected the TCP protocol
>slowing dramatical down when sending packets with sizes close to the
>magical 4096 and 8192 bytes.
I've emailed Carsten previously, but I'm posting here for the information
of those reading this list. The performance anomalies reported are a
result of the default buffer sizes used by the RPC library. The buffer
sizes can be changed by the user as described below:
----- Begin Included Message -----
>From sxn Wed May 17 12:04:07 1989
To: ruseng at iesd.dk
Subject: Re: Elbows in RPC/TCP performance
You can fix things by setting the "send_buf_size" and/or "recv_buf_size"
parameters of clnttcp_create() and svctcp_create(). For your example, where
the client sends big packets and gets back small acks, use:
remote = clnttcp_create(&sin, YOURPROG, YOURVERS, &sock, 24000, 0);
(where sock can be RPC_ANYSOCK, and sin is set correctly.)
For the server side, which is receiving big packets and sending back small
acks, use:
transp = svctcp_create(RPC_ANYSOCK, 0, 24000);
I set up an RPC program that repeated your scenario. Before I made the
above changes, I got similar results as you got. After I adjusted the
appropriate parameters correctly (and without any setsockopt
manipulation), I got:
Size: 0 time: 0.94 Seconds
Size: 512 time: 0.97 Seconds
Size: 1024 time: 1.16 seconds
Size: 2048 time: 1.50 Seconds
Size: 4000 time: 1.99 Seconds
Size: 4096 time: 2.28 seconds
Size: 8000 time: 3.37 Seconds
Size: 8192 time: 3.81 seconds
Size: 8300 time: 3.70 seconds
Size: 16300 time: 6.30 Seconds
Size: 16392 time: 8.72 seconds
Size: 16400 time: 10.54 seconds
See rpc(3) in the SunOS manual, or in the RPCSRC 4.0 man directory.
Steve Nahm
----- End Included Message -----
--
Steve Nahm sxn at sun.COM or sun!sxn
More information about the Comp.sys.sun
mailing list