INF: LAN Manager 2.1 Server Autotuning (Part 1)

ID Number: Q80077

2.10

OS/2

Summary:

All versions of LAN Manager earlier than version 2.1 provide user

configurable server tuning. Tuning requires knowledge of the structure

of the LANMAN.INI file so the system administrator can edit the file.

Furthermore, knowledge of the OS/2 operating system is required in

order to optimize performance. Finally, resource requirements must be

understood and taken into account for effective operation. If these

steps are not taken, a LAN Manager server may operate poorly and may

not provide users with adequate resources.

This article contains part 1 of this discussion. For part 2 of this

discussion, query on the following words:

AUTOTUNING and PART 2

More Information:

Server Tuning Defined

=====================

There are four categories of server tuning required of a network

server:

Category Description

-------- -----------

Resource tuning Server variables are set to satisfy clients.

Performance tuning Server variables are set for optimum server speed.

Static tuning Server variables are set upon startup.

Dynamic tuning Server variables are modified during server

operation.

Purpose

=======

Autotuning has been incorporated into LAN Manager to assure that LAN

Manager servers can be easily installed, configured, and operated

effectively. Performance autotuning allows the server to adjust its

variables and server startup parameters to be as fast as possible.

Resource autotuning means that the server tries to adjust its global

variables and server startup values to satisfy client request.

However, the server does not take more resources than it needs.

By hiding parameters and removing those parameters that can be

autotuned, the LANMAN.INI file has been made much shorter to simplify

configuration and tuning.

How Autotuning Is Done

======================

Virtually all of the server autotuning performed is resource tuning,

and most of the tuning is performed statically, as listed below. In

other words, changes are made to server parameters during server

startup. If a parameter value is exceeded during ordinary server

operation, the server notes this fact statistically in server memory

and increments a counter. In the same manner, the counter is

decremented if the parameter is not used. Upon server shutdown, the

tuning configuration file is updated. The file is also updated every

hour after the server has been in operation for 48 hours. These

statistics are implemented dynamically or statically, depending on the

"lanman" parameter.

In the \LANMAN\SERVICES\SERVER.CFG file, "Old server settings"

contains the settings used during server startup. "New server

settings" contains server best values for the next startup.

Note: This file can be viewed by running \LANMAN\SERVICES\READCFG. Do

not attempt to change the file using an editor -- it is formatted and

contains a CRC parity check. If for any reason the file is modified or

damaged, CRC will fail server startup. As a result, if the file is

modified, damaged, or lost, it will be re-created. LANMAN.INI and

PROTOCOL.INI are text files that can be edited using a text editor

such as the OS/2 editor E. Before editing any file, always make a

backup copy of the original. Also, customized parameter changes may be

overwritten by Setup with default settings if Setup is run sometime in

the future.

Upon server startup, parameters will be set using the following

methods, in order of precedence:

1. NET [ADMIN] command setting is performed only during system

operation.

2. Settings are specified in LANMAN.INI.

3. SERVER.CFG saves the "best settings" from the last system shutdown.

4. LANMAN.INI defaults are used as a reference if no other

specifications are available.

Dynamic Resource Autotuning

===========================

The server automatically modifies these hidden parameters during

server operation. When the server statistics note that one of these

parameters has been exceeded, the server implements the newly

incremented value for the parameter. To conserve memory used by the

server, these parameters are decremented when they are not used.

Current parameter values are saved to the SERVER.CFG file upon server

shutdown as well as once every hour after the server has operated for

48 hours.

Note: Do not attempt to set these parameters in the LANMAN.INI file or

the server will not start. As of version 2.1, these parameters have

been removed from LANMAN.INI because no user modification is

necessary.

LANMAN.INI

----------

maxchdevq = 2

maxchdevs = 2

maxconnections = 128 (maxusers, 2000)

maxlocks = 64 (1-8000)

maxopens = 64 (1-8000)

maxsearches = 50 (0-1927)

Static Resource Autotuning

==========================

This group of parameters consists of hidden tuned parameters. The

server will monitor statistics regarding the usage of these parameters

and will save suggested startup values for these parameters. They are

