Leo Yeh's Blog

SAS 系統管理 (86)

教學目標

初步了解 SAS 9 平台中有關稽核資料表的基本概念。

重點概念

首先在 SAS 9.4 平台中主要是以 PostgreSQL 為預設的系統資料庫,其中有個 SharedServices 資料庫會隨著使用者的登入次數將會持續成長,接著可能會發現以下症狀,分別為:

  1. SASServer1_1 定期停止。
  2. SASServer1_1 無法啟動。
  3. SASServer1_1 自動重新啟動。
  4. SASServer1_1 啟動時間越來越長。
  5. SASServer1_1 使用異常大量的CPU。

此時我們能夠透過官方腳本指令檢查 SharedServices 資料庫中的 sas_audit 稽核相關資料表是否大於 SASServer1_1 的 JVM 中的堆積記憶體大小二分之一,預設為 2GB。

接著若是發生 SharedServices 資料庫中的 sas_audit 稽核相關資料表大於 SASServer1_1 的 JVM 中的 Heap 記憶體大小二分之一,則我們能夠透過官方腳本指令進行刪除 sas_audit 稽核相關資料表中的記錄,以及透過 -Xmx 和 -Xms 調大 SASServer1_1 的 JVM 中的堆積記憶體大小。

再來主要問題原因則是在於當 SASServer1_1 初始化時,將會讀取 SAS_AUDIT 和 SAS_AUDIT_ENTRY 至記憶體中,所以當稽核相關資料表中的記錄增加時,其可能將會造成 SASServer1_1 的 JVM 無法處理和難以管理的大小,此時就會發生堆積記憶體溢出的錯誤訊息。 此外在 Windows Server 作業系統平台中建立基本工作排程定期執行官方腳本指令刪除 sas_audit 稽核相關資料表中的記錄,以利確保 SASServer1_1 正常運作。

最後我們能夠透過 SAS 平台內建的 pgAdmin 工具讀取 sas_audit 稽核相關資料表的內容,並且分析目前使用的情況,像是透過「select user_id from sas_audit where timestamp_dttm>=’2018-05-20 15:15:00’ and timestamp_dttm<’2018-05-20 15:16:00’」取得 2018 年 5 月 20 日下午三點十五分這一秒同時使用在線人數,也就是所謂 Concurrent User,以利後續作為 SAS 平台效能優化的參考資訊。

相關資源

⬅️ Go back