Usage of Big Buffers in OS/2 LAN Manager Version 2.00

ID Number: Q69746

2.00

OS/2

Summary:

The following information addresses some basic questions regarding

the usage of big buffers in OS/2 LAN Manager version 2.00.

1. What are big buffers?

Big buffers are 64K buffers used internally by OS/2 LAN Manager

version 2.00 to help improve the performance of certain types of

network requests.

2. Are big buffers used for reading, writing, or both?

Big buffers are used for both of these types of data transfers.

Additionally, a big buffer is used when a server is administered

remotely (always set NUMBIGBUF to at least 1 (one) if you intend to

share ADMIN$).

3. How do big buffers affect performance?

Big buffers are used for raw I/O data transfers. Thus, when

performing a large I/O data transfer, it is not necessary to attach

a server message block (SMB) header to each block (only the raw

data is needed). Additionally, the server normally negotiates

SIZWORKBUF size buffers (default is 4096). When specifying big

buffers, the server will negotiate these instead (thus allowing

larger contiguous blocks to be transferred).

4. What happens when the server runs out of big buffers?

Initially, the server will attempt to allocate another big buffer.

If this request is refused by OS/2, the server will use WORKBUFs

(as though no big buffers were specified). If no WORKBUFs are

available, the request is queued until a buffer becomes available.

Available fixed RAM is the only limit on how many big buffers the

server may dynamically allocate. Any dynamically allocated buffer

will be freed if it is not used for a reasonable period of time.

5. Can you set the number of big buffers too high and adversely

affect performance?

Yes, this is possible, but only from the perspective that you are

overcommitting your RAM and using the OS/2 swap file instead. This

is why dynamically allocated big buffers are freed after not being

used for a period of time, to keep the RAM free for more critical

application usages. Additionally, big buffers come from fixed RAM

(RAM that can be locked), which is limited and used by device

drivers, PM, and other system components.

Because the server will dynamically allocate big buffers and

because they may not be used often, the best strategy is to set

NUMBIGBUF within the range of 1 to 5 and then use bit 17 of

SRVHEURISTICS to control how long dynamically allocated big buffers

are held. NUMBIGBUF is really a low-water mark as opposed to a

high-water mark.

6. Why are big buffers NOT required when using HPFS386?

HPFS386 is server aware and manages all file I/O for the server.

Big buffers are only needed when you are not using HPFS386.

Therefore, you should set NUMBIGBUF to zero when HPFS386 is

installed.