教學目標

初步了解 SAS 系統稽核記錄檔導致效能問題的基本概念。

重點概念

首先 SAS 平台預設將會啟動稽核的功能,主要是當使用者操作 SAS 網站應用程式時將操作記錄寫入至 Web Infrastructure Platform 資料伺服器中的 SharedServices 資料庫中的 SAS Audit 資料表。

接著隨著時間增加導致 SAS Audit 資料表到達無法進行管理的大小時,將可能會對 SAS 網站應用程式伺服器中有關 Java 虛擬機器 (JVM) 的效能和可用性產生負面影響,發生的情況分別為:

  1. SAS 網站應用程式伺服器可能會定期停止回應或可能會定期失敗。
  2. SAS 網站應用程式伺服器無法正常啟動。
  3. SAS 網站應用程式伺服器自動重新啟動。
  4. SAS 網站應用程式伺服器啟動時間越來越長。
  5. SAS 網站應用程式使用異常大量的 CPU。

若有上述情況發生將會導致我們無法正常使用 SAS 網站應用程式,主要原因為當 SASServer1_1 網站應用程式初始化時,會將 SAS_AUDIT 和 SAS_AUDIT_ENTRY 相關資料表載入至記憶體中,因此當這些資料表記錄增加時,就有可能會達到 SASServer1_1 的 JVM 無法處理的管理大小,此時當應用程式嘗試讀取這些資料表時,則 JVM 將會導致失敗,至於資料表的大小何時達到問題點主要取決於機器和 JVM 的規格。此外若我們的系在沒有重新啟動的情況下執行兩週,那麼我們的 SAS_AUDIT 資料表將會達到難以管理的大小。

再來要如何解決此問題,主要會先透過腳本刪除舊的稽核記錄,並且關閉 SAS 網站應用程式伺服器調整 JVM 中的最大 Heap 大小,我們主要是修改「D:SASConfigLev1WebWebAppServerSASServerX_mconfwrapper.conf」的設定檔,當我們完成上述設定之後,建議也先清除「D:SASConfigLev1WebWebAppServerSASServerX_mlogs」記錄檔和「D:SASConfigLev1WebWebAppServerSASServerX_mtmp」暫存檔,當確認設定和刪除完成就能夠重新啟動 SAS 網站應用程式伺服器。

最後我們若能夠定義清除 SAS Audit 資料表中的記錄,以利使得這些資料表保持能夠管理的大小,至於如何進行管理請參考官方文件。但是若業務單位需要有稽核的相關記錄,則能夠增加 JVM 中的 Heap 大小降低問題發生的機率,於如何進行設定請參考官方文件

總結只要是系統運作一段時間皆會有效能的問題,此時我們需要透過記錄來追蹤可能的原因,但往往也因為記錄而導致效能問題,尤其在現今非常注重資訊安全的大環境,身份授權和稽核記錄皆會是必要的管控機制,也因此需要透過設定與效能之間達到平衡,至於要如何設定將會是一門深奧學問。

相關資源