設定 Project Server 佇列服務之工作處理器執行緒上限
上次修改主題的時間: 2015-02-27
Microsoft Office Project Server 2007 佇列服務可讓您針對每種佇列類型,設定工作處理執行緒的數目上限。
Project Web Access 伺服器設定的 [佇列設定] 頁面包含 [工作處理執行緒的數目上限] 設定,其預設值為 4 (適用於每種佇列類型)。調整這些值時,需要考慮許多事項。工作處理器執行緒數目過多時,會對應用程式伺服器的效能造成不良影響,且可能會導致逾時及記憶體例外狀況等錯誤。例如,管理員可能會嘗試同時在時程表及專案佇列上,將工作處理器執行緒數目的最大值從 4 加大為 10,以處理時程表提交與專案更新到月底前預期的增量。若未謹慎考量,這類增加可能會對效能造成不良影響。
佇列的設計目的,是為了限制工作的處理速率,以分散會造成伺服器超載的尖峰使用量。就專案管理的專業術語而言,此為伺服器的「資源撫平」(停止伺服器嘗試一次執行太多工作)。
佇列多執行緒
由於佇列是多執行緒,因此可以:
快速處理工作。
在其中一項工作遇到問題時,避免完全停止處理工作。
下表說明佇列在單一執行緒佇列與多執行緒佇列中處理工作的順序。在此例中,已儲存三個專案,並依下列順序發佈:
專案 1 已儲存並發佈。
專案 2 已儲存並發佈。
專案 3 已儲存。
專案 2 已開啟、編輯、儲存,並再次發佈。
下表說明佇列如何在單一執行緒環境中嘗試處理工作。欄標題 T1 到 T9 表示時段。所有作業皆會在這九個時段結束時完成。請注意,將會略過第一個專案 2 發佈工作,以進行最佳化,因為佇列偵測到稍後發生相同的專案 2 發佈工作。此外,專案 1 和專案 2 的報告工作優先順序較低,因此會稍後處理。
執行緒 | T1 | T2 | T3 | T4 | T5 | T6 | T7 | T8 | T9 |
---|---|---|---|---|---|---|---|---|---|
執行緒 1 |
專案 1:儲存 |
專案 1:發佈 |
專案 2:儲存 |
專案 2:發佈 (略過) |
專案 3:儲存 |
專案 2:儲存 |
專案 2:發佈 |
專案 1:報告 |
專案 2:報告 |
下表說明佇列如何在多執行緒環境 (在此例中為三個執行緒) 中嘗試處理工作。與前述範例相較下,佇列嘗試處理相同作業需要一半以上的時間。請注意此環境如何在同一執行緒上,共同處理相關聯的工作 (例如,所有與專案 1 儲存並發佈相關的工作)。若交互關聯中有工作失敗,可能會禁止處理同一交互關聯中的其他工作,但不會影響其他執行緒中的其他工作。
執行緒 | T1 | T2 | T3 | T4 | T5 | T6 | T7 | T8 | T9 |
---|---|---|---|---|---|---|---|---|---|
執行緒 1 |
專案 1:儲存 |
專案 1:發佈 |
專案 1:儲存 |
專案 1:報告 |
|||||
執行緒 2 |
專案 2:儲存 |
專案 2:儲存 |
專案 2:發佈 |
專案 2:報告 |
|||||
執行緒 3 |
專案 3:儲存 |
建議設定
建議您一開始即根據可用處理器 (或核心) 的數目,設定處理器執行緒設定的最大值。例如,若 Project Server 應用程式伺服器使用一個雙核心處理器,最好一開始便設定為每個佇列使用兩個執行緒。若應用程式伺服器使用四個雙核心處理器,則可以為每個佇列使用八個執行緒。您不僅可以根據交易量,還可根據交易平均大小 (例如,發佈 10 列專案與 1000 列專案),據以調整這些設定。
您還應考量伺服器陣列拓撲及伺服器陣列上所執行的其他應用程式。例如,根據您的應用程式伺服器是否也同時作為前端網頁伺服器,或者執行搜尋或其他耗用處理器的作業,據以調整設定。此外,您可以監控效能計數器、應用程式記錄檔及 ULS 記錄檔,引導您微調佇列以處理一般伺服器負載。