IBM SG24-4576-00 Server User Manual


 
The size of the cache buffer pool is dynamic and determined by the amount of
memory left over after the other pools have been allocated. As more buffers are
allocated for NLMs and other system resources, this reduces the size of the
cache buffers pool. Both the movable and non-movable pools return memory to
the cache buffer pool when it is no longer needed.
Checking the Allocation of Memory to Each Memory Pool:
You can use the
MONITOR.NLM utility to view the allocation of system memory by pool. This
helps you to understand how the server system memory is being used by the
operating system to service the various requests. This is a dynamic process and
will change as the network load on the server changes.
It is also important to monitor the pools as you are tuning other parameters. For
example, when adjusting the number of packet receive buffers, the total cache
buffers will be reduced as a percentage of the total system memory. Using the
MONITOR.NLM utility can help you determine the effect of changing the number
and size of the buffers. It may be necessary to add more memory to the server
if the performance tuning results in the depletion of the total cache buffer
memory available to efficiently service file requests.
Memory Fragmentation:
As previously discussed, in NetWare 3.12, the cache
buffer pool gives up memory to other memory pools such as the cache movable
pool, the cache non-movable pool, and the permanent memory pool.
The cache movable and cache non-movable pools return system memory to the
cache buffers pool, but anything allocated to the permanent memory pool does
not return memory until you bring down the server.
The cache movable pool can be moved around so that contiguous blocks are
always returned to the file cache buffer pool. This keeps them from becoming
fragmented. This is not true of the cache non-movable memory pool which frees
memory in non-contiguous chunks. This causes fragmentation and eventually
degrades network performance.
If cache non-movable memory is allocated and de-allocated frequently due to the
loading and unloading of NLMs, it is possible to end up with RAM which is so
fragmented that there may not be enough free contiguous RAM to load
additional NLMs. The file server will report that there is not enough memory to
load the NLM and the server will have to be downed so the memory can
reallocate and clear the fragmentation.
5.3.3.2 NetWare 4.1 System Memory Pools
NetWare 4.1 system memory architecture is quite different than V3.12. In
NetWare 4.1, system memory is allocated to a single global memory pool of 4KB
pages that NetWare can allocate to different processes. Each NetWare Loadable
Module (NLM) has allocated memory pages that are returned to the global pool
when they are not used. When an NLM initially requests memory allocation, it
receives a specific set of memory pages called a node and uses that node for all
subsequent calls. Because the NLM uses the same node repeatedly during the
time that the NLM is loaded, allocation becomes more efficient and
fragmentation is reduced.
NetWare 4.1 also uses more cache than earlier versions of NetWare. Using
more cache enhances operating system performance but drives up the system
memory requirements.
186 NetWare Integration Guide