Novell Network Management: NetWare 6

Chapter 5: Manage and Optimize NetWare 6 Servers

 

Objectives:

This chapter introduces the management aspects of a file system, and discusses organizing one. The objectives important to this chapter are found on page 5-1:

  1. Identify NetWare 6 Server Management Utilities
  2. Use NetWare Remote Manager
  3. Identify Adjustable NetWare 6 Resources
  4. Manage and Optimize LAN Communications
  5. Manage and Optimize the Disk and Traditional File System
  6. Manage and Optimize the Memory Subsystem
Concepts:
Identify NetWare 6 Server Management Utilities

The text begins with a review of some server management tools:

  • SET parameters - The SET command is used to adjust the amount of server resources given to different processes.
  • MONITOR - This is a console utility for changing parameters, and for evaluating server performance.
  • Remote Manager - This is Novell's new utility for NetWare 6, which provides web-enabled access to server tools from a workstation.

Use NetWare Remote Manager

NetWare Remote Manager can give you access to server management from a workstation. To use it, the following requirements must be met:

  • NetWare 5.1 or later (this refers to the network's operating system, not the workstation's)
  • An SSL enabled browser: Netscape® 4.5 or newer, or Internet Explorer 5 or newer, or the NetWare browser (which runs on the server console)
  • NLMs that must be loaded on the server: PORTAL, and HTTPSTK.

Remote Manager can be installed when NetWare 6 is installed, or you can add it later like other NetWare products.

To access Remote Manager:

  1. Start a browser
  2. In the address line, enter your server's IP address, followed by a colon, and 8008.
    http://serverIPaddress:8008
    You will be redirected to port 8009 on the server, and the protocol will change to https.
    Another method is to go to the server's IP address, port 2200, which will take you to Web Manager, which gives you access to web-based services.
  3. Select the server you want to manage.
  4. You will be offered an SSL certificate. Accept it.
  5. At the login screen, enter a User Name (and password) that has Supervisor rights to the server.

A list of functions you can use in Remote Manager is presented:

  • General Server Information - server name, health, NetWare version, your login ID. Note the server health graphic: Red is bad, yellow is trouble, green is good, and black means lost communications.
  • Diagnose Server - monitor and diagnose health of multiple servers, compare configuration of servers.
  • Manage Server - use to view or change any setting made with SET; manage memory and swap files; view and manage details for user connections; view a list of thread and their CPU usage; view console screens and system statistics; down, reboot, or restart the server
  • Manage Applications - list and view details about NLMs currently loaded; load and unload NLMs; manage protected memory space
  • Manage Hardware - view details on storage and network boards, processors, interrupts, ports, and PCI devices on the server
  • Other functions - manage eDirectory, NetWare licenses, and groups of servers

Identify Adjustable NetWare 6 Resources

NetWare uses multiple resources on a server, many of which are given a minimum and a maximum value with set commands. The idea is that the administrator gives the system a range in which to operate. The system typically starts at the minimum values and takes more memory, hard drive space, and other resources as needed, up to the maximum level. This reallocation of resources as the system runs is called self-tuning by the text.

Some factors related to self-tuning are mentioned. The system begins at the minimum levels set for it. For example, the amount of memory reserved for incoming requests (packet receive buffers) starts at 500. If all 500 buffers are full, the system waits for the system wait time (default is 0.1 seconds) before taking more free memory and allocating it as a new packet receive buffer. The system is allowed to take up to the number of buffers specified as the maximum. The system wait time is to allow time for an already allocated resource to become free before allocating a new resource.

A list of resources that are self-tuned is presented. According to the text, this list is not exhaustive:

  • Directory cache buffers
  • Load balancing for multiple processors
  • Maximum number of open files
  • Memory for NLM programs
  • Router/server advertising
  • Routing buffers
  • Service processes

The text offers three categories of adjustable resources for NetWare 6:

  • LAN Communications and Service Processes
    • Packet Receive Buffers
    • Service Processes
  • Disk and File System
    • Volume block size
    • Suballocation
    • File compression
  • Memory Subsystem
    • Protected Address Space
    • Virtual memory
    • Caching

Manage and Optimize LAN Communications

