NetWare 5.1 Advanced Administration

Chapter 7: Managing and Optimizing the NetWare 5.1 Platform

 

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 7-1:

  1. Use NetWare Management Portal
  2. Define NetWare 5.1 Memory Management
  3. Describe and Manage Virtual Memory
  4. Describe and Manage NetWare Applications
  5. Describe and Manage Protected Address Spaces
  6. Evaluate MONITOR Screen Statistics
  7. Identify How to Monitor and Modify Cache Performance
  8. Identify Server Buffer and Packet Parameters
  9. Identify Methods for Optimizing Disk Space
Concepts:
Use NetWare Management Portal

NetWare Management Portal is a GUI-based tool that allows you to remotely manage NetWare servers. The Portal is run in a browser on a workstation running any 32-bit version of Windows. Basic requirements for running NetWare Management Portal:

  • Netscape® 4.5 or newer, or Internet Explorer 4 or newer
  • Minimum 28.8 Kbps transfer rate

The interface includes a link to Novell's web site. It displays a vertical list of seven "tabs" that let you manage features of your server. (Some of these features will not mean much to you until you read the rest of the chapter):

  • Volume Management - use to view, mount, and unmount volumes. Also use to view, upload, rename, and delete files. Volume statistics are available.
  • Server Management - 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 (Note: if you down the server, you cannot use this interface to restart it.)
  • Application Management - list and view details about NLMs currently loaded; load NLMs; manage protected memory space; manage Winsock 2.0
  • NDS Management - view details on and delete NDS objects; view details of NDS partitions
  • Remote Server Access - manage other NetWare servers, either through NetWare Management Portal or through NetWare Remote Server Access (NWRSA)
  • Hardware Management -view details on storage and network boards, processors, interrupts, ports, and PCI devices on the server
  • Health Monitors -The first monitor is the traffic light graphic. Red is bad, yellow is trouble, and green is good. More detailed information is available through the Health Monitors tab. Your text lists 18 features that can be tracked with Health Monitors. Review this list after you finish the chapter and know what the list is talking about.

 


Define NetWare 5.1 Memory Management

Memory on a server is managed by the NetWare operating system. The NetWare operating system uses 4 KB blocks of memory called pages. No one ever seems to have enough memory, so we manage what we have. We can set several parameters that affect how it is managed. One characteristic that makes this possible is that the server does not need to use actual contiguous (i.e. sequentially numbered; touching) blocks of memory. Discontiguous blocks may be used as logically contiguous blocks, increasing the efficiency of programs run on the server. This is an advantage because some programs will not run unless loaded into contiguous blocks. The Novell server "tricks" the programs into "thinking" that they are so loaded.

Two areas of memory management are listed in the chapter:

  • Memory Allocation
  • Memory deallocation and garbage collection

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. Pages of memory are used and then 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 can be used to simulate 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.


Describe and Manage Virtual Memory

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, 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.

NetWare Management Portal allows you to change these settings from a workstation.


Describe and Manage NetWare Applications

The next discussion concerns allocating CPU time to applications. Two terms are defined:

  • Threads - An NLM consists of several functions or routines, not all of which are required to run. When an NLM runs, it can "choose" which functions to run, depending on circumstances or user input. Each function that is chosen is called a thread. Sometimes a thread has to wait to continue, and is said to have "gone to sleep". (Less politely, it may also be called a "CPU hog".) When this happens, to avoid having the processor do nothing, the thread is put on hold and other NLMs (threads) are given processor time.
  • Applications - an application can be thought of as a group of threads. CPU time can be allocated to such a group, taking the burden of deciding the importance of each thread away from NetWare. Applications can also be called virtual machines.

If you think of NLMs as applications, and applications as groups of threads, it is easier to understand the idea that all programs running on the server are assigned to some application, some group. If an NLM does not create its own application, it is assigned to the NetWare Application, which is the default. This can put too much burden on the server, by not dividing its attention.

To overcome the potential burden of having all threads assigned to the default application, you can use a syntax like this when loading an NLM:

LOAD -A= user_defined_name NLM_name
The "-A=" means "I am about to define an application name". The application name should be unique. The name of the NLM being loaded comes last.

