[net.unix-wizards] Help: socket buffer size

dmlee@cheviot.uucp (Dongman Lee) (07/11/85)

I am going to increase the size of socket buffers on 4.2BSD.
Before doing it, I would like to ask advice of wizards in netlands:
   i) what is the limit of the socket buffer size?
  ii) if I increase the size, does it affect the kernel operation?
Thanx.

Dongman Lee
Computing Lab., University of Newcastle upon Tyne, UK
ARPA: dmlee%cheviot.newcastle.ac.uk@ucl-cs.ARPA
UUCP: <UK>!ukc!cheviot!dmlee
-- 
Dongman Lee
Computing Lab., University of Newcastle upon Tyne, UK
ARPA: dmlee%cheviot.newcastle.ac.uk@ucl-cs.ARPA
UUCP: <UK>!ukc!cheviot!dmlee

chris@umcp-cs.UUCP (Chris Torek) (07/12/85)

> I am going to increase the size of socket buffers on 4.2BSD.
> Before doing it, I would like to ask advice of wizards in netlands:
>    i) what is the limit of the socket buffer size?
>   ii) if I increase the size, does it affect the kernel operation?

There isn't really *a* "socket buffer size".  There are a bunch of
places that have various "recvspace" and "sendspace" variables
(look for calls to soreserve()).  These can be increased (and in
fact many of them have been increased in 4.3) without affecting
much other than the number of mbufs in use.  I have heard somewhere
that increasing tcp_sendspace and tcp_recvspace above about 12K
causes a crash, but I haven't seen it happen (then again we haven't
been running "plain" 4.2 for a long time).  You might have problems
if they are >16K, since things like windows are kept in shorts and
signs of differences determine whether one number is "greater" or
"less" than another... but 4K is lots anyway.
-- 
In-Real-Life: Chris Torek, Univ of MD Comp Sci Dept (+1 301 454 4251)
UUCP:	seismo!umcp-cs!chris
CSNet:	chris@umcp-cs		ARPA:	chris@maryland

sylvain@lvbull.UUCP (Sylvain Langlois RCG-ARS) (07/15/85)

I don't think increasing socket buffer size is really necessary. I don't
think there is a socket buffer size either !!.
I've been looking at networking code of 4.2 BSD quite in detail ( I won't
talk about AF_UNIX): and what is done about buffer size is only an
initialization of so_hiwat at the beginning of new TCP connection.
While implementing ISO Transport in 4.2BSD kernel, I increase this
"size" by reserving something like 8K bytes for both queues. 
What I fear is that , if ever traffic is going to grow too much, all your
mbufs pool is going to be eaten by socket buffers and some of your process are
going to die because of ENOBUFS (except if your memory is big enough).
I'm running with 30K bytes of mbufs and that even seems short to handle
crisis situation ( like 4 users doing a transfer of /unix to their 
neighbours , some others playing with remote talk, well a fairly heavily
loaded machine somehow!)
Maybe another better idea would be increasing the data area of a mbuf?
Any idea?


-- 
Sylvain "Panic Trap" Langlois		
UUCP Address:	(...!mcvax!vmucnam!lvbull!sylvain)
Postal Address:	BULL, PC 33/05, 68 route de Versailles,
		F-78430 Louveciennes, France.