Sun ONE Directory Server 5.2 Installation and Tuning Guide |
Tuning performance implies modifying the default configuration to reflect specific deployment requirements.
This guide describes how to tune a single Directory Server instance. It is assumed here that your overall directory service design including the replication topology is complete, and that you use the information here to tune the Directory Server instances to meet the design requirements. If you have not yet completed the overall directory service design, refer to the Sun ONE Directory Server Deployment Guide for suggestions on how to do so.
Tuning performance takes time, effort, and thought as reflected in Table 3-1.
This chapter lists basic recommendations that apply almost every time you tune a Directory Server instance. Although the recommendations presented here are in general valid, avoid the temptation to apply them without understanding how they impact the specific deployment at hand. This chapter is intended as a checklist, not a cheat sheet.
- Adjust cache sizes.
Ideally, the server has enough available physical memory to hold all caches used by Directory Server. In that case, set the entry cache size large enough to hold all entries in the directory, and set the database cache size large enough to hold all indexes.
Refer to Chapter 6 "Tuning Cache Sizes," for more information.
- Optimize indexing.
- Remove unnecessary indexes and add additional indexes to support expected requests.
From time to time, it may become necessary to add additional indexes that support requests from new applications. It is possible to add, remove, and modify indexes while Directory Server is running, with the limitation that existing data are only indexed progressively from that point forward.
Refer to "Benefits: How Searches Use Indexes" and "Costs: How Updates Affect Indexes" for more information.
- Allow only indexed searches.
Unindexed searches can have a strong negative impact on server performance and may consume significant server resources. Consider adding indexes to support specific searches applications may perform, and forcing the server to reject unindexed searches.
Refer to "Allowing Only Indexed Searches" for more information.
- Adjust the maximum length of index lists.
Refer to "Limiting Index List Length" for more information.
- Tune the underlying operating system.
Refer to Chapter 5 "Tuning the Operating System," for more information.
- Adjust operational limits.
Adjustable operational limits prevent Directory Server from devoting inordinate resources to any single operation. Consider assigning unique bind DNs to client applications requiring increased capabilities, then setting resource limits specifically for these unique bind DNs.
Refer to Chapter 9 "Managing Use of Other Resources," for more information.
- Disable unnecessary logging.
Disk access is much slower than memory access. Writing frequently to log files on disk can have strong negative impact on performance. If possible, eliminate disk writes by turning access, error, and audit logging off when not required. At minimum, attempt to reduce the impact of logging by putting log files on separate disks using separate controllers.
Refer to Chapter 8 "Tuning Logging," for more information.
- Distribute disk activity.
Especially for deployments supporting large numbers of updates, Directory Server can be extremely disk I/O intensive. If possible, consider spreading the load across multiple disks using separate controllers.
Refer to "Sizing Disk Subsystems" for more information.