Specifying a PC Server for Lotus Notes

By Benjamin P. Chang

'Sybsystems within your PC server can affect Lotus notes performance. This article describes how to configure these subsystems for the best performance. It then presents ways to customize the operating system to better support your Notes environment. Finally, it mentions one parameter in the NOTES.INI file that can also affect the performance of Lotus Notes environment.'

The design of Notes applications, such as View and Formula, heavily influences Lotus Notes performance. But other factors - hardware, operating system, and Notes server - can also affect the performance of your Notes implementation.

When you choose a PC server as your Lotus Notes 4 server, you need to understand the capabilities of the hardware, as well as the operating system, to take full advantage of Release 4's new features.

Hardware
Today's PC consists of a central processing unit (CPU), several subsystems (memory, disk, network interface adapter), and input/output devices, plus a common bus. Every hardware vendor's objective is to provide not only a high-performance CPU complex, but also a well-balanced architecture that does not cause a bottleneck among subsystems.

How can a specific bus architecture, memory subsystem design, or disk I/O subsystem affect Lotus Notes performance and capacity?

First, let's consider the potential hardware bottlenecks.

System Bus
The sole purpose of the system bus is to communicate with each other. In a symmetric multiprocessing (SMP) system such as a PC server, which requires a very high bandwidth of communication, a slow-speed system bus can be a bottleneck. Hardware vendors, therefore, design their high-performance PC servers with a high-speed bus, sometimes called a system interconnect bus or local bus.

In most cases, this bus is proprietary. For example, the (proprietary) system bus in the IBM PC Server 720 is the C-Bus II. It operates at 400 MB per second and provides the high-speed connection for up to six CPU complexes and main memory. It also isolates the high-speed subsystem from the lower-speed subsystem by implementing a secondary bus that connects existing ISA, Micro Channel, EISA, and VESA adapters. This approach not only prevents the slower devices from causing bottlenecks, but also protects your investment in your existing technology.

Processor
We always talk about processor, or CPU, speed--100 MHz, 133 MHz, etc. CPU speed is the primary factor used to measure and compare system performance. But since the introduction of the system interconnect bus, a better measurement is the CPU complex (sometimes called a processor card). A CPU complex consists of a CPU, L2 cache, L3 cache, plus system bus interface and logic.

Notes 4 takes full advantage of symmetric multiprocessing support provided by the underlying operating system; therefore, the more CPU complexes your PC server and its operating system can support, the better Lotus Notes performs.

Memory
The redesigned, 32-bit Lotus Notes 4 provides larger structures to hold session information. Larger structures require more memory. Installing more memory may solve your I/O and processor problems. (As an example, the IBM PC Server 720 can support up to 1 GB of ECC [error correcting code] memory.)

Why does more memory help? Because most operating systems use virtual memory managers to emulate the amount of memory available to each process. When a new process is scheduled to execute, it will be loaded into main memory; if there is not enough main memory, though, the current process has to be paged out to disk. When the number of processes exceeds available memory, a condition called thrashing occurs, where the system constantly swaps processes between memory and disk and accomplishes little or no useful work.

Network Adapter
Under normal conditions, the network adapter is usually not a bottleneck. But some factors inherited from the network operating system may cause your server to limit the number of active sessions available. For example, the NetBIOS transport support can only accommodate 120 active Notes sessions per adapter.

To increase the number of active sessions, use the TCP/IP protocol, which has no logical limit on the number of active Notes sessions per adapter.

Disk Subsystem
In a virtual storage system, generally the first place to look when evaluating performance is in the disk subsystem. Since the disk subsystem is so closely related to the file system, both systems should be discussed together. Because our discussion centers on how the hardware affects the Lotus Notes environment, let's start with the file system.

A file system organizes and manages files on a physical or logical mass-storage device such as a disk, diskette, or another file system in a distributed environment. For this article, I am limiting the discussion to physical mass-storage devices.

Why is one file system implementation superior to another? The answer often depends upon how the operating system designer implemented its search algorithm and where the information needed to locate a particular file is stored. (Designing a file system is beyond the scope of this article.)

In OS/2, HPFS386 versus FAT is the most suitable file system for Lotus Notes, while in Windows NT, the choice is NTFS rather than FAT.

The performance of the disk subsystem depends upon how fast a piece of data can be made available to the CPU. The bottleneck for the disk subsystem is the disk drive's seeking mechanism. Seek time is the major factor when comparing two disk drives. The second factor is the rotational speed of the disk, sometimes referred to as average latency. The average seek time and average latency affect Lotus Notes performance.

Fortunately, there is almost no difference among the seek times and average latency of disk drives used in today's PC server disk subsystems. Many disk drives have a rotational speed of 7200 rpm and a seek time between 7 and 8 milliseconds.

Some disk controllers use disk cache memory for data writing and reading. With a disk cache, the disk drive can write data to and read data from the cache, then proceed with processing while the disk controller actually writes the data from cache to disk or reads more data from disk to cache. Because a cache minimizes CPU idle time, it can enhance Notes' performance.

Another disk subsystem component that affects Notes performance is the disk controller. The most popular disk controllers in the market today are small computer system interface (SCSI) and Enhanced Integrated Drive Electronics (EIDE). Using a disk controller to implement multiple small disks instead of one large disk provides one way to enhance a disk subsystem because multiple drives can provide faster access to the data requested by Notes. A SCSI disk controller provides connections for seven disk drives, and SCSI II increases that number to 15. The SCSI II Fast/Wide controller can provide an 80 MB/sec transfer rate between the disk subsystem and the system peripheral bus, and a 20 MB/sec data-transfer rate between the disk drives and the controller.

An EIDE controller provides a maximum of four connections. It can achieve up to a 16.6 MB/sec data-transfer rate between disk drives and the controller.

For a small system that uses no more than four disks, EIDE can be a viable alternative; however, for a large Notes system, you should choose SCSI II Fast/Wide.

How about a RAID implementation? Obviously the best performance is RAID 0, disk striping, but RAID 0 sacrifices system reliability. In a mission-critical environment, RAID 0 is not feasible. RAID 5 seems good, because it is reliable and wastes less disk space. But RAID 5 also uses higher overhead to create the checksum. For combined reliability and performance, the best way to implement a RAID system is disk striping and disk mirroring, a configuration sometimes referred to as RAID 10 or enhanced RAID 1.

Operating System
Two ways to improve operating system performance include:
 * Keeping all processes/threads at same priority. In OS/2, set PRIORITY=ABSOLUTE and PRIORITY_IO=NO in the CONFIG.SYS file. In Windows NT, open the Control Panel icon, open the System icon, select Tasking, and set "Background Applications Equally Responsive."
 * Optimizing file caching. In OS/2, set USEALLMEM=YES in the /IBM386FS/HPFS386.INI file. In Windows NT, open the Control Panel icon, open the Network icon, select "Configure," and set "Maximize Throughput for Network Application."

Notes Environment Variable
One environment variable for the Notes server on the PC server, NSF_Buffer_Pool_Size, affects Lotus Notes performance. Set this variable by editing the NOTES.INI file to create an entry NSF_Buffer_Pool_Size= xxx (where xxx is the maximum amount of buffer memory available to the Notes server). The value depends upon the memory available in the PC server. The maximum allowable size is 128 MB.

Although Notes performance relies heavily on the design of the Notes applications, remember that hardware can also have an impact. Properly specified system bus, memory, network, and disk subsystems can enhance the performance of your Notes application.