略過巡覽連結首頁 > 產品與服務 > 技術分享

技術分享

[技術分享]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

 

回上一頁