Configure the file server request buffer size

The Server service creates a request buffer for each smb session, the client will not attempt to send more requests than the server request buffer can hold. If working on a high latency network then it can increase file server performance if it has a large request buffer, but it will then use more non-paged pool memory for each smb session.

The request buffer size is configured with this DWORD registry key:

[HKEY_LOCAL_MACHINE \SYSTEM \CurrentControlSet \Services \LanmanServer \Parameters]
SizReqBuf = 17424 (Default=4356 Bytes, More than 512 MB RAM=16384 Bytes, Range 1024-65536)

Note Windows NT4 does not have complete Large File (CAP_LARGE_FILE) support, which introduce the following behavior:
  • Win2k/Win2k3 uses the CAP_LARGE_WRITEX smb request (60K buffer size) when copying a file to a remote computer. WinNT4 doesn't support this request and instead uses the request buffer (4K buffer size), which will make the file transfer slow. Increasing the request buffer size of Windows NT4 will make it faster at receiving files.
  • Copying files from WinNT4 to Win2k/Win2k3 is fast because WinNT4 supports the smb request CAP_LARGE_READX.
  • WinNT4 to WinNT4 file transfers uses CAP_RAW_MODE (64K buffer size), which is fast.
Note Windows NT4 used as a print server will also perform better by increasing the request buffer size. It will make the transfer of the print job to the WinNT4 faster.

Note if using a large CORE SMB buffer and at the same time making small requests (Directory listings), then delayed ACK might cause low performance.

More info MS KB123819
More info MS KB151996
More info MS KB152081
More info MS KB177266
More info MS KB223140
More info MS KB279282
More info MS KB320829

Updated: 23 September 2007

Leave a Reply

Your email address will not be published. Required fields are marked *