Leo Yeh's Blog

SAS Viya (71)

教學目標

初步了解 SAS Cloud Analytic Services 的基本概念。

重點概念

首先 SAS 雲分析服務 (Cloud Analytic Services, CAS) 主要可以透過以 SAS 為基礎的雲原生環境提供資料管理和分析,我們簡稱 CAS,而 CAS 主要適用於企業內部環境部署和公有雲端環境部署,CAS 能夠使用不同的硬體和軟體搭配組合,在單個機器上或跨多個機器的分散式伺服器上進行資料管理和分析。請注意伺服器的設計原則之一主要是處理大問題,並且充分利用現代叢集運算硬體的可擴展性,為了達到這個原則,伺服器中的資料主要是以區塊為單位進行管理,無論何時需要,伺服器皆會將區塊暫存在磁碟上,所以讓伺服器高效的管理記憶體,處理大量資料,並且保持對於請求的回應。

接著 CAS 會分析記憶體中的資料表,然而記憶體使用的主要問題在於記憶體中的資料表,而伺服器的目標是有效地使用記憶體,並且為可用的實體記憶體量和資料量提供最佳效能分析。為了實現這一目標,伺服器的記憶體主要會對應儲存在磁碟上基於 SASHDAT 格式的檔案,對於其它檔案類型和資料來源,伺服器主要使用與 CAS_DISK_CACHE 環境變數關聯的目錄將區塊暫存在檔案中,所以若透過記憶體對應將能夠避免分頁至系統交換空間、處理超過實體記體容量的資料以及更有效率的使用記憶體。

再來 CAS 的 Session 主要會用於使客戶端能夠與伺服器請求操作進行連線,當建立 Session 時,伺服器首先驗證我們的身份,若我們的身份已成功通過驗證,則伺服器會啟動 Session 控制器的程序,在分散式系統中,伺服器還會向叢集中的每台機器發送訊息,以利為客戶端完成啟動 Session 的過程。至於要如何監控 CAS 中 Session 的使用情況我們主要會透過「CAS Server Monitor」網站界面查看使用者所有建立的 Session 資訊,請注意這方式僅能夠查看單一使用者所有建立的 Session 資訊,若要查看所有人更詳細的 Session 資訊,則我們必須透過「gridmon.sh」工具指令即時監控所有人當下使用 Session 更詳細的資訊,主要會包括每個 Session 是由哪個使用者所建立,使用多少 CPU 和記憶體,並且顯示執行時間有多久,以及會顯示使用的 CAS 功能指令是哪些,像是 tableInfo、groupBy、isAuthoriz、mdSummary、summary、…。

即時監控 CAS 的 Session 使用資訊

1
2
$ sudo su sas
$ /opt/sas/viya/home/SASFoundation/utilities/bin/gridmon.sh

錄製監控 CAS 的 Session 使用資訊

1
2
$ sudo su sas
$ /opt/sas/viya/home/SASFoundation/utilities/bin/gridmon.sh -record /tmp/cas_session_output

最後當我們透過 SAS Visual Analytics on SAS Viya 建立或編輯報表時,報表中每個物件皆會建立一個 Session,特別是當我們建立儀表版時,一張儀表板中會有很多元件和聚合運算的指標值,所以將會建立很多個 Session,至於報表中有多個頁籤,不論顯示或隱藏僅有在開啟頁籤的當下才會針對頁籤中的物件建立 Session,請注意當完成 SAS Visual Analytics on SAS Viya 建立或編輯報表之後,必須要登出使用者平台才會自動終止報表已經建立的相關 Session,否則 Session 會被佔用導致 CAS 負載量過大。此外當我們透過 SAS Viya 平台中的 SAS Report Viewer 讀取報表時,雖然建立 Session 的方式是一樣的,但是我們僅需要在看完報表之後,按下右上方的「關閉」鈕就能夠終止報表已經建立的相關 Session。

相關資源

⬅️ Go back