当前位置:Linux教程 - Linux文化 - 提高Domino服务器性能需要考虑的方面

提高Domino服务器性能需要考虑的方面


提高Domino服务器性能需要考虑的方面:

(一)了解您的配置

Domino管理员应该知道所支持的服务器的配置。任何一个服务器的主要元件有内存、CPU、磁盘(包括逻辑的和物理的),其它元件诸如在线缓冲内存以及磁盘控制器的数量等,也是比较重要的。 下面是一些附加的注意事项,可以使您避免发生配置相关的问题:

1)使用尽可能快的磁盘(例如10,000 RPMs)。

2)在软件RAID上使用硬件RAID,这样速度更快,并且可以减少CPU的负载。

3)一个充足的磁盘子系统可以减少内存需求,因为较少的临时I/O来占用内存。

4)对于Windows NT平台,整理磁盘碎片能充分提高性能。建议每周整理磁盘碎片一次。

5)确保服务器即使是在最大负载时,也至少有4MB内存可用(10 到 20MB更好)。要注意的是,平台的缓存策略有可能会起阻碍作用。

6)标准的服务器配置对于Domino服务器不一定是最优的,重要的事情是足够的磁盘和控制器。您可以使用硬件销售商的NotesBench基准数据作为指导。

(二)通过物理磁盘来分配I/O

通常物理的和逻辑的磁盘结构是人们经常忽略的系统资源,是最经常过载使用的。在很多Domino服务器上提高性能的最好办法是通过不同的物理磁盘来分配I/O。 理想的情况是,将下面与I/O相关的文件放在不同的物理磁盘上:

1)不同平台的页面文件 

2)您的NSF文件

3)Domino R5 事务日志

如果您能将它们放在不同的控制器上,那是最好的。这个方法是通过在总线、控制器、端口和磁盘上分发负载来提高I/O吞吐量。因此,最好是使用几个小磁盘,而不是一个容量大的磁盘。特别地,您将R5事务日志与其它磁盘活动隔离地越开,您的服务器性能就越好。注意,对于某些系统,例如AS/400,操作系统能在可用的磁盘和控制器间自动优化数据分布 。

(三)经常对性能方面的衡量数据做日志

如果您不做性能方面衡量数据的日志,您就不能衡量您的调整是成功或失败。如果您经常做日志,您不但对您所做的事情有一个更好的理解,更为额外的支出提供了详细的文件证明。 您需要从操作系统和Domino两方面来度量。下面是主要的衡量标准(根据平台):

1)全部的CPU使用率(以百分数表示)。如果该值大于70%或80%,则在很多平台上就会有一个红色的标志来警告,例如Windows NT。

2)可用内存或使用率。记住,当可用内存小于4MB时,减少缓存需求。

3)磁盘序列长度(通常在序列中应该小于2项)和平均磁盘服务时间(对于NT应该小于70%)。

4)页面文件尺寸和使用率。使用率应该正当地低一些,或值得评估您的磁盘子系统的使用率和效率。例如,对于NT平台上的Domino邮件服务器来说,页面使用率一般应小于150页/秒。

5)关于邮件吞吐量、复制、Web服务器活动、数据库活动等方面的Domino统计和事件。

6)Domino日志(log.nsf),很烦琐但的确很有用(注意仅当需要时才启用日志,因为它会影响服务器性能)。 注意经常收集和分析数据,在做重大配置改变之前或之后,捕获性能方面的数据是很必要的。

(四)优化 Domino 

R5 在自动配置和动态重新配置关键参数以达到最大性能方面,Domino R5做了很多工作。下面是关于如何优化Domino R5服务器本身的一些建议:

1)正确设置mailbox的数量。多个mail.box文件可以减少存放邮件和其它邮件相关的活动对mail.box文件的争夺。当您添加第二个 mail.box时,就可以很大地改善性能。经验是我们使用一个mail.box支持1~200个用户,两个或更多的mail.box支持 200~1000个用户,最多十个mail.box支持1000个以上的用户。

2)对于非分区的系统,让Domino动态设置NSF_Buffer_Pool_Size变量。对于低内存的服务器配置,这一点特别重要,大的缓冲区会妨碍核心的内存管理。

3)对于分区的系统,您需要分配NSF_Buffer_Pool_Size,因为Domino不能自动决定每个分区中实际可用的内存。我们推荐的公式是:(系统内存/分区数量)/4。

4)基于可用内存,让Domino根据需要来分配邮件传输线程(为了本地传输)。

5)根据需要,让Domino路由器来分配邮件传输线程(为了发送到其它服务器)。 

6)使用R5事物日志。它提供给您大批完整的数据,可以使服务器快速启动,将性能提高10%~20%。 适当地配置一个Domino R5服务器运行在中档的Windows NT机器上,每分钟能传输20,000条消息(每条消息平均 10K字节)!

(五)使用NotesBench基准数据

很多基准只是告诉您销售商想要您知道的东西,但是NotesBench基准却与众不同。 NotesBench基准数据可以让您对不同销售商的不同硬件配置上的Domino容量做一个详细的比较,您甚至可以用这些数据估计出总成本。仔细阅读 NotesBench数据和由它得到的详细报告,是一个非常好的收集信息的方法。通过它,您可以优化您的系统配置。检测专家们使用(或未用)的磁盘结构、内核设置、补丁程序等,从他们的系统中得到最大的性能参数。

