成功的部署设计的关键之一是确定潜在的性能瓶颈并开发出可以避免它们的策略。访问数据的速率不能满足指定的系统要求时,则出现性能瓶颈。
可以根据不同硬件的类别(例如,下表列出某一系统内的数据访问点)对瓶颈进行分类。此表还为每种硬件类别中存在的瓶颈提出了可能的补救措施。
表 5–7 数据访问点
硬件类别 |
相对访问速度 |
改善性能的补救措施 |
---|---|---|
处理器 |
纳秒 |
垂直扩展:提高更多的处理能力,增强处理器高速缓存 水平扩展:添加负载平衡的并行处理能力 |
系统内存 (RAM) |
微秒 |
使系统内存专用于特定任务 垂直扩展:添加额外内存 水平扩展:创建附加实例,用于并行处理和负载平衡 |
磁盘读写 |
毫秒 |
使用磁盘阵列 (RAID) 优化磁盘访问 使磁盘访问专用于特定功能,如只读或只写 在系统内存中缓存频繁访问的数据 |
网络接口 |
随网络节点的带宽和访问速度的不同而不同 |
增加带宽 传输安全数据时添加加速器硬件 增强网络内节点的性能,以便数据更加可用 |
确定性能瓶颈按照相对访问速度列出硬件类别,表明低速访问点,如磁盘,更可能是瓶颈源头。但是,能力不足的处理器处理大量负载时也可能形成瓶颈。
部署设计通常从为部署中的每个组件以及它们的依赖性进行底线处理能力估计开始。然后确定如何避免与系统内存和磁盘访问相关的瓶颈。最后检查网络接口,确定潜在的瓶颈并集中精力于解决它们的策略。
部署设计的一个关键组件是磁盘对经常访问的数据集(如 LDAP 目录)的访问速度。磁盘访问对数据的访问速度最低,很可能是性能瓶颈的源头。
优化磁盘访问的方法之一是将写入操作与读取操作分开进行。不仅写入操作比读取操作更加费时,读取操作(查找 LDAP 目录的操作)的出现频率也远远高出写入操作(更新 LDAP 目录中的数据)。
优化磁盘访问的另一种方法是将各个磁盘专用于不同类型的 I/O 操作。例如,为 Directory Server 日志记录操作(如事务日志和事件日志)与 LDAP 读写操作分别提供磁盘访问。
另外,还可考虑实现一个或多个专用于读写操作的 Directory Server 实例以及使用分布于各本地服务器的复制实例进行读取和搜索访问。链锁和链接选项也可用于优化对目录服务的访问。
《Sun Java System Directory Server 5 2005Q1 Deployment Plannning Guide》第 6 章 "Defining System Characteristics" 讨论了规划磁盘访问时的各种因素。本章包括以下主题:
最低内存和磁盘空间要求。提供各种大小的目录所需的磁盘和内存的估计值。
估量缓存访问的物理内存。为根据 Directory Server 的计划用量和总规划内存用量估计高速缓存大小提供指导。
估量磁盘子系统大小。提供根据目录后缀和影响磁盘使用的 Directory Server 因素规划磁盘空间要求的信息。以及提供在磁盘(包括各种磁盘阵列变通方案)间分布文件的信息。