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

技術分享

[技術分享]NonStop Server系統效能技術分析(上)

作者/馬先讓
作者簡歷

作者擁有26年IT服務資歷,現職凌群電腦NSK服務總處副總工程師,主要負責HPE NonStop 證券、期貨、銀行客戶交易系統維運服務,專長為HPE NonStop系統整合。

前言

HPE NonStop Server系統效能分析包含了很多面向,本文章將針對HPE NonStop Server系統效能分析技術做完整的整理,交易系統效能分析是希望能讓每顆CPU負載平均,每對DISK也是負載平均,SERVER response time最短,此技術文件主要包含DISK硬體環境設定、檔案屬性、系統效能分析-MEASURE、PATHWAY 環境效能分析等分析的方式做說明。此篇文章先說明DISK硬體環境設定、檔案優化。

DISK硬體環境設定

DISK上的參數會影響檔案存取速度,使用SCF INFO DISK $vol, CONFIG檢查DISK設定的參數,以下為建議參數的修改,只有SUPER Group才能調整。

一、FastBulkWrite: ON
  • 針對Unstructured file使用Bulk writes有較高throughput,風險是當DISK的Primary CPU fail,unstructured file可能會data loss。


  • 修改方式: SCF ALTER DISK $vol, FASTBULKWRITE ON

二、FSTCaching: ON
  • 該參數是將DISK free space table 放到記憶體中,可增加DISK效能。


  • 修改方式: SCF ALTER DISK $vol, FSTCACHING ON

三、MaxLocksPerOCB: 先設50000
  • 這個參數是設定外部一個transaction最大可lock的records,系統預設是5000,最大1000000(最新版本),若外部程式使用到這個顆disk內的檔案做transaction,該值不足時,程式會出現error 35,故建議先設到50000。


  • 修改方式: SCF ALTER DISK $vol, MaxLocksPerOCB 50000。


  • 注意事項: 該參數可以線上放大,但要調小必須把DISK STOP後才能調整。

四、MaxLocksPerTCB: 先設50000
  • 這個參數是設定一個transaction最大可lock的records和files,系統預設是5000,最大1000000(最新版本),若外部程式使用到這個顆disk內的檔案做transactions,該值不足時,程式會出現error 35,故建議先設到50000。


  • 修改方式: SCF ALTER DISK $vol, MaxLocksPerTCB 50000


  • 注意事項: 該參數可以線上放大,但要調小必須把DISK STOP才能調整。

五、NonAuditedInsert: ON
  • 提昇NonAuditfile Insert 效能。


  • 修改方式: SCF ALTER DISK $vol, Nonauditedinsert ON

六、NumDiskProcesses: 最多設8
  • 設定該顆DISK的Processes 數目,當該顆DISK Processes busy過高時,可放大該參數值,增加disk process處理速度,但當DISK Process busy太高時,應該先將DISK內的檔案負載分散到別顆DISK上,盡量不要讓單顆DISK Process太忙。


  • 修改方式: SCF ALTER DISK $vol, Numdiskprocesses n


  • 注意事項: 該參數可以線上放大,但要調小必須把DISK STOP才能調整。

七、WriteCache: ENABLED
  • 該參數是讓HDD DISK能使用到該DISK硬體內的CACHE,能明顯改善DISK寫入速度,SSD DISK此參數無任何作用。


  • 修改方式: SCF ALTER DISK $vol, Writecache Enabled