set only during server startup. Based on the collected statistics, the

server will save suggested best values in SERVER.CFG. Users can

specify these parameters in LANMAN.INI and on the command line to

override current server settings.

LANMAN.INI

----------

Maxshares = 64 (2-500)

Maxusers = 10 (1,1000) ; default = 200 for unlimited server

Numreqbuf = 150 (5-300) ;

Static Performance Autotuning

=============================

These parameters are automatically set by the server for optimum

performance because they are stored during ordinary operation in

the \LANMAN\SERVICES\SERVER.CFG file. However, the only time they are

set is during the server startup. Based on the collected statistics,

the server will save suggested best values. Cache hit rates should

remain high during optimal server operation. Use CACHE /STATS to

verify this. If the cache hit rate decreases, server system RAM may

need to be increased so that more cache memory can be reserved.

1. HPFS386 Cache

OS/2 version 1.3.1 has been included with LAN Manager 2.1 for

server installation. Cache memory is assigned automatically by the

HPFS386 IFS. This is the most notable example of server performance

autotuning. When HPFS386 is initialized upon startup, an OEM$ IOCTL

is used to ascertain the "best value" for system caching. Once this

cache memory has been designated, it has been reserved for cache

and is not available to other OS/2 processes. However, HPFS386 can

obtain memory from the cache pool if OS/2 is unable to allocate

other system memory for HPFS386 operations. This parameter can be

overridden manually, as explained in the section below titled

"Cache too Large, Slow Operation."

Example: Upon installation of a 12 MB system, 6144 is assigned for

HPFS386 caching.

Note: The above applies to HPFS386 volumes only. All FAT partitions

use DiskCache = 64 (64..512..1024....). This memory is reserved for

FAT caching.

2. NumBigBuf

LAN Manager 2.1 uses NumBigBuf to denote the maximum number of 64K

locked buffers to be used for raw reads and writes. This is

different from previous LAN Manager implementations! This parameter

can be overridden manually by specifying the parameter explicitly

in LANMAN.INI. Otherwise, the server startup values for SERVER.CFG

will be used.

LANMAN.INI

----------

Numbigbuf = 3 (0-80) ; Used only for FAT. IF HPFS386, set to 0.

Displayed Untuned Parameters

----------------------------

These parameters are present in LANMAN.INI as a result of the

installation process:

alertnames =

auditing = no (yes,no)

security = user

srvservices = alerter

srvcomment =

Hidden Untuned Parameters

-------------------------

Under LAN Manager 2.1, these parameters are not listed in LANMAN.INI.

As a result, LANMAN.INI for LAN Manager 2.1 has been simplified. They

are not tuned in any way by the server; however, NET ADMIN can be used

to set them. They also can be set by editing LANMAN.INI using a text

editor.

LANMAN.INI

----------

Maxchdevjob = 6 (0-65535)

MaxSessReqs = 50 (1-65535)

MaxSessOpens = 50 (1, MaxOpens) Used with Fat, not HPFS386.

Sizreqbuf = 4096 (1024-32768) ; Match Workstation SizeWrkbuf 2048, 4096.

* Note: Sizereqbuf listed by ReadCfg as 4356, due to system padding.

The actual value is 4096.

NumFileTasks = 1 (1-8) Hpfs386 sets to 1 automatically

NumAdmin = 64 (0-65535)

Noauditing = string

Srvheuristics = 11110151111211001331

;Note: A template can be used in place of default digits, x is used

;for masking. For example, set srvheuristic 3 to 0; all remaining

;digits will be default settings.

;Srvheuristics = xx0

srvnets = net1,..netx (corresponds to wrknets)

userpath = \accounts\userdirs

autopath = srvauto.pro

autoprofile = both

guestacct = GUEST

accessalert = 5

alertsched = 5

diskalert = 300

erroralert = 5

logonalert = 5

maxauditlog = 100

netioalert = 5

srvanndelta = 3000

srvannounce = 60

srvhidden = no

autodisconnect = -1 (Can only be modified for unlimited user pak; i.e., 120)

Additional reference words: 2.10