共用方式為


瞭解啟用和提交篩選

本主題提供系統管理員可新增至叢集的自定義作業篩選器類型概觀,以及 HPC 作業排程器服務如何根據這些篩選的傳回值來處理作業。

作業提交和作業啟用篩選器是自定義應用程式,可為叢集上的作業提供額外的檢查和控制。 例如,提交篩選條件可以根據您選擇的信息檢查作業屬性,也可以變更作業屬性值。 啟用篩選條件可以在將資源配置給作業之前,先檢查授權可用性等因素。 根據篩選的傳回值,HPC 作業排程器服務會在作業上採取適當的動作。 若要協助判斷您要強制執行的排程原則是否需要自訂篩選,請參閱 在 Windows HPC Server 中使用作業提交或作業啟用篩選

本主題描述啟用和提交篩選,以及 HPC 作業排程器服務如何解譯篩選條件中的傳回值。 如需安裝和設定篩選的資訊,請參閱 Microsoft HPC Pack中的 安裝提交和啟用篩選。

在本主題中:

自定義篩選執行時

當作業提交至叢集時,HPC 作業排程器服務可以執行自定義篩選器(提交篩選條件),或作業即將取得叢集資源時(啟用篩選器)。

提交篩選器會在提交作業后立即執行,然後才對作業範本進行檢查(提交篩選條件可以變更作業屬性,包括指派的工作範本)。 如果作業通過提交篩選,則會驗證使用者認證,然後套用作業範本預設值和值條件約束。 如需詳細資訊,請參閱 瞭解啟用和提交篩選 [說明連結?]

啟用篩選器會在將候選資源配置給佇列或執行中作業時執行(作業的候選資源是以作業和工作屬性和排程原則為基礎)。 啟用篩選器可以判斷是否應該在這些資源上啟動作業,或是否應該保留作業的資源或釋放。 因為每次將資源配置給作業時,啟用篩選都會執行,因此啟用篩選條件可能會針對相同的作業執行多次。 例如,啟動篩選器可以在作業即將啟動時執行,然後再次執行,因為新的資源即將新增至作業(動態成長)。

全叢集和作業範本特定篩選

自定義篩選可以在整個叢集層級定義,而且會在每個作業上執行。 全叢集篩選會實作為可執行的應用程式或腳本。 從 HPC Pack 2008 R2 的 Service Pack 2 開始,自定義篩選也可以在作業範本層級定義。 這些篩選只會在與相關聯作業範本一起提交的作業上執行。 範本層級篩選可讓您在特定類型的作業上執行特定篩選,並視需要讓您執行一系列篩選。

注意

作業範本層級篩選必須定義為 DLL,並實作 IActivationFilterISubmissionFilter 介面。

您可以將整個叢集和作業範本層級篩選新增至叢集。 提交作業或準備好啟用時,任何作業範本篩選都會在全叢集篩選之前執行。

作業提交篩選及其傳回值

HPC 作業排程器服務可以在每次提交作業時執行作業提交篩選。 篩選條件可以檢查作業屬性,以判斷作業是否應該新增至佇列。

提交篩選條件會剖析作業描述 XML(指定作業的詞彙),以檢查您想要不允許或限制的選項,或無法包含必要選項。 提交篩選也可以藉由修改作業 XML 檔案來變更作業屬性值。 無法變更工作屬性值。

根據作業提交篩選的傳回值,HPC 作業排程器服務會依照下表所述處理作業。

結束代碼 作業排程器動作
0 作業會新增至佇列 as-is。
1 篩選已修改一或多個作業屬性,並將作業新增至佇列。
任何其他結束代碼 作業標示為 失敗,並顯示提交篩選器失敗作業的錯誤訊息。
篩選逾時 作業標示為 失敗,並顯示提交篩選逾時的錯誤訊息。

默認逾時為15秒。 您可以在 [作業排程器組態] 對話框中修改設定。
找不到篩選條件 作業標示為 失敗,並顯示找不到篩選的錯誤訊息。

注意

如果您已指定提交篩選鏈結,作業會依列出的順序執行每個篩選,直到它成功通過所有篩選為止。 結束代碼為 0 時,作業會傳遞至下一個篩選。 結束代碼為 1 時,修改的工作會傳遞至下一個篩選。 如果作業在鏈結中的任何時間點失敗,則會視需要再次呼叫已在作業上執行的所有提交篩選,以允許篩選條件還原動作。

