[技術分享]NonStop Pathway調教技術分析

作者/馬先讓

作者簡歷 作者擁有26年IT服務資歷,現職凌群電腦NSK服務總處副總工程師,主要負責HPE NonStop證券、期貨、銀行客戶交易系統維運服務,專長為HPE NonStop系統整合。 前言 本文章將針對HPE NonStop Pathway系統環境效能分析調校技術做完整的整理。 PATHWAY 環境效能分析 PATHWAY環境效能主要是針對TCP、TERM和SERVER效能分析。 一、PATHWAY架構

《圖一》
PATHWAY是NonStop系統針對Client-Server架構設計的子系統,user透過PATHCOM管理PATHWAY。 有兩種路徑傳送至SERVER端處理,一種是TCP(Terminal Control Process),由SCREEN COBOL寫的終端requester code;另一種是由user code寫pathsend直接送到SERVER端處理。 PATHSEND程式主要是透過系統LINKMON process傳送至SERVER端,每顆CPU只有一支LINKMON process ($ZLnn)。 二、TCP分析說明

《圖二》
A.TERMPOOL:為在TCP和其控制下的終端之間的資料傳輸(在兩個方向上)保存I/O緩衝區。 B.TERMBUF:設定終端輸出最大的緩衝區。 C.SERVERPOOL:為TCP和發送請求的伺服器之間的資料傳輸(在兩個方向上)保存I/O緩衝區。 D.CODEAREALEN:從POBJCOD讀取程式碼放到記憶體,這就像一個緩存區,若空間不足會造成終端畫面切換速度變慢。 要分析TCP 必須先將TCP的STATS設成ON。 指令:CONTROL TCP STATS ON 分析TCP: 指令:STATS TCP

《圖三》
若TERMPOOL或SERVERPOOL的MAX ALLOC值接近它們的SIZE,就要放大。

《圖四》
若CODE的MAX ALLOC值接近SIZE,就要放大CODEAREALEN。

《圖五》
A.從TERMPOOL,SERVERPOOL,MEMMAN(CODEAREALEN)的 %WAIT值也可以判斷它們設的值是否足夠,%WAIT應為0。 B.LINK/DELINK和效能無太大關係可以忽略不看。 C.CHECKPOINT是TCP primary process 和它的backup process做checkpoint檢查,若它的%WAIT有值,通常是系統CPU 資源不足。 三、TERM分析說明

《圖六》
A.DISPLAY是指DATA從TCP到終端機。 B.ACCEPT是指DATA從終端機到TCP。 C.TERMBUF必須足夠才會讓畫面流暢,如上例DISPLAY 783/261=3,每CALL一次DISPLAY 要3個I/O,表示TERMBUF不足,要放大。 指令:ALTER TCP1, TERMBUF 4096 四、SERVER分析說明 SERVER連結的策略乃是決定於Server class之以下四個參數: -MAXSERVERS :一個Server class裡可有的Server process總數。 -NUMSTATIC :Static server的個數。 -MAXLINKS :一個單一Server Process最多可建立多少個Link。 -LINKDEPTH :一個單一Server Process 與單一TCP之間最多可建立多少Link(即一個TCP最多可OPEN同一個Server process多少次)。

《圖七》
例如:我們設定Server Class “SVR-A”之參數如下: MAXSERVER = 3 NUMSTATIC = 1 MAXLINKS = 2 LINKDEPTH = 1 當TCP-1提出Link要求時PATHMON會將第一個Server執行起來($SVA1),而後通知TCP-1與$SVA1 Link,TCP-1才會open $SVA1,Request 結束後並不close,因為$SVA1是Static Server。接著TCP-2提出Link要求時,因為Server process的Max Links為2所以PATHMON可以指定$SVA1繼續service此Request,當TCP-2再次提出Request時此時$SVA1的Link已滿,PATHMON會再執行$SVA2起來service,TCP-2才接著open $SVA2,當TCP-2再提出第三次Request時,雖然$SVA2僅有一個Link,但因為Link Depth為1,故TCP-2不可再與$SVA2建立Link,PATHMON將會啟動$SVA3來service,而後TCP-2即open $SVA3,在一段時間(delete delay time)之內$SVA2與$SVA3若沒有接受新的Request,PATHMON將對TCP發出delink(TCP close server process)的要求,在delink完成之後,PATHMON即將Server $SVA2及$SVA3停掉。 連結到SERVER有兩種路徑,一種透過PATHSEND的寫法,它走LINKMON,另一種是透過TCP

《圖八》
分析SERVER效能的方式為: STATS SERVER, FREQTABLEA 若是透過TCP的SERVER,結果如下:

《圖九》
主要是要看QUEUE INFO: 它的REQ CNT最好為0或是個位數,若數值太高,表示這個SERVER發生QUEUE的次數太高.透過TCP的SERVER可以看到該SERVER處理的時間(AVG RESP,MAX RESP,MIN RESP) 若是透過PATHSEND方式到SERVER,它的結果如下:要確認每個CPU上的LINKMON的QUEUE INFO是否為個位數,若不是就要做調整SERVER的參數

《圖十》
當發現有重要交易SERVER 的QUEUE INFO 的REQ CNT的數值太高,便需針對該SERVER的環境設定做分析與調整,方式如下: A.確認該SERVER的整個流程,是否有再CALL其他SERVER。 B.確認該SERVER的LINK數是否有用滿,若有,需要再增加MAXSERVERS和NUMSTATIC。 指令:STATUS SERVER, DETAIL C.若不想該SERVER在LINK QUEUE內等太久,需降低MAXLINKS(假設LINKDEPTH是1的話) 。 注意:MAXLNKS最大值為程式內的TABLE OCCURS值,不可以超過。 D.提高該SERVER的PRIORITY。 E.另再透過MEASURE分析該SERVER存取相關檔案的次數,和AP人員討論是否合理。 最後每天都要去檢查交易PATHWAY的PWLOG,看看是否有SERVER發生LINK不足的情況(ERROR 201),若有就要先行放大SERVER內的參數並監控到沒再發生問題。 檢查方式:PATHCOM $FUPW; STATUS PATHMON–確認PWLOG檔案位置 FUP COPY PWLOG,,SHARE,FOLD -每家的檔案名不見得相同 五、PATHWAY Priority配置 PATHWAY元件的priority也是影響效能的主因之一 Priority建議如下: PATHMON(180) > SERVER (170) > TCP (160) 若有部份SERVER要更高的Priority,也可以高於PATHMON。 若SERVER A會去CALL SERVER B;SERVER B會再CALL SERVER C,最後再把結果傳回SERVER A.此時3個SERVER的Priority設定如下: SERVER C > SERVER B > SERVER A 若SERVER A > SERVER B > SERVER C ,容易發生SERVER A QUEUE。 參考資料
  • Performance Analysis and Tuning for NonStop Systems
  • TS/MP System Management Manual