八、DISK CACHE: 足夠且適當
  • DISK上的檔案讀取是用BLOCK方式,所以檔案內有個參數是BLOCK,該值有(512,1024,2048,4096,32768),當程式讀取檔案時,它就會先將資料載入DISK CACHE內,足夠且適當的DISK CACHE能增加檔案存取速度。


  • 檢查方式: SCF STATS DISK $SYSTEM
    3-> STATS DISK $SYSTEM


  • 說明:

    (1)Requested是使用者下指令要修改的值,Allocated是實際設定上去的數量,Blocks In Use是實際使用到的數量,Blocks Dirty是該DISK所Allocated的block目前為dirty的百分比(cache中的block已被改變,但尚未回寫DISK),Read Hits是檔案資料在CACHE中命中率的百分比,最好在95%以上。

    (2)每顆DISK最大設定CACHE segment值為1.5GB。

    (3)設定的值要為偶數。

    (4)如上例(512,1024,2048開的太大,都未使用滿,可減少。4096開300,000,使用滿,可以再放大,四塊CACHE的總和不能超過1.5G)。

    (5)每次調整CACHE時,CACHE內的資料會先回寫回DISK,再重新依新的設定值配置,若CACHE值設定很大時,資料回寫DISK時會需要一點時間,此時會造成AP要存取該顆DISK資料時會等待CACHE重新配置好才能運作,所以不建議在交易時段調整CACHE。調整DISK CACHE方式:
    ALTER DISK $SYSTEM,CACHE((512,512),(1K,512),(2K,512),(4K,320000))

九、DISK PATH: 檢查DISK PATH 確認每對DISK都分散在兩個STORAGE CLIM上。

檢查方式: SCF STATUS DISK $*-*

確認每對DISK的ACTIVE的PATH要為(PRIMARY和MIRROR)或(BACKUP和MIRROR-BACKUP)才是分散在兩個STORAGE CLIM上,
調整DISK PATH方式: SWITCH DISK $SYSTEM-P(-B、-M、-MB)
調整DISK CPU方式: PRIMARY DISK $SYSTEM, n
檔案優化

此章節說明檔案優化的參數與如何快速檢查未優化的檔案。

一、檔案與效能有關的屬性

以下為跟檔案存取效能有關的檔案屬性:

(1)EXT: 建議若檔案資料量很大時,EXT要放大(如:50000起)
說明:檔案EXT愈大,檔案資料連續磁區更大(要注意DISKBiggest空間是否足夠,若不足無法使檔案allocate extent時會出現error 43。

(2)BLOCK: 建議4096,同時放大DISK 4096的CACHE
說明: 檔案BLOCK屬性分為512,1024,2048,4096,每次讀檔都是以BLOCK方式讀取,設成4096,可以減少對DISK多次I/O。

(3)BUFFERED: Non-audited file加BUFFERED
  • 說明: 檔案屬性BUFFERED是指DP2存取檔案時會先存放在DISK CACHE,以加速檔案存取效能,若檔案是AUDITED FILE時系統預設是BUFFERED,針對NON-AUDITED FILE系統預設是沒有加BUFFERED,將NON-AUDITED FILE加上BUFFERED,可明顯加速檔案的存取速度,但若系統發生CPU DOWN時,Primary DISK在該CPU上的加了BUFFERED的NON-AUDITED就會發生DATA LOSS,所以若NON-AUDITED FILE要加BUFFERED,必須先確認該檔案的file-open option-SYNC-DEPTH必須設定非0的值,SYNC-DEPTH的值表示該檔案每異動N筆資料就即時同步到它的BACKUP DISK,假設Sync-Depth設定為1時,每一筆異動都會checkpoint到backup DP2,當Primary DP2所在CPU發生異常時,會由file system進行retry,避免data lost。


  • 檢查Non-Audited file是否有加SYNC-DEPTH的指令如下:
    FUP LISTOPENS FILENAME
    其中SD欄位有>0的值就代表有設SYNC-DEPTH,以下的範例$CLASS1.BENSON2.P30有設SYNC-DEPTH 1,$CLASS1.CST14.DBFILE 沒加SYNC-DEPTH


(4)Key-Sequenced file INDEX-LEVEL: 建議不超過3
  • 說明: Key-Sequenced file結構如下圖是用INDEX來擴展DATA


  • 當檔案INDEX-LEVEL愈多層時,存取檔案的速度就會變慢,建議INDEX-LEVEL不超過3。


  • 檢查檔案INDEX-LEVEL的指令: FUP INFO FILE,DETAIL


  • 降低檔案INDEX-LEVEL的方式如下:
    A.檢查檔案BLOCK是否已設到4096
    B.交易離峰時間對檔案做RELOAD
     指令: FUP RELOAD FILE,SLACK 0
     檢查RELOAD完成的比例指令: FUP STATUS FILE,DETAIL


  • 說明

    1).RELOAD的動作不用停AP。

    2).SLACK 的值是設定要預留DATA LEVEL的空間%,0代表不留空間,若該檔案大多數只會READ不會增加RECORD,該值就設0,若該檔案的特性是會有資料INSERT,就建議該值為20。若SLACK設太多,容易增加檔案的INDEX-LEVEL。

    3).將檔案的歷史資料轉檔至歷史檔案內,並重做LOAD。說明:檔案若要做LOAD,必須不能被AP OPEN(離線).範例如下:
    volume $data.fudata
    set like $data.FUDATA.FUHIVE
    set no audit
    SET ALTKEY ( "A1", FILE 0, KEYOFF 25, KEYLEN 25 )
    SET ALTKEY ( "A2", FILE 1, KEYOFF 50, KEYLEN 28 )
    SET ALTKEY ( "A3", FILE 2, KEYOFF 78, KEYLEN 25 )

    set altfile (0,$DATA.FUDATA.FUHIVE0)
    set altfile (1,$DATA.FUDATA.FUHIVE1)
    set altfile (2,$DATA.FUDATA.FUHIVE2)

    create AFUHIVE
    load FUHIVE,AFUHIVE (,SLACK 20—確認是不要預留20%的空間)

    RENAME $DATA.FUDATA.FUHIVE,OLD.FUHIVE
    RENAME $DATA.FUDATA.FUHIVE0,OLD.FUHIVE0
    RENAME $DATA.FUDATA.FUHIVE1,OLD.FUHIVE1
    RENAME $DATA.FUDATA.FUHIVE2,OLD.FUHIVE2

    RENAME $DATA.FUDATA.AFUHIVE,FUHIVE

    loadaltfile 0,FUHIVE
    loadaltfile 1,FUHIVE
    loadaltfile 2,FUHIVE

    alter FUHIVE,audit

    4).如檔案資料真的太多,建議做FILE PARTITION,檔案PARTITION到愈多對DISK,Key-Sequenced file的INDEX-LEVEL也會降低。

    5).SLACK RATE: 建議20
    說明: 檔案若需常做INSERT,則需預留檔案擴展的空間,建議值為20,若預留的空間不足時,檔案就會增加下一層的INDEX,造成檔案做BLOCK SPLITS,會產生大量的DISK I/O。

    6).主檔和ALTFILE不在同一顆DISK:將主檔和ALTFILE分散在不同對DISK,可分散該檔案的存取速度.(仍需依客戶管理習慣做分配,以及需針對系統的DATA DISK做一個完整分析評估)

二、快速檢查檔案屬性
  • 凌群提供檢查檔案屬性的MACRO,可檢查以下的項目:
    A.檔案BLOCK不是4096
    B.Non-audit file without buffered
    C.主檔和ALTFILE在同一個目錄
    D.SLACK RATE < 20
    E.INDEX LEVEL > 3


  • 執行程序如下:
    (1)先編輯CONFIG,內容為要檢查的目錄,範例如下:
    $DATA.FUDATA
    $DATA.FUTEMP

    (2)在TACL環境下執行下面MACRO:
    RUN chkcond config

    (3)執行結果如下:
    *** $DATA.FUDATA.APRORG NON-AUDIT AND WITHOUT BUFFERED **
    *** $DATA.FUDATA.APRORG HAS ALT-FILE AT SAME VOLUME ***
    *** $DATA.FUDATA.APRORG0 NON-AUDIT AND WITHOUT BUFFERED *
    *** $DATA.FUDATA.APRORG0 RECORD SLACK RATE < 20 ***

參考資料

  • Performance Analysis and Tuning for NonStop Systems

  • SCF Reference Manual for the Storage Subsystem

  • File Utility Program (FUP) Reference Manual
  •  

    回上一頁