SAS 系統管理 (106)

教學目標

初步了解 SAS Enterprise Miner 需要多少伺服器的資源。

重點概念

首先我們到底需要多少伺服器的資源來執行 SAS Enterprise Miner,這個問題的答案取決於以下幾個關鍵點,分別為:

  1. 在任何給定時間將執行多少專案?
  2. 這些專案將會存取多少資料?
  3. 將分析多少變數?
  4. 使用者預期回應時間是多少?
  5. 是否還有其它應用程式,像是伺服器上是否還有資料庫?

接著 SAS Enterprise Miner 中的多執行緒的程式將會使用伺服上的所有 CPU,而多任務處理流程圖將使用系統上的所有 CPU,若平行程序負載過高,則系統會花費太多時間交換資料,這將會大大減少計算時間,至於會影響 SAS Enterprise Miner 伺服器大小的因素調整,主要有:

  1. 輸入變數需要更多記憶體。
  2. 分類變數在建模過程中需要更多記憶體。
  3. 訓練資料的一些建模方法主要是密集型的記憶體。

至於需要多少記憶體?主要分為客戶端和伺服器的記憶體,客戶端至少 4GB 的實體記憶體用於執行 SAS Enterprise Miner 產品,而伺服器至少需要 6 GB 的實體記憶體,以及每個同時操作使用者 2 GB 的實體記憶體,再加上中間層至少 8 GB 的實體記憶體。而當我們為伺服器調整記憶體大小之後,則必須為 SAS Enterprise Miner 應用程式分配記憶體,我們主要會使用 sasv9.cfg 檔案中的 MEMSIZE 參數指定 SAS Enterprise Miner 的記憶體分配,所謂 MEMSIZE 選項是代表我們可以在每個會話 (Session) 基礎上使用的記憶體的上限,每個會話根據需要使用記憶體,直到指定的 MEMSIZE 限制,在 Windows Server 預設情況下,MEMSIZE 參數設定為 0,這允許每個會話獲取伺服器上的所有可用的記憶體,而 MEMSIZE 參數建議為 512 MB,至於在 Linux 伺服器預設情況下,MEMSIZE 參數設定為給定值,不同版本的 Linux 會有不同的給定值。當專案執行一段時間之後,我們會根據專案的主題要求,可能需要增加為 MEMSIZE 選項指定的值,而 MEMSIZE 參數建議是記憶體大小等於可用伺服器記憶體的 80%,請注意勿將 MEMSIZE 選項設置為高值,因為若多個 SAS 會話正在執行且每個會話都佔用 MEMSIZE 分配的最大記憶體,則可能會超過某些伺服器上的實體記憶體大小,此時將會導致嚴重的 I/O 瓶頸。

再來 SAS Enterprise Miner 資料探勘專案的建模階段除了需要足夠的記憶體之外,還需要 CPU 和 I/O 資源,此時我們針對 Windows 和 Linux 伺服器的一個很好的估計是一個CPU 能夠支持 2 至 5 個平行處理的 SAS Enterprise Miner 專案,而相關聯節點的基礎過程可能比建模節點需要更多磁碟空間和記憶體,尤其在處理資料集中存在數千個專案的情況下,至於探勘的資料性質會影響 CPU 的需求,分別為:

  1. 若資料集具有大量輸入變數,則會消耗更多資源,並且伺服器將支援更少的平行處理會話。
  2. 若類別變數具有許多唯一值,則會消耗更多資源,並且伺服器將支援更少的平行處理會話。
  3. 若資料集使用相對較少的唯一值的輸入變數,則會消耗更少的資源,並且伺服器將支援更多的平行處理會話。

最後除了安裝 SAS Enterprise Miner 所需要的磁碟空間之外,我們還需要足夠的磁碟空間來存儲以下內容,分別為:

  1. 要探勘的實際資料,我們必須為來源資料分配磁碟空間,無論是 SAS 資料集或資料庫中的資料表。
  2. 在伺服器上進行處理時產生的資料,每個專案估計分配分析資料量的 4 至 7 倍磁碟空間。
  3. 資料分區和基於記憶推理節點所建立的工作檔案與執行期間的輸入資料檔案一樣大,若我們的資料分析需要定期使用這些節點,則需相對應地規劃分配磁碟空間。

此外若要使磁碟獲得最佳效能,則需要平衡伺服器上的 I/O 系統,我們主要會將SASWORK 暫存資料夾的預設位置更改為作業系統用於交換文件的檔案系統以外的檔案系統,以及將某些建模節點會在 SASWORK 目錄中創建了大量臨時檔案的 I/O 活動資料夾放在單獨的檔案系統上,盡可能使用獨立的 I/O系統路徑,同時確保我們的 SASWORK 資料夾至少是資料集的 1.5 至 2 倍磁碟空間。

相關資源