When you upgrade databases and database servers to R5, you'll gain a number of key benefits in the input/output (I/O) subsystem. Some of the I/O optimizations include transaction logging, new justification for distributing multiple mail files across multiple logical disk units, multiple MAIL.BOX databases, and the new R5 database format. These I/O optimizations can result in greatly increased performance.
In this article, we'll look at the performance of Domino R5 on various system configurations, and pay special attention to the I/O subsystems. We'll then review the I/O lessons that we learned with each configuration. Finally, we'll give you some recommendations for I/O subsystem configurations, so you can take full advantage of the performance enhancements in Domino R5.
About the I/O improvements in Domino R5 Domino R5 includes the following I/O improvements that can lead to increased performance:
System configurations To run our tests, we set up three systems with the following configurations:
System 1 (Windows NT) Our first system ran Windows NT on:
Note: The following workload descriptions show the time interval for sending messages that we used in our tests. You can specify a different time interval.
The R5Mail workload models an active user reading and sending mail, as well as scheduling an appointment, and sending meeting invitations. The script sends six messages (two memos, two appointments, and two invitations) to three recipients every 90 minutes. For each iteration of the 15-minute script, the client:
-- 20 9GB 10K RPM drives
-- Two controller modules with two Ultra SCSI controller cards per module
-- Eight SBus Ultra Differential FW SCSI host adapters attached via eight Ultra SCSI (40 MB/s) buses
-- Four hardware RAID0 LUNs, with five drives per LUN. We distributed and balanced each RAID0 LUN on an Ultra SCSI controller card. Three of the RAID0 LUNs were for databases and one was for swap space.
Domino R5 delivered mail concurrently, resulting in concurrent disk I/Os and increased I/O performance. The disk utilization was very low (6% for Webmail and 25% for IMAP), so the configuration includes room for the databases to grow. We used seven MAIL.BOX databases in this configuration.
Recommended I/O configurations To optimize your servers for I/O performance, we recommend that you look at the configuration of your Domino databases, transaction logs, and storage.
Domino databases As mentioned earlier, you can now use file links to distribute multiple mail files across multiple logical disk units. To distribute the files, you use directory links on Windows NT and symbolic links on UNIX. (The feature is new on Windows NT, but was already available on UNIX.) Domino can then deliver mail concurrently, resulting in concurrent disk I/Os and increased I/O performance.
The important thing here is that you must use multiple RAID LUNs for the data store. You should distribute and balance the LUNs over multiple hardware RAID controller cards in order to maximize the throughput of your I/O subsystems. If you use multiple RAID arrays, make sure to put each array on its own host adapter (preferably on its own I/O board) so that the host adapter/board does not affect performance.
In addition, you should use hardware RAID0+1 (mirroring and striping) or RAID1 Enhanced (striping and mirroring) for the best performance of Domino databases. We developed this recommendation after comparing the ratio of write and read accesses to disk for the various workloads. Our results showed that the workloads are write-intensive. (To learn more about monitoring the disk statistics for your own applications, see the Lotusphere presentation, Deploying R5 for Performance and Scalability in your Environment.)
So, for write-intensive applications, you should not use RAID5. RAID5 (parity plus striping) writes require three additional disk I/Os, while RAID 0+1 and RAID1 Enhanced writes require only one additional disk I/O. For more information on RAID levels and our read/write access test results, see the sidebar "Configuring RAID levels for I/O performance."
Note that you should use hardware RAID for the Domino databases, not software RAID. Software RAID is less efficient than hardware RAID and puts additional overhead on the server's CPUs. Also, turn on the write-back cache on the hardware RAID controllers. We recommend using a stripe or chunk-size of 32KB or 64KB for the RAID LUNs, except in the case of the SMTP/POP3 workloads, where we recommend 64KB.
Finally, we realize that you may have concerns with using RAID0+1 or RAID1 Enhanced for the data store, because these RAID levels have an effective storage of 50 percent. (For more details on this, see the sidebar "Configuring RAID levels for I/O performance.") Therefore, consider the tradeoff between performance and cost when choosing your RAID level. For information on preferred configurations from the hardware vendors themselves, see the vendor reports on the NotesBench site. In particular, check out their I/O subsystems, number and type of host adapter and controllers, and disk configurations. Their reports have performance results using RAID0+1, RAID1 Enhanced, and RAID 5. Transaction logs With Domino R5 transaction logging, all changes are written sequentially to disk, which results in much faster I/Os. For a performance analysis of transaction logging, see "Optimizing server performance: Transaction logging."
You should allocate a separate disk drive for the transaction log files -- not the same device as for the Domino databases, swap file, operating system, or the temporary directory that Domino uses for rebuilding views. We highly recommend using hardware RAID1 (two disk drives mirrored), which increases your system availability and reliability. The increase in cost is the price of one disk drive!
To further maximize performance and reduce I/O contention, place the transaction log file on its own port on a host adapter, if possible. Even better, place the log file on its own RAID controller. Also, turn on the write-back cache on the hardware RAID controller for the transaction log files.
Other storage Finally, you should use separate disk drives for the swap and page files, and for the temporary space that Domino uses for rebuilding views. If you have an extra RAID controller, configure a RAID0 LUN of at least two disk drives for the temporary space. To do this, add the following NOTES.INI setting to point the temporary view rebuild to the extra disk drive or LUN: VIEW_REBUILD_DIR=/extra_LUN We hope that you can use these recommendations to remove any I/O bottlenecks in your own systems! ABOUT THE AUTHOR Razeyah Stephen is a Domino Performance Engineer, who has worked at Iris since October 1998. She came to Iris from Digital Equipment Corporation, now Compaq, where she worked for five years in their StorageWorks division. Razeyah's specialty is UNIX performance.