共用方式為


內容散發的元件和線程

本文可協助您了解內容散發的元件和線程。

原始產品版本:Configuration Manager 最新分支、Microsoft System Center 2012 Configuration Manager、Microsoft System Center 2012 R2 Configuration Manager

用於內容散發的元件

以下是用於內容發佈的主要元件快速清單:

名稱 元件名稱 易記名稱 描述
散發管理員 SMS_DISTRIBUTION_MANAGER DistMgr 管理內容並建立 PkgXferMgr 的作業
套件傳輸管理員 SMS_PACKAGE_TRANSFER_MANAGER PkgXferMgr 將套件傳送至發佈點
階層管理員 SMS_HIERARCHY_MANAGER Hman 處理變更並復寫至站台階層
寄件者 SMS_SENDER 寄件者 跨 TCP/IP 網路起始月台間通訊
Despooler SMS_DESPOOLER Despooler 處理來自父月臺或子月臺的傳入複寫檔案
調度 SMS_SCHEDULER 調度 建立寄件人作業
資料庫通知監視器 SMS_DATABASE_NOTIFICATION_MONITOR SmsDbMon 監看資料庫對特定數據表的變更,並在負責處理這些變更的元件收件匣中建立檔案
SMS 提供者 SMS 提供者 SMSProv Windows Management Instrumentation (WMI) 提供者,指派站臺上 Configuration Manager 資料庫的讀取和寫入存取權
SMS DP 提供者 SMS DP 提供者 SMSDPProv Windows Management Instrumentation (管理 DP 上內容庫作業的 WMI) 提供者
SMS 代理程式主機 SMS 代理程式主機 CcmExec SMS 代理程式主機是 Configuration Manager 用戶端代理程式服務,也會裝載伺服器端元件,例如管理點和提取發佈點
數據傳輸服務 DataTransferService Dts 數據傳輸服務是 CcmExec 的元件,負責透過 BITS 下載檔。

散發管理員 (DistMgr) 線程

發佈管理員 (DistMgr) 會執行各種作業,將內容發佈至發佈點 (DPS) 。 這些作業是由不同類型的線程處理,下圖說明預設線程設定的 DistMgr 線程階層:

圖表顯示散發管理員線程階層。

  • 主要 DistMgr 線程

    辨識的記錄項目: SMS_EXECUTIVE started SMS_DISTRIBUTION_MANAGER as thread ID 3648 (0xE40)

    此線程是在服務啟動時啟動 SMS_Executive 。 主要 DistMgr 線程會在啟動時啟動複寫處理、DP 管理員、內容清除、DP 憑證監視、內容庫移動、IIS 設定變更處理、DP 重新指派和升級處理線程。 它也會在套件變更發生時隨選啟動套件處理線程

    除了管理這些線程之外,此線程也會處理月臺控制檔案的變更,並更新 DP 設定 (設定 DP/PXE、更新登錄設定、在 DP 上建立監視/使用工作等) 。

  • 複寫處理線程

    辨識的記錄項目: Starting thread for processing replication, thread ID = 0x1A14 (6676)

    此線程是由主要 DistMgr 線程啟動,並處理目錄中的 DistMgr.box\incoming 下列檔案:

    檔案 描述
    .Sta 匯報 資料庫中數據表中的PkgStatus封裝狀態。
    .Fwd 藉由建立迷你作業來傳送套件,將指定的套件轉送至指定的目的地月臺。
    .Dmd 散發隨選要求。 以指定的套件為目標,以指定的 DP 為目標。
    .PUL 匯報 DB 中的數據表中PullDPResponse提取 DP 套件回應。

    注意事項

    此線程是單個線程,不會建立更多線程來處理這些檔案。

  • DP 管理員線程

    辨識的記錄項目: Starting the DP Manager thread, thread ID = 0x5D8 (1496)

    此線程是由主要 DistMgr 線程啟動,並在偵測到月臺控制檔案變更時處理 DP 的移除。 發生適當的月臺控制檔案變更時,SMSDBMON 會將 DPN (DP 通知) 在此線程所處理的 檔案中 DistMgr.box 卸除。

    DPN 檔案是用來通知 DP 變更,這牽涉到數據表) 中 DistributionPoints Action = 3 偵測到的 DP 移除 (。

    注意事項

    此線程是單個線程,不會建立更多線程來執行工作。

  • 內容清除線程

    辨識的記錄項目: Starting the content cleanup thread, thread ID = 0x1604 (5636)

    此線程是由主要 DistMgr 線程啟動,並執行內容清除。 它會藉由偵測資料庫中的孤立內容來判斷是否需要內容清除。 此線程會使用預設批次大小 50 作為可指示遠端 DP 一次刪除的內容數目。 不過,您可以藉由設定下列登錄機碼來覆寫此值:

    SMS\Components\SMS_DISTRIBUTION_MANAGER\RemoteContentCleanupBatchSize

    DWORD 值可以介於 1500 之間。

    注意事項

    請勿在沒有諮詢 Microsoft 支援服務專業人員的情況下變更此值。 此線程是單個線程,不會建立更多線程來執行工作。

  • DP 憑證監視線程

    辨識的記錄項目: Starting the DP cert monitoring thread, thread ID = 0x7290 (29328)

    這個線程是由主要 DistMgr 線程啟動。 此線程會處理 。啟 用增強式 HTTP 模式時,CER 檔案和在 IIS 中設定憑證系結。 此模式需要在 IIS 中使用 Configuration Manager 產生的憑證。

    注意事項

    此線程是單個線程,不會建立更多線程來執行工作。

  • 內容庫移動線程

    辨識的記錄項目: Starting the content library move thread, thread ID = 0x11D6C (73068)

    此線程是由主要 DistMgr 線程啟動,並將內容庫移至 之後的新位置 。CML 檔案會在 中 DistMgr.box卸除。

    注意事項

    此線程是單個線程,不會建立更多線程來執行工作。

  • IIS 設定變更處理線程

    辨識的記錄項目: Starting the IIS config change processing thread, thread ID = 0x408C (16524)

    此線程是由主要 DistMgr 線程啟動,並處理在 中卸除 DistMgr.boxIIS 檔案之後,為標準和提取發佈點設定 IIS 虛擬目錄。 此線程會讀取 IISConfigChangeThreadLimit 元件的 [月臺控制檔案] (SCF) 屬性 SMS_DISTRIBUTION_MANAGER ,以判斷它可以啟動以同時執行 IIS 變更的線程數目。 SCF 屬性的 IISConfigChangeThreadLimit 預設值為 50,但可視需要變更。 不過,如果此 SCF 屬性基於某些原因而不存在,則預設值 50 會用於 IISConfigChangeThreadLimit

    注意事項

    此線程會建立更多線程來執行 DP IIS 組態變更。 每個背景工作線程都會處理特定 DP 的 IIS 虛擬目錄設定。

  • DP 重新指派線程

    辨識的記錄項目: Starting the shared DP reassignment thread, thread ID = 0x9C0C (39948)

    此線程是由主要 DistMgr 線程啟動,並在 時處理標準和提取發佈點的 DP 重新指派 。DPU 檔案會在 中 DistMgr.box卸除。 此線程會讀取 SharedDPImportThreadLimit 元件的 [月臺控制檔案] (SCF) 屬性 SMS_DISTRIBUTION_MANAGER ,以判斷可以啟動以同時執行 DP 重新指派的線程數目。 SCF 屬性的 SharedDPImportThreadLimit 預設值為 50,但可視需要變更。 不過,如果此 SCF 屬性基於某些原因而不存在,則預設值 50 會用於 SharedDPImportThreadLimit

    注意事項

    此線程會建立更多線程來執行 DP 重新指派。 每個背景工作線程都會處理特定 DP 的重新指派。

  • 升級處理線程

    辨識的記錄項目: Starting the DP upgrade processing thread, thread ID = 0x1968 (6504)

    此線程是由主要 DistMgr 線程啟動,並處理標準和提取發佈點的 DP 安裝和升級。 它會呼叫 spGetDPsForUpgrade 以取得需要升級的 DPS 清單。 此線程會讀取 DPUpgradeThreadLimit 元件的 [月臺控制檔案] (SCF) 屬性 SMS_DISTRIBUTION_MANAGER ,以判斷可以啟動以同時執行 DP 安裝/升級的線程數目。 SCF 屬性的 DPUpgradeThreadLimit 預設值為 50,但可視需要變更。 不過,如果此 SCF 屬性基於某些原因而不存在,則會針對 DPUpgradeThreadLimit使用預設值 5

    注意事項

    此線程會建立更多線程來執行 DP 安裝/升級工作。 每個背景工作線程都會處理特定 DP 的安裝/升級。

  • 封裝處理線程

    辨識的記錄項目: Started package processing thread for package 'PKGID', thread ID = 0x8E8 (2280)

    這些線程是由主要 DistMgr 線程啟動。 封裝處理線程的數目取決於 [軟體發佈元件元件元件] 屬性中的 [封裝線程數目上限] 設定。 每個封裝處理線程都會執行封裝內容的哈希,並建立內容的壓縮複本。

    注意事項

    雖然所有封裝處理線程都會同時執行,但它們負責哈希和壓縮封裝來源。 壓縮有一個重要區段,這表示一次只能有一個線程壓縮內容。 如果建立並散發了一堆新的大型套件,則每個封裝線程可以在鏈結中封鎖,等候輪流取得壓縮鎖定。

    根據新增/更新/刪除) (套件動作,每個封裝處理線程也會建立:

    • 用來建立套件傳輸管理員作業以在 DP 上新增/更新內容的 DP 線程。
    • 指示遠端發佈點從內容庫中移除內容的 DP 線程。

    每個封裝處理線程可以建立的 DP 線程數目取決於 [軟體發佈元件組態] 屬性中的 [每個封裝的線程數目上限] 設定。

    注意事項

    封裝處理線程是多線程,而每個封裝處理線程會建立更多線程來執行工作。 每個背景工作線程都會處理 DP 的新增/更新/移除作業。

散發管理員線程設定

所有 Configuration Manager 網站 (包括管理中心網站) 允許設定可用來將內容發佈至發佈點的線程數目, (DPS) 。 此設定專屬於每個月臺,並可透過以滑鼠右鍵按兩下 [ 臺] 節點下的網站,然後選取 [ 設定月臺元件>軟體發佈] 來存取。 以下是預設組態的檢視:

軟體發佈元件 屬性視窗 的螢幕快照。

在大部分情況下,您只會考慮 套件數目上限每個套件的線程 數目上限設定。

  • 封裝數目上限:指定 ConfigMgr 可以同時傳送至 DPS 的封裝數目上限。 指定的值應該介於 150 之間。
  • 每個封裝的線程數目上限:指定在散發期間指派給每個封裝的線程數目上限。 指定的值應介於 1999 之間。

件數目上限=3每個套件的最大線程數目=5 的預設組態也可參照 3x5。 這就是線程設定通常會在工作流程中表示的方式。

這實際上代表什麼

對散發管理員 (DistMgr) 的影響

使用 3x5 的預設線程組態時,DistMgr 可以同時處理三個套件,並針對每個封裝使用最多五個線程,使其最多可使用最多 15 個線程來執行工作。 假設我們有三個以上的套件需要散發到超過 5 個 DP,這會如何細分:

圖表顯示當線程元件 = 3x5 時,DistMgr 如何同時處理三個套件。

若要處理每個個別封裝,主要 DistMgr 線程會繁衍封裝處理線程。 此封裝處理線程會使用 [封 裝數目上限 ] 設定中三個封裝處理位置的其中一個。 每個套件都有唯一的套件處理線程 - DistMgr 不會啟動相同套件的多個封裝處理線程。 這表示三個唯一套件會利用三個唯一的封裝處理線程。 每個套件處理線程最多可以繁衍五個 DP 線程,以同時將套件散發至五個 DP。

對 PkgXferMgr (套件傳輸管理員的影響)

針對 DistMgr 所建立的每個 PkgXferMgr 作業,PkgXferMgr 會使用一個線程。 3x5 的線程設定表示 PkgXferMgr 的傳送容量設定為 15,這表示 PkgXferMgr 無法同時處理超過 15 個作業,將它限制為最多 15 個線程。

線程執行的時間長度

DistMgr 線程

DP 線程的目的是要建立套件傳輸管理員的作業,然後將實際的內容複製到 DP。 DP 線程會在建立 PkgXferMgr 作業之後完成,因此 DP 線程的存留期很短。 基於這種本質,大部分時候都不需要設定積極線程設定來加速內容發佈。 不要設定積極值,而是尋找 選擇正確的值 (下方) 的詳細資訊。

PkgXferMgr 線程

針對標準 DP,由於 PkgXferMgr 線程會執行傳送內容的實際工作,因此這些線程的存留期取決於套件的大小。 對於較大的套件,這些線程可能需要很長的時間,視套件大小和網路速度而定。 雖然這些線程可能需要很長的時間才能完成,但 DistMgr 線程的存留期要短很多,這表示 DistMgr 可以為 PkgXferMgr 排入大量作業佇列,在佇列中建立待處理的作業。

針對提取 DPS,PkgXferMgr 線程會通知提取 DP,要求提取 DP 下載內容。 因此,提取 DP 的 PkgXferMgr 線程存留期很短。 PkgXferMgr 會啟動另一個線程,根據設定的輪詢間隔 (執行提取 DP 輪詢) 以檢查作業的進度。 不過,這也是一項快速作業,而且這些線程的存留期也很短。

選擇正確的值

若要判斷這些設定的適當值,您必須先瞭解 Configuration Manager 階層。 讓我們考慮下列假設 Configuration Manager 環境:

  • 管理中心網站:CS1
  • 主要月臺:PS1
  • 向 PS1 回報的一般發佈點數目:200
  • 套件總數:1000

在此環境中,預設線程設定 (3x5) 表示,如果新套件需要散發到所有 200 個 DP,我們一次只會處理 5 個 DP。 一旦 DP 線程結束,接著會繁衍另一個 DP 線程,並繼續處理程式,直到處理所有 DP 為止。 此程式需要一些時間來循環處理所有 200 個 DP。

若要優化此功能,我們必須先詢問幾個問題:

  1. 您預期平均有多少套件會同時新增/更新/散發?
  2. 您在網站中有多少個IP? 月臺伺服器與這些IP之間的網路設定為何?

假設第一個問題的答案是 5,而第二個問題的答案是 200 且具有良好的網路連線能力,理論上您可以將封裝數目上限設定為 5,並將每個套件的線程數目上限設定為 200,讓 Configuration Manager 同時將最多五個套件傳送給所有 200 個 DP。 不過,這表示當負載超過平均負載時,我們最多可以建立1000個線程,也就是許多線程。 通常會有許多線程,但並非總是好,因為正在執行的工作也依賴硬體和網路組態。 線程太多有時會造成瓶頸,並使速度變慢,而不是加以改善。

設定這些設定時,請記住最重要的事項是尋找平衡。 針對上述範例,合理選項是根據硬體/網路) 將線程組態設定為 5x100 (,甚至是 5x50,這仍然可讓 Configuration Manager 針對五個不同的套件同時處理最多 100 個 DP。 使用這些設定時,可在高負載期間繁衍的線程數目上限不會超過 500 個。

注意事項

一般而言,建議線程總數不要超過 750。 這表示您可以將線程組態設定為 3x2505x15010x75 等等。

在相同的階層中,您可能會遇到將新的 DP 帶入環境中,而您需要將所有 1000 個套件散發到 DP 的情況。 在此情況下, 5x100 的線程設定不會生效,因為我們一次只能處理 5 個套件,而處理 1000 個套件需要相當長的時間。 在此案例中,您可以選擇下列其中一種:

  • 暫時將線程組態設定為 50x10 之類的專案,更適合目前的需求,但考慮到我們有200個 DP,長期來看並不是不錯的選擇。
  • 將線程組態永久設定為 20x25 之類的專案,以提供更佳的平衡,並在需要更多套件移至少數 DP 的案例中提供類似的效能,以及少數套件需要移至許多 DPS 的情況。

重要事項

沒有針對線程設定的值設定建議;它因每個環境而異,而且應該在瞭解您的環境和需求之後加以設定。 請務必記得 尋找餘額

寄件者線程設定

每個 Configuration Manager 網站 (包括管理中心網站和次要網站) 都有一個寄件者。 傳送者會管理從一個月臺到目的地月臺的網路連線,而且可以同時建立多個月臺的連線。 若要連線到月臺,傳送者會使用網站的檔案復寫路由來識別用來建立網路連線的帳戶。 寄件者也會使用此帳戶將數據寫入目的地網站的 SMS_SITE 共用。

根據預設,傳送者會使用多個並行線程將數據寫入目的地月臺。 每個並行線程都可以將不同的檔案型物件傳送到目的地月臺。 根據預設,當傳送者開始傳送物件時,它會繼續為該物件寫入數據區塊,直到傳送整個對象為止。

所有 Configuration Manager 網站都可讓您設定寄件者元件可用來同時將數據傳送至其他月台的線程數目。 此設定專屬於每個月臺,可透過選取 [發件者] 索引標籤,從 [網站] 節點下的 [網站屬性] 存取。以下是預設組態的檢視:

螢幕快照顯示 ConfigMgr 主要月臺 屬性視窗 中 [寄件者] 索引標籤上的資訊。

所有網站:此寄件者允許的同時通訊數目上限。 預設值為 5 。 這些通訊的目的地可以是不同的網站,或是相同網站的全部通訊,但受 [ 每個月臺] 中指定的最大值限制。

每個月臺:允許與任何單一目的地月臺同時通訊的數目上限。 預設值為 3

注意事項

設定與其他站台通訊時要使用的並行傳送線程總數時,傳送線程的總數應該設定為大於針對每個月臺設定所設定的線程數目。 如果傳送線程的總數等於設定為每個月臺使用的數目,且接收月臺無法使用,則可能會導致所有傳送線程在嘗試與無法使用的網站通訊時變成使用,並防止站對站對月台的通訊。

這代表什麼

[ 所有網站 ] 底下指定的值會定義寄件者可用來同時將數據傳送至其他網站的線程總數。 在 [所有網站] 的線程總數中,您可以在 [ 每個月 臺] 底下配置可用來將數據傳送至任何一個目的地月臺的線程數目上限。 根據預設,每個月臺都會設定為使用五個並行線程,其中三個可在將數據傳送至任何一個目的地月臺時使用。 當您增加此數目時,可以藉由啟用 Configuration Manager 同時傳輸更多檔案,來增加月臺之間的數據輸送量。 增加此數目也會增加月台之間的網路頻寬需求。

選擇正確的值

若要判斷這些設定的適當值,您必須先瞭解 Configuration Manager 階層。 讓我們考慮下列假設 Configuration Manager 環境:

  • 管理中心網站:CS1
  • 主要月臺:PS1
  • 主要月臺:PS2
  • 主要月臺:PS3
  • 主要月臺:PS4

在此環境中,預設寄件者線程設定將允許使用總計5個線程。 在這5個線程中,3個可用於4個目的地主要站台中的任何一個。 如果系統管理員將 3 傳送至所有這些網站,則寄件者最後可能會針對其中一個網站使用三個線程 (假設 PS1) ,而剩餘的網站只留下 2 個線程。 在其餘的 2 個線程中,傳送者可能會針對 PS2 使用 1,而 PS3 則使用所有五個允許的線程,而沒有空間可同時將數據傳送至 PS4。 此時,寄件人必須等候現有5個線程的其中一個完成,才能傳送更多數據。 一旦現有的線程完成,寄件者就可以使用另一個線程將更多數據傳送至 PS2/PS3/PS4 網站。

建議您為傳送者將通訊的每個網站保留 10 個線程。 在此情況下,CS1 網站可以與其他四個網站通訊,這表示四個網站的 每個網站為 10 ,需要將 [所有網站 ] 值設定為 40

注意事項

這是一般建議,這些值可能需要進一步調整,視網站同時傳送至其他網站所需的套件數目而定。

帶寬控件和線程

在 Configuration Manager 中,您可以設定排程,並設定遠端發佈點以及月臺檔案複寫路由的特定節流設定。 排程和節流至遠端發佈點的控件類似於標準寄件者地址的設定,但在此情況下,設定是由名為套件傳輸管理員的元件使用。

針對 月臺伺服器 - >DP) 的套件傳輸管理員元件 (,節流設定是在不在月臺伺服器上的標準發佈點屬性中設定。

針對月臺伺服器<>月臺伺服器) 的寄件者元件 (,節流設定是在 [階層配置複寫] 底下的>檔案復寫路由屬性中設定。

注意事項

時間設定是根據來自傳送網站的時區,而不是發佈點。

排程選項

若要限制數據,請選取時間週期,然後選取下列其中一個可用性設定:

  • 針對所有優先順序開啟:指定 Configuration Manager 將數據傳送至發佈點,沒有任何限制。

  • 允許中高優先順序:指定 Configuration Manager 只將中優先順序和高優先順序數據傳送至發佈點。

  • 僅允許高優先順序:指定 Configuration Manager 只將高優先順序數據傳送至發佈點。

  • 已關閉:指定 Configuration Manager 不會將任何數據傳送至發佈點。

    您可以依優先順序限制數據,或關閉所選時段的連線。

速率限制選項

這是用來設定速率限制,以控制將內容傳輸至發佈點時所使用的網路頻寬。 可以選擇下列選項:

  • 傳送至此目的地時無限制:指定 Configuration Manager 將內容傳送至發佈點,但不含速率限制。
  • 脈衝模式:指定傳送至發佈點的數據區塊大小。 您也可以指定傳送每個數據區塊之間的時間延遲。 當您必須透過低頻寬網路連線將數據傳送至發佈點時,請使用此選項。 例如,您可能會有每五秒傳送 1 KB 資料的條件約束,不論連結的速度或其在指定時間的使用量為何。
  • 限制為每小時指定的最大傳輸速率:指定此設定,讓月臺僅使用您設定的時間百分比將數據傳送至發佈點。 當您使用此選項時,Configuration Manager 並不會識別網路可用的頻寬,而是將可傳送數據的時間分割成時間配量。 然後會短時間區塊傳送數據,後面接著未傳送數據的時間區塊。 例如,如果最大速率設定為50%,Configuration Manager會傳輸數據一段時間,後面接著一段不傳送數據的相等時間。 不會管理實際的數據大小或數據區塊的大小。 相反地,只會管理數據傳送期間的時間量。

如需這些設定的詳細資訊,請參閱在 Configuration Manager 中設定內容管理

這如何影響寄件人和 PkgXferMgr 線程

為月台啟用頻寬控制時,寄件者元件會忽略月臺的發件者線程設定,而且只會針對該網站使用一個線程。 同樣地,針對 DP 啟用頻寬控制時,PkgXferMgr 會忽略線程設定,而且只會針對 DP 使用一個線程。

注意事項

即使限制 可用頻寬 (%) 設為 100%,也適用此情況。

當頻寬控件生效時, PkgXferMgr.log 會記錄下列其中一行:

調度:

~DPNAME.CONTOSO.COM 的位址目前受带寬控制,因此只允許一個連線,將傳送要求傳回集區。

脈衝模式:

~將res 新增至 DPNAME.CONTOSO.COM 目前處於脈衝模式,因此只允許一個連線。
~放棄傳送要求,因為脈衝模式中只允許一個連線。

Sender.log 會在設定頻寬節流時顯示類似的專案。