Packets are an important concept. A packet is essentially a message unit, a piece of a message, passed across the net. Packet size in use on a net may depend any of several limits: the size required by the server, a workstation, a router, or the topology being used. Token rings often have a default maximum packet size of 4202 bytes, while ethernets often use 1514 bytes per packet.

Other texts have had discussions about setting the network's Maximum Physical Receive Packet Size. This can be a dangerous thing, since some users have reported being kicked off their nets by receiving packets too large for their machines. In determining the maximum allowable packet size, make sure you check all limits on all parts of your network.

Packet Receive Buffers are a kind of buffer meant to receive packets from the net. These buffers will normally hold requests from clients until they are processed. They are also called Event Control Blocks (ECBs). Settings regarding these buffers:

  • Maximum Packet Receive Buffers - default is 5000; usually more is better. This is a limit to how many packets (requests) a server may receive before refusing any more.
  • Minimum Packet Receive Buffers - this is the number of buffers the server has ready as soon as it boots. This is why it must be set in STARTUP.NCF. Increase it if the server is slow to respond right after booting. Default is 500.

The network board statistics are related to the Packet Buffers. An important one is Receive discarded, no available buffers. This number may also be recorded as No ECB Available Count. If this number is high, we are getting more packets than we can handle. (High is more than 2% of the total packets received.) Increase the Maximum and Minimum Packet Receive Buffers to compensate.

Service Processes are for handling incoming requests for services. When the server boots, it has the immediate capacity to handle as many processes as the value of Minimum Service Processes. The server self tunes, increasing the number of processes if needed, up to the value of Maximum Service Processes.

  • Maximum Service Processes - this is the number of services the server will try to carry out at once. If the number of Current Service Processes is approaching this number, increase the Maximum Service Processes. The default value is 570, and the maximum allowable value is 1000.
  • Minimum Service Processes - this is actually the number of service processes that will be handled in a group. The default value is 60. range is from 10 to 500.

Manage and Optimize the Disk and Traditional File System

The next section of the text concerns the issue of Disk Space. Two methods of optimizing disk space are explained:

  • Volume Block Size
  • Volume Block Suballocation
  • File Compression

Files are stored on disks in space allocation units called blocks. In general, small files waste space if they do not fill a block. In large hard drives, blocks can be fairly large, 16 or 32 Kilobytes for instance. This means that a file that is less than a block in size will still take up a whole block to save, since files have to be saved starting in an empty block. (This is a rule: memorize it.) Even larger files are wasteful, in that they can flow into a new block from the one they started in, and still leave a large part of the block empty.

The text offers a chart of default block sizes for several ranges of volume sizes:
Volume Size Default Block Size
Under 32 MB 4 KB
32 to 150 MB 8 KB
150 to 500 MB 16 KB
500 MB to 2 GB 32 KB
over 2 GB 64 KB

Novell to the rescue. Block suballocation allows us to divide blocks into 512 byte sections (suballocation blocks). The small file (less than a block in size) still takes up its space in an empty block. The larger file, however, may overflow into the unused space in the block of the small file, once it has filled its starting block. Block Suballocation was enabled by default when earlier versions of NetWare were installed, but the text states that in NetWare 6, you must enable block suballocation when traditional volumes are created.

File Compression can save hard drive space by converting files to a format that is smaller than normal. Files must be decompressed before they can be used. Previous versions of NetWare put a heavy load on the processor when compressing files, but NetWare 6 runs both compression and decompression much more quickly than previously, and both are run as background processes.

File compression takes place once a file has been unused for a specific amount of time. This value is set in days, and can be any number from 0 to 100,000. The default value is 14 days. The server can choose not to compress a file if it determines that a minimum space gain will not be met. This parameter is measured as a percentage of the original file size. This parameter can range from 0% to 50%, and the default value is 20%.


Manage and Optimize the Memory Subsystem

Memory on a server is managed by the NetWare operating system. NetWare 6 requires a minimum of 256 MB of RAM on a server. This amount of RAM is too low to be of much use, but it is the stated minimum requirement. The maximum amount of RAM that NetWare 6 can handle is 64 GB.

The SERVER.EXE program is the core of the NetWare operating system. Once it is loaded, any memory that it did not take up is allocated as either cache memory or virtual memory. (Cache is pronounced like cash.) Cache memory is immediately available to the processor for active use. NetWare 6 can use up to 4 GB of memory as cache memory. If your server has more than 4 GB of RAM, the amount over 4 GB is allocated to the virtual memory system.

