Domino Http 活动线程数的推荐设置

环境:(产品,平台,机型,软件版本,等)
产品: Lotus Domino
版本:8.0, 7.0, 6.5, 6.0

问题描述:
Lotus Domino server的Http 活动线程数最大推荐值是多少?这个设置位于服务器文档->Internet 协议->HTTP->活动的线程数

解答:
考虑到内存的限制和线程切换所需的开销,建议对于单处理器的服务器,此值不要设置超过64;对于多处理器的服务器,此值不要设置超过80。如果超过了建议的设置值,很可能会降低服务器性能,甚至导致宕机。即使对于某些操作系统,比如i5/OS (iSeries),可以设置较高的活动线程值(可达到512),分配较多的活动线程也不意味着一定会有更好的性能。
Domino 6 及以后的版本已经允许更少的线程执行更多的工作。所以,超过80个活动线程会由于线程的切换反而对性能产生负面影响。因此,上面给出的活动线程数已经是最大的建议设定值。您需要决定的是具体设定为什么值会最适合您的生产环境。这里建议您从默认的40个线程数开始,逐渐地增长,可以一次增长10个线程数,来决定设置为何值时可将性能调整为最优。

对于Domino6、7、8 服务器来说,您可以通过定时输入“show stat”命令来收集统计信息,以调整HTTP的线程数:

Domino.Threads.Active.Peak (R5 及以上版本) – 当执行特定的NSF请求时,并发的HTTP线程峰值
HTTP.CurrentConnections (Domino 6及以上版本) –当前HTTP服务器的连接数,不论是何种请求类型
HTTP.PeakConnections (Domino 6.0.5/6.5.4及以上版本) –从HTTP服务器启动开始的连接峰值,不论是何种请求类型

这三个统计值可以看出服务器的负载情况,但是不能说明一定要增加HTTP工作的线程数才能具有好的性能。
在决定是否增加HTTP工作的线程数之前,您需要关注的是如何提高服务器的处理能力,而不是一味关注服务器的负载。举例来说,在Threads.Active.Peak 统计值是75时设置80个活动线程,这种情况不意味着就会比40个活动线程,峰值40性能更好。当然,这取决于请求的类型,以及运行于Domino服务器上的应用。

说到服务器的处理能力,您可以通过处理单个请求所花费的时间来判断,也就是以下这两个统计信息相除的结果:
HTTP.Worker.Total.RequestsProcessed (Domino 6.5.4 及以上版本) – HTTP工作线程所处理的请求总数
HTTP.Worker.Total.TotalRequestTime (Domino 6.5.4 及以上版本) - HTTP工作线程所处理的请求所花费的总时间

用TotalRequestTime 除以 RequestsProcessed, 就会得到服务器处理能力的统计数值。
另外,完成一个请求所需的时间也可以被记录,只是这种方法需要用户做一些额外的操作,如定制脚本,或手工地把这些数据分析出来。
为更好地设置活动线程数,建议您在观察服务器处理能力的同时,也同样观察服务器在处理一些简单请求所花费的平均时间,比如"OPTIONS *" 或 "GET /test.html"(这里,test.html可以是一个简单的html页面或是其他小资源)。如果这些简单请求的响应时间已经达到了不能接受的范围,那么您可以考虑增加HTTP工作线程数。然后继续观察服务器处理情况以及简单请求的响应时间,以检测是否提高了服务器的性能。

另外,您还可以通过压力测试来模拟对于您的应用预期的负载量,同样运用上边提到的建议值以及统计数据。一些测试数据记录在developerWorks的相关文档中,您可以通过这篇文章最后列出连接访问这些文档。

注意:Domino.Threads.Active.Peak 只记录了并发的NSF请求数, 非NSF请求不包括在内。因此,如要收集同时包括NSF以及非NSF的信息,您可以定期输出"show stat http" ,并观察HTTP.Worker.TotalRequestsProcessed 和 HTTP.Worker.Total.TotalRequestTime 这两个统计值。 对于更多的关于HTTP线程数的讨论,请参考developerWorks: Lotus Web site中的这篇文章:

"Optimizing server performance: HTTP Threads settings"
http://www.ibm.com/developerworks/lotus/library/ls-HTTP_Threads_settings/

你可能感兴趣的:(工作,活动,HTTP服务器,服务器,performance,Lotus)