作業啟用篩選及其傳回值

當候選資源即將配置給佇列或執行中作業時,HPC 作業排程器服務可以執行啟用篩選。 作業啟用篩選條件可以檢查作業,以取得在啟用時會導致作業失敗的因素,例如無法取得授權或超過提交使用者的使用時間。

啟用篩選條件會剖析作業描述 XML(指定作業的詞彙),並可以檢查作業屬性和其他數據源,以判斷作業是否可以使用資源。 其他參數會傳遞至篩選,以提供資訊,例如目前排程階段期間可用的候選資源數目、佇列中作業的位置,以及叢集上是否啟用回填。 請檢查這些參數 IActivationFilter 介面 public ActivationFilterResponse FilterActivation(Stream jobXml, int schedulerPass, int jobIndex, bool backfill, int resourceCount)。 建立篩選的開發人員可以使用這些參數來協助微調篩選行為。

根據啟用篩選條件的篩選傳回值,HPC 作業排程器服務會啟動作業、封鎖佇列,直到作業可以啟動、保留作業的資源,而不封鎖佇列,或將作業擱置。 保留特定作業的時間量可以使用 保留直到作業屬性 來設定。 如果作業處於保留狀態,且未針對該作業指定任何 保留直到 值,則工作會保留 預設保留期間 叢集設定所指定的秒數。 預設保留期間 的有效值為 60-604800(介於一分鐘到一周之間)。 默認值為900秒(15分鐘)。

重要

作業執行之後,會清除 Hold Until 屬性。

注意

啟用篩選和回填:作業只能在具有啟用篩選傳回值為0的回填視窗中執行。

根據作業啟用篩選的傳回值(結束代碼),HPC 作業排程器服務將會處理作業,如下表所述。

結束代碼 已排入佇列的作業 執行中作業
0 啟動作業。

作業會在候選資源上啟動。
成長工作。

候選資源會新增至執行中作業。
1 請勿啟動作業、封鎖佇列。

作業未啟動,且會保留在佇列中。 在作業通過或取消之前,不會啟動其他作業或相同或較低的優先順序。 篩選條件會定期重新評估作業,直到作業通過,或直到作業取消為止。
不要成長工作。

候選資源不會新增至執行中的作業。 佇列不會遭到封鎖,而且資源可用於其他作業。
2 請勿啟動作業、保留資源,並繼續排程其他作業。

作業未啟動,但候選資源會根據排程模式保留給作業:在佇列中,最多保留作業的最大資源;在 [平衡] 中,會保留最小資源。 其他工作可以在其他資源上啟動。 篩選條件會定期重新評估作業,直到作業通過為止。
定義。

篩選不應該傳回執行作業的這個結束代碼。
3 保留作業、釋放資源,並繼續排程其他作業。

作業會保留到 保留直到作業屬性所指定的日期和時間 為止。 保留期間之後,篩選程式會重新評估作業。

如果篩選條件傳回結束代碼 3,且未針對該作業指定 保留直到 值,則會保留作業所指定時間量 預設保留期間 叢集設定。
定義。

篩選不應該傳回執行作業的這個結束代碼。
4 作業失敗。

作業標示為 失敗,並顯示啟用篩選條件失敗作業的錯誤訊息。
定義。

篩選不應該傳回執行作業的這個結束代碼。
任何其他結束代碼 定義。 但會視為 2 的值相同。 定義。

篩選不應該傳回執行作業的這個結束代碼。
篩選逾時 與結束代碼 2 相同。

默認逾時為15秒。 您可以在 [作業排程器組態] 對話框中修改設定。
定義。
找不到篩選條件 與結束代碼 2 相同。 定義。

注意

如果您已指定啟用篩選鏈結,只要作業以結束代碼 0 傳遞,每個篩選就會依列出的順序進行評估。 如果篩選傳回非零結束代碼,該值會傳遞至 HPC 作業排程器,而且會再次呼叫已在作業上執行的任何啟用篩選,以在必要時允許篩選條件還原動作。 例如,檢查可用授權的啟用篩選器可能包含呼叫 revert 函式時釋放授權的程式代碼。

其他參考