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:
Concepts:Identify NetWare 6 Server Management UtilitiesThe text begins with a review of some server management tools:
Use NetWare Remote ManagerNetWare Remote Manager can give you access to server management from a workstation. To use it, the following requirements must be met:
Remote Manager can be installed when NetWare 6 is installed, or you can add it later like other NetWare products. To access Remote Manager:
A list of functions you can use in Remote Manager is presented:
Identify Adjustable NetWare 6 ResourcesNetWare 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:
The text offers three categories of adjustable resources for NetWare 6:
Manage and Optimize LAN CommunicationsPackets 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:
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.
Manage and Optimize the Disk and Traditional File SystemThe next section of the text concerns the issue of Disk Space.
Two methods of optimizing disk space are explained:
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:
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 SubsystemMemory 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:
Swap files are very important to memory usage. Some facts about them:
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.)
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:
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: 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: 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: 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: 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. |