(六)从信号中分析

信号是用于处理线程的一个通信机制。本质上信号是使用握手机制来决定对资源的使用。当服务器超负荷工作时,管理员可能会从控制台收到信号。下面是通过观察Domino 4.6而得到的一些常见的信号,并解释了从性能方面考虑,它们意味着什么:

1)Collection (0x30B) 和 Collection Queue (0x309).:暗示了CPU和内存达到了瓶颈。最好的解决办法是将管理进程活动延期到空闲的时间,优化I/O子系统。

2)DB (0x245) 和 DB Queue (0x244):暗示了数据库缓存和磁盘I/O 达到了瓶颈。 最好的解决办法是增加更多的内存,优化I/O字系统。启用域级的复制也会有所帮助。

3)BTree (0x255):暗示了怎样存储视图和刷新视图索引的问题。最好的解决办法是将刷新视图索引延期到空闲的时间,优化I/O子系统。

(七)了解服务器过载使用时的症状

对服务器来说典型的问题是速度慢或邮件传输失败,延长了用户的响应时间和查找邮件地址的时间。为检查邮件传输,您可以通过查看您的磁盘使用时间的百分比和邮件序列的长度。对于R5,您也可以检查mail.box 文件的数量和本地邮件传输线程的数量。 为了提高响应时间,应尽可能优化与I/O相关的文件在磁盘子系统中分布的方式。如果地址搜索很慢,可以使用户在自己的客户机上使用轻量目录,这样会减少服务器和网络的负载。您也可以检查姓名搜索缓存(Name Lookup  Cache)的点击率,一个好的点击率值应该是85%。如果问题是很慢的页面刷新率或不响应的Web服务器,检查HTTP线程的数量和磁盘使用时间的百分比。设置HTTP线程的数量为1:10 (每十个用户使用一个线程)。如何来确定一个服务器没有被充分使用?对于NT,指数是CPU的使用率低于50%,磁盘访问率低于50%,或者经常有多于200MB的可用内存。但是注意新添加的用户所需要的资源可能不等于您当前用户的平均资源。例如,随着用户数量的增加,每个用户的内存需求会减少,因为固定的内存被分配给了更多的用户。

(八)考虑群集

群集是Domino企业服务器的主要特征。群集能帮助您实现动态负载均衡,在群集中可以自动优化资源的使用。在群集中还可以实现邮件和应用的失效转移,包括Web应用。您可以将Domino支持的任何平台上的R4和R5服务器集合在一个群集中,也可以将分区服务器和未分区的服务器群集在一起。 Domino群集是增加服务器资源的鲁棒性和可靠性的最好方法,也是将R5服务器加入到R4群集中的最安全的方法。根据您的平台,一个低价格系统的群集能以较低的初始成本提供比一个单独庞大的服务器更好的可靠性。另外,群集大大减少了连接服务器失败的用户数量。例如,在Windows NT平台上,如果一个系统中激活的用户超过750个,我们推荐使用群集。

(九)考虑分区

分区能提高资源使用率和高端Domino系统的可靠性,也可以使您在维持合并利益的同时,按部门或功能来分布服务器。一些组织甚至使用分区来创建“服务级选项”(即将一些重要的经理人员放在一个分区,其他人放在另一个分区)。 通常,系统中分区的数量不应该超过CPU的数量。AS/400系统是一个例外,它非常适合做分区。AS/400平台本身从逻辑上也将分区隔离开,所以即使一个分区坏了,其它的分区仍可以正常工作。

(十)知道何时联合何时分布

除非您有令人信服的理由,否则选择在分布之上联合作为增长策略。联合总是降低成本并提高可靠性:较少的服务器意味着不太复杂的服务器拓扑、较少的服务器对服务器之间的活动、较少的网络流通、较少的复制、服务器之间较少的邮件传输。什么时候选择分布服务器而不是将它们联合在一起?您可能有地理上的分布要求,本地的服务器以低成本来处理本地的用户和数据。或者您开始的拓展比较小,但是增长很快,所以添加更多的服务器来容纳新用户,或为了更好地利用当前的投资。   

也可以通过对记帐任务的设置来优化Domino系统的性能: 方法如下:(说白了就是编辑notes.ini)

1.更改添加记录至消息队列的频率缺省情况下,Domino每15分钟创建记录。在高峰使用期间,如果系统性能降低或系统虚拟内存不足,则应降低向消息队列中添加记录的频率。要修改此设置,可在NOTES.INI文件中添加 BillingSuppressTime=minutes (缺省为15)

2.控制Billing任务的运行 Billing任务用于将记录从消息队列传送到记账数据库或文件。缺省情况下,Billing任务每分钟运行一次,每次运行10秒钟。当系统繁忙时,可以更改Billing任务运行的时间和频率。 要修改Billing任务运行的频率,可在 NOTES.INI文件中添加 BillingAddinWakeup=seconds (缺省为60) 要修改Billing任务运行的时间长度,可在NOTES.INI文件中添加。