Once the application is loaded, you can assign an arbitrary share value to each application. The actual numbers used are not percentages, nor do they have any particular unit of measure. The NetWare Application has an arbitrary share value of 100. The processor is assigned time for each application based on the value assigned to it, relative to the values assigned to other applications.


Describe and Manage Protected Address Spaces

The next concept is protected 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 5.1 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:

  • 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 Management Portal to configure the server to clean up: return the address space of applications that abend (Novell definition: abnormal end) to the system. You can do the same thing on the console with the command:
    SET MEMORY PROTECTION FAULT CLEANUP=ON

A chart of commands associated with protected memory appears on page 7-33. You should review this chart.


Evaluate MONITOR Screen Statistics

MONITOR is a character-based utility for watching over the server. The next section of the chapter discusses how to use MONITOR (it is a real pain, typing that in caps every time). This objective requires that you know how to run MONITOR (type its name on a server console command line), and how to read the various statistics it displays. Character-based menus are easy to use: navigate up and down with arrow keys, select with the enter key, and back up with the escape key. MONITOR can be used to change settings, as well as monitor them.


Identify How to Monitor and Modify Cache Performance

One of MONITOR's most useful pages of information is Cache Utilization.(Cache is pronounced like cash.) The caches referenced here are areas in RAM where the NOS has stored information read from a hard drive. 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 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.

Read and Write Caches are discussed next. 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.

Changes to the Read Cache are listed on the same page, to increase the response to requests. Note that the change to Maximum Concurrent Directory Cache Writes is a reduction, the opposite of the change recommended to accommodate lots of small file writes.

Processor Utilization was discussed in the previous version of this book. This will vary from moment to moment. Note that the Idle Loop process will take up a large percentage of the CPU time when nothing is happening on the server. A server may show Processor Utilization at 100% for a few moments or a few minutes during normal operation. If performance suffers during these times, adjustments may be needed.

Memory Utilization is discussed briefly at the end of this topic. A point worth noting is that the amount of memory taken up to run an NLM is usually the size of the NLM file, but there are two exceptions:

  • Some NLMs require other NLMs to run. This increases the actual memory requirement for them. If one is loaded into protected space, they must all go into that same protected space.
  • Some NLMs take more memory as they run.


Identify Server Buffer and Packet Parameters

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.

There is a discussion about using MONITOR to set the 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 is a kind of buffer meant to receive packets from the net. These buffers will normally hold requests from clients until they are processed. Settings regarding these buffers:

  • Maximum Packet Receive Buffers - default is 500; usually 700 to 1000 is better. This is a limit to how many packets (requests) a server may receive before refusing any more.
  • 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 range is from 50 to 1000.
  • Minimum Service Processes - this is actually the number of service processes that will be handled in a group. The range is from 10 to 500.
  • 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 128.

The network board statistics are related to the Packet Buffers. An important one is Receive discarded, no available buffers. 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.

A new statistic is Packets queued for transmission. If this number is high compared to other servers, the NIC may be too slow for the server.

The discussion of disk drivers is primarily concerned with the relative efficiency of the card and driver combination you are using in the server. You should make sure they match and are as up to date as possible.


Identify Methods for Optimizing Disk Space

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

  • Block Suballocation
  • File Compression

Block Suballocation is easy to understand. 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. 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 is enabled by default when NetWare is installed.

File Compression is a tedious process for the computer to do. It is broken down into five steps on page 7-57, all carried out by the NOS:

  • A file is read and analyzed.
  • A temporary file is written, describing the first file.
  • The NOS calculates whether it will save at least 20% of the file's space by compressing it.
  • If 20% of the space will be saved, the NOS makes a compressed copy of the file.
  • The original file is replaced by the compressed copy, if it passes inspection.

This process takes an appreciable time for the server to carry out, so it usually compresses files after business hours.

Block suballocation and file compression are enabled by default. You may choose whether to enable them in a Custom installation, or enable them later. Once enabled, neither can be turned off without recreating the volume in question. File Compression, however, can be overridden at the file and directory levels, using file and directory attributes.

On page 7-60, there is a review of the attributes used to override compression schedules. The IC attribute engages immediate compression for a file or directory after use, and the DC attribute tells the system not to compress a file or directory regardless of space that would be saved.