Leo Yeh's Blog

SAS Viya (125)

教學目標

初步了解 SAS Micro Analytic Service 效能調效的基本概念。

重點概念

首先當我們使用 SAS Micro Analytic Service 作為分析模型評分的 REST API 時,將會需要針對效能進行調整,此時建議按照官方文件所提供的最佳實務原則進行相關設定,主要可分為三大部份,分別為:

  1. SAS Micro Analytic Service 服務調整設定
  2. Apache Tomcat 伺服器調整設定
  3. Apache HTTP 伺服器調整設定

一開始當我們需要使用 SAS Micro Analytic Service 實現高效能的 REST API 請求回應,也就是讓每秒交易數 (Transactions Per Second,TPS) 提高,此時則應該停用事件和授權,所以我們需要啟用 SAS Micro Analytic Score 服務相關的 JVM 選項設定值,如下表示。

JVM 選項 設定值
java_option_auth -Dsas.authorization=false
java_option_auth_remote -Dsas.authorization.remote=false
java_option_eventing -Dsas.event.enabled=false

接著當我們透過 SAS Environment Manager 修改完 SAS Micro Analytic Score service 服務相關的 JVM 選項設定值之後,必須透過「/etc/init.d/sas-viya-microanalyticservice-default restart」指令重新啟動 SAS Micro Analytic Service 微服務,則 JVM 選項的設定值才會生效,基本上實測 REST API 請求回應的效能將會有所提升,請注意發出 REST API 請求還是必須透過 Access Token 進行身份驗證,否則還是會有「Full authentication is required to access this resource」的錯誤訊息。

再來針對 SAS Micro Analytic Score service 服務增加核心執行緒將會增加給定負載的輸出量,但是對於增加的每個核心執行緒,則輸出量的邊際效益將會急劇下降,因此為了獲得最佳的效能,建議將核心執行緒數設定為伺服器上的核心數。此外具有更多的核心執行緒的 SAS Micro Analytic Service 實體對於 Apache Tomcat 伺服器調整條件更具彈性,通常預設的 Apache Tomcat 設定已經足以通過 SAS Micro Analytic Service 實現高輸出量,但是我們仍然能夠調整 maxThreads 設定值提高效能,而 maxThreads 設定值主要會受 SAS Micro Analytic Service 核心執行緒數量和工作負載性質的影響。

最後我們更能夠透過 Apache HTTP 伺服器調整設定來提高效能,主要透過 Apache HTTP 伺服器多處理模組 (Multi Processing Modules,MPM) 綁定系統上的網路端口,以利調整處理請求的程序,而在預設情況下 MPM 設定為 prefork 模式對應於每個連線對應一個子程序,這不是 SAS Micro Analytic Service 效能的理想選擇,因此,建議設定為多處理模組模式,以利使每個子程序具有多個執行緒,將能夠提供出更好的平均輸出量和更小的差異,其中主要會設定 ServerLimit 和 MaxClients 參數值分別確定 Apache HTTP 伺服器執行程序的數量和每個執行程序的執行緒數,請注意增加上述參數值將會導致 Apache HTTP 伺服器使用更多記憶體,所以上述參數值建議設定不超過可用記憶體大小。

相關資源

⬅️ Go back