Cache memory is used in 4 KB blocks called cache buffers. Recently used data is stored in cache buffers, making it more quickly accessible than data stored in virtual memory. Cache memory holds loaded NLMs, the memory used by NLMs, files that users have open, and is used for housekeeping duties associated with directories.

Because NLMs may need some cache memory temporarily, NetWare provides a method for them to request it, use it, and then give it back to cache. A potential problem is that programs often prefer or require contiguous (i.e. sequentially numbered; touching) blocks of memory to run correctly. Some programs will not run unless loaded into contiguous blocks. The server does not need to use actual contiguous blocks of memory. Discontiguous blocks may be used as logically contiguous blocks, increasing the efficiency of programs run on the server. The Novell server "tricks" the programs into "thinking" that they are loaded as intended.

It is important to know that when a process runs on the server, a pool of memory is allocated to that process. This pool may be several pages (cache buffers). Pages of memory are used and then may be returned to the pool for that process, or may be returned to a local pool (which belongs to the server) while a process is still running, and the memory may be reclaimed by the server for further use.

NetWare servers now use virtual memory, which means that free space on the hard drives, or RAM above 4 GB, can be used to simulate cache RAM with a swap file, similar to the one you may be used to in Windows. Swap file activity is checked every 10 seconds. When the the swap file is used heavily, a process called Garbage Collection takes place often. Garbage Collection gathers small amounts of free memory and makes them look like contiguous memory space. If the swap file is relatively inactive, it works like this: when programs let go of memory they call the Free utility, and the memory is reallocated to their individual pool. It may not be usable until Garbage Collection takes place, because of the small amount of memory released. Three settings may help this take place:

  • Garbage Collection Interval - set in minutes from 1 to 60; default is 5. Controls how often memory is collected.
  • Number of Frees for Garbage Collection - set in calls from 100 to 100,000; default is 5,000. A second way to trigger garbage collection: whenever Free has been called this many times, memory is collected.
  • Minimum Free Memory for Garbage Collection - set in bytes from 1,000 to 1,000,000; default is 8,000. The minimum amount of memory that must be available before it is collected for a pool.

Swap files are very important to memory usage. Some facts about them:

  • A swap file can be created on any volume.
  • The SYS: volume gets a swap file on it by default every time the server is started. You may delete it and create another on another volume, as a fault tolerance precaution. To automate this, place commands in the AUTOEXEC.NCF file.
  • Only one swap file per volume is allowed.
  • When the server needs to swap memory out of RAM to a swap file, it will use any available swap file on any volume without preference.
  • Swap files can be added to volumes that are not currently mounted. They cannot be active (usable) unless the volume is mounted.
  • Swap files start out about 2MB in size (unless you set the MIN value to something else), but change in size as they are used, which is another reason for not wanting one on the SYS: volume.

Frequent swapping from RAM to swap files is called disk thrashing. You do not want this to happen, for obvious reasons: it wears out the drive and it wastes time that the server could use doing something else. If the server is exhibiting disk thrashing, the standard solution is to add more RAM.

Commands used to manage swap files: (You should review this list carefully.)

  • SWAP - this command, all by itself, will display information about current swap files
  • SWAP ADD volume_name [ parameter=value] - this syntax is how you add a new swap file to a volume. Remember that you cannot add more than one swap file to a volume. Three parameters are possible. These are their default values (in MB):
    • MIN=2 - the minimum size of the swap file when the volume is mounted
    • MAX=Free volume space - the largest size to allow the swap file to grow to. You can specify an actual number of MB.
    • MIN FREE=5 - the minimum amount of space to leave free outside the swap file. Note that other actions, like filling queues, can still fill the volume.
  • SWAP DEL volume_name - this syntax is used to remove a swap file from a volume. If in use, the material from the swap file will be shifted to another swap file. If another swap file is not available, and this swap file is in use, the command is refused.
  • SWAP PARAMETER volume_name parameter=value - this syntax is used to change the value of a swap file parameter on the fly. The three parameters that can be changed are the three listed above.

