Leo Yeh's Blog

SAS Viya (82)

教學目標

初步了解 SAS Viya 平台 CAS 資源管理的基本概念。

重點概念

首先在 SAS Viya 中將能夠透過 CAS 資源管理的功能重新分配 CAS 連線資料處理使用的 CPU 資源,現在主要能夠使用優先等級策略為已經加載的資料表定義磁碟配額,並且將 CPU 容量分配給不同的使用者群組,最多五個群組,至於此功能主要利用 Linux 作業系統中 cgroups 的內核功能,因此若我們想要使用 CAS 資源管理的功能,則必須在 CAS 機器上安裝 cgroups 內核功能。

接著我們主要使用 cas.MEMORYSIZE 伺服器設定選項將 CAS 機器節點上的記憶體使用量限制為特定數量的記憶體,以及 cas.CPUSHARES 伺服器設定選項將 CAS 機器節點上的 CPU 使用量限制為總 CPU 容量的一部分。此外我們更會透過使用者群組關聯兩種類型的政策,分別為:

  1. 全域 CASLIBS 政策 (globalCaslibs) :每個 CAS 伺服器僅有一個政策主要用於全域 CASLIBS 上儲存暫存空間的配額。
  2. 優先等級政策 (CAS-server-name-priority-n):每個 CAS 伺服器有一備五個政策主要用於個人 CASLIB 上儲存暫存空間的配額,並且將能夠對應至使用者群組的 CAS 連線會話的 CPU 消耗限制。

其中政策主要是當 SAS Viya 平台啟動時,CAS 伺服器將會讀取 Consul 中定義的政策,並且動態建立 cgroup 設定以利限制使用的資源,請注意資源管理政策僅在 SAS Viya 完全部署中進行工作,因為需要 SAS 設定伺服器來儲存相關設定值,而當停止 CAS 伺服器時將會刪除政策中相關的 cgroup 設定。

再來管理員將能夠根據不同的使用者群組以優先級政策分配使用者配額,請注意 SAS 管理員必須通過 SAS Viya 命令行界面 (CLI) 在 Consul 儲存中定義政策,並且在 Environment Manager 中建立對應的自定義群組,再將最終使用者與資源管理群組進行相關聯,像是我們能夠建立三個優先級政策,其中一個用於報表使用者、一個用於資料處理使用者,一個用於數據科學家,其 CPU 重新分配為 20%、30% 和 50%,並且定義不同的配額以利限制用於每個群組的全域 CASLIBS,連線 SESSION 或載入 HDFS 資料表,以利限制報表使用者使用空間量,以及避免資料科學家瘋狂執行單個,但是非常繁重的機器學習和高級分析操作,其將會佔用 CAS 叢集中的所有 CPU 資源。

最後若我們需要使用 CAS 資源管理政策,則必須在「casconfig_usermods.lua file」設定檔中設定環境變數「 env.CAS_ENABLE_CONSUL_RESOURCE_MANAGEMENT」設為「 ‘true’」,請注意設定值大小寫有差,並且我們必須具有 CAS 超級使用者權限才能夠建立和管理資源管理策略。此外政策限制適用於分散式 CAS 伺服器的每台機器,政策主要從 JSON 範本中建立,以及透過 SAS Viya 命令界面進行管理,預設情況為關閉,所以需要手動啟動,而 CAS 伺服器主要會將政策儲存為 SAS 設定伺服器 (Consul) 中的鍵值配對 (Key Value Pairs),至於 CAS 資源管理政策如何運作,請參考 SAS Viya 官方文件

相關資源

⬅️ Go back