Domino Http 活動線程數的推薦設置

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 這兩個統計值。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章