The next concept is protected address space or protected memory. Protected space is one kind of virtual memory. The idea is that programs that run in protected space are safer from intrusion by other programs, and are less likely to intrude on other programs themselves. NetWare 6 allows the administrator to abort programs that trespass out of their protected space without crashing the server or harming other programs. Unfortunately, the NetWare operating system itself does not run in protected space. The space it runs in is called the OS address space or the kernel address space. So, the SYSCALLS.NLM program serves as an interface between the protected mode programs and the operating system. More points about protected memory:

  • A program that runs in protected space will work the processor three times as much as the same program if not run in protected space.
  • NLMs that load into protected space can be swapped into virtual memory. So can their data.
  • NLMs that do not load into protected space can swap their data into virtual memory, but the modules themselves cannot be swapped.
  • Protected address space can be created, have modules loaded, have modules unloaded, can be removed and can be killed.
  • The maximum size of a protected address space is 512 MB.
  • You can use NetWare Remote Manager to configure the server to clean up: return the address space of applications that abend (Novell definition: abnormal end) in the system. You can do the same thing on the console with the command:
    SET MEMORY PROTECTION FAULT CLEANUP=ON

The chapter concludes with a discussion of Cache Utilization. The caches referenced here are areas in RAM where NetWare has stored data, either from a program or from reading a directory. Information is stored in caches to make it quickly available to a process that might have to refer to it several times. It is faster to read a RAM cache than to read from a hard drive. The MONITOR statistic to care about here is the Long Term Cache Hits. It should be above 90%. If not, your server needs more RAM. A more immediate solution is to unload some NLMs you are not using.

The text makes a distinction between file cache and directory cache. File cache is used with both the traditional file system, and the NSS file system. It holds information read from and waiting to be written to files. Directory cache is only used with the traditional file system. It holds information read from and waiting to be written to disk directories.

The system will store information it needs to write until it thinks there is enough information to make accessing the hard drive worthwhile. (This is like the performance of smartdrive in DOS/Windows.) A Dirty Disk Cache (pronounce it carefully) is one that has not been written to disk in the amount of time allowed by the Dirty Disk Cache Delay Time. This time is set by default to 3.3 seconds. The text recommends we set it higher if users are making lots of small write requests. This would decrease the number of Dirty Cache Buffers that would appear in the General Information screen.

As indicated above, you can find statistics for the traditional file system with the console-based MONITOR utility. You access statistics about the NSS file system with the command:
NSS /CACHESTATS

A parameter to consider adjusting is the Cache Balance. If you use both traditional and NSS volumes, they share the same file cache space. If, for example, you use the NSS volumes more than the traditional volumes, you will want to shift the balance of the file cache in favor of NSS. The command to do so is:
NSS /CACHEBALANCE=x
The x stands for the percentage of file cache you want allocated to NSS. The default value is 60%. The text states that you can set this value as high as 90%. (When issuing the command, do not use the per cent sign.

Another parameter to consider is Closed File Cache Size. The server will keep a number of closed files in cache, in case you need to reopen them quickly. The default value for this number is 50,000. The text recommends changing this to 100,000 if applications routinely opens and closes the same files. The command to adjust this setting is:
NSS /CLOSEDFILECACHESIZE=x
Again, x is the value you wish the setting to have. Note that this value is a maximum, not the number of files always in cache.

Two settings affect how long the server waits before writing some NSS information to disk. File Flush Timer and Buffer Flush Timer are both set to 10 seconds by default. If you increase these values, the server will appear more efficient, since it will write to disk less often. However, increasing this wait time increases the risk of loss of data in case of power loss, system failure, etc. The text cautions that processor and hardware speeds affect the optimal settings for these parameters, so it is not possible to state how many seconds are the best setting for your server. Trial and error may be the best solution. The commands to adjust these values are:
NSS /BUFFERFLUSHTIMER=x
NSS /FILEFLUSHTIMER=x

The text suggests that you periodically use the NSS /CACHESTATS command to monitor performance, and follow it with the NSS /RESETSTATS command, to start a new baseline. You may want to use the reset command after making changes, so that the next results you see relate only to the changes.

The text cautions again that even though the traditional response to cache problems is to add RAM, adding RAM over 4 GB will not be effective, since only the first 4 GB of RAM can be used as cache.