劉凱強(qiáng)
(山東省農(nóng)村信用社聯(lián)合社,濟(jì)南 250000)
商業(yè)銀行系統(tǒng)性能測(cè)試是通過(guò)模擬壓力源及測(cè)試工具獲取系統(tǒng)在日常負(fù)載場(chǎng)景、行內(nèi)特色負(fù)載場(chǎng)景及高峰負(fù)載場(chǎng)景下系統(tǒng)的各項(xiàng)性能指標(biāo)[1],協(xié)助系統(tǒng)開(kāi)發(fā)人員進(jìn)行性能調(diào)優(yōu),消除隱藏的性能風(fēng)險(xiǎn),是商業(yè)銀行系統(tǒng)投產(chǎn)前必不可少的環(huán)節(jié)。性能測(cè)試工作中常用的測(cè)試、監(jiān)控及分析工具詳見(jiàn)表1:

表1 性能測(cè)試相關(guān)工具
銀行核心系統(tǒng)的性能測(cè)試分析與系統(tǒng)優(yōu)化的依據(jù)通常包括以下性能指標(biāo):
(1)核心吞吐量:核心系統(tǒng)每秒可以處理的事務(wù)數(shù)TPS(Transactions per second,由于核心系統(tǒng)的部分交易會(huì)聯(lián)動(dòng)子交易,本文界定一次事務(wù)為核心系統(tǒng)角度的一次請(qǐng)求和響應(yīng)過(guò)程,即最小獨(dú)立交易單元,而非業(yè)務(wù)角度一筆交易過(guò)程)。
(2)交易響應(yīng)時(shí)間:交易報(bào)文從模擬渠道進(jìn)入核心系統(tǒng)至渠道端接受到響應(yīng)報(bào)文的處理歷時(shí),包括一定時(shí)間段內(nèi)的統(tǒng)計(jì)平均值(ART)以及交易的最高耗時(shí)(MRT)。
(3)并發(fā)交易成功率:交易成功是指核心系統(tǒng)完成正確的處理邏輯,完成數(shù)據(jù)更新與日志登記,并返回給請(qǐng)求端交易成功的響應(yīng)碼與響應(yīng)信息。商業(yè)銀行并發(fā)場(chǎng)景下,要求交易成功率不得低于95%。
(4)批處理效率:在一定的負(fù)載壓力下啟動(dòng)批處理交易,通過(guò)批處理執(zhí)行時(shí)間窗口和批處理過(guò)程中的交易響應(yīng)時(shí)間指標(biāo)來(lái)衡量。
(5)其他指標(biāo):各服務(wù)器的CPU使用率、內(nèi)存使用率、I/O使用率及共享內(nèi)存命中率等。
商業(yè)銀行核心系統(tǒng)性能測(cè)試場(chǎng)景包括典型交易基準(zhǔn)場(chǎng)景、混合交易并發(fā)場(chǎng)景、批處理場(chǎng)景、穩(wěn)定性場(chǎng)景及高可用可恢復(fù)性等場(chǎng)景,如商業(yè)銀行有特殊業(yè)務(wù)需求與技術(shù)架構(gòu),也可適當(dāng)增加測(cè)試場(chǎng)景。
典型單交易基準(zhǔn)場(chǎng)景對(duì)每一支典型交易進(jìn)行測(cè)試,目的是獲取在無(wú)壓力條件(系統(tǒng)資源空閑遠(yuǎn)大于交易占用)下,核心系統(tǒng)完成交易的系統(tǒng)代價(jià),包括響應(yīng)時(shí)間、系統(tǒng)資源占用量等,為模擬多個(gè)用戶(hù)并發(fā)、混合交易場(chǎng)景提供一個(gè)基礎(chǔ)參考數(shù)據(jù)。
銀行戰(zhàn)略定位的不同決定了其典型交易認(rèn)定方法也不盡相同,通常會(huì)按照交易量、耗時(shí)頭部交易與重要交易取合集的方法來(lái)統(tǒng)籌選擇典型交易。首先分析歷史交易,理清每筆交易的數(shù)量以及每筆交易的平均耗時(shí),按交易量排序后找出占交易總量超過(guò)60%的頭部交易,按耗時(shí)排序后找出耗時(shí)超過(guò)平均耗時(shí)的交易,以及重要交易(優(yōu)勢(shì)業(yè)務(wù)交易、重點(diǎn)發(fā)展業(yè)務(wù)交易以及特定日期交易量大增的交易等),然后三者取合集,形成基準(zhǔn)測(cè)試的典型交易清單。
在設(shè)計(jì)混合交易并發(fā)場(chǎng)景時(shí),應(yīng)根據(jù)行內(nèi)交易分布,在不同的時(shí)期、時(shí)間段,把交易按照一定比例組合,形成模擬場(chǎng)景,比如模擬雙十一支付渠道交易高峰測(cè)試場(chǎng)景、模擬夜間批量代發(fā)工資高峰測(cè)試場(chǎng)景等。按照業(yè)務(wù)分析現(xiàn)有負(fù)載、預(yù)期負(fù)載及最大負(fù)載的情況,通過(guò)不同數(shù)量的模擬并發(fā)用戶(hù)向核心系統(tǒng)發(fā)起交易,獲取各場(chǎng)景的系統(tǒng)TPS、響應(yīng)時(shí)間ART和MRT以及交易成功率,同時(shí)監(jiān)控服務(wù)器的資源情況。混合交易并發(fā)場(chǎng)景是最貼近真實(shí)生產(chǎn)的測(cè)試場(chǎng)景[2],通過(guò)一系列測(cè)試、分析及優(yōu)化,就可以找到真實(shí)投產(chǎn)后的系統(tǒng)性能極限。
批處理是銀行系統(tǒng)中比較重要、對(duì)性能影響較大的特殊交易,對(duì)批處理交易測(cè)試的主要性能指標(biāo)包括批處理的時(shí)間窗口和對(duì)其他聯(lián)機(jī)交易的影響。批處理測(cè)試可采用的壓力交易包括聯(lián)機(jī)批量代發(fā)代扣交易、日常批處理、結(jié)息日批處理等。通過(guò)批處理測(cè)試場(chǎng)景,獲得批量執(zhí)行的并發(fā)數(shù)、數(shù)據(jù)庫(kù)連接數(shù)等參數(shù)對(duì)批量執(zhí)行及24小時(shí)業(yè)務(wù)的影響程度,藉此數(shù)據(jù)平衡批量執(zhí)行時(shí)間與系統(tǒng)資源占用,從而保證投產(chǎn)后批量任務(wù)與24小時(shí)聯(lián)機(jī)業(yè)務(wù)在高負(fù)載情況下不會(huì)互相影響。
穩(wěn)定性測(cè)試場(chǎng)景采用混合交易并發(fā)模式,對(duì)核心銀行系統(tǒng)進(jìn)行較長(zhǎng)時(shí)間(一般為8小時(shí)以上)的有負(fù)載測(cè)試,檢查系統(tǒng)在持續(xù)負(fù)載下的穩(wěn)定性表現(xiàn)[3]。為了更貼近生產(chǎn)環(huán)境,負(fù)載壓力可以模擬為日交易量波動(dòng)曲線(xiàn),考察是否會(huì)出現(xiàn)宕機(jī)、響應(yīng)時(shí)間是否波動(dòng)、交易成功率下降、系統(tǒng)資源占用異常升高等情況。
商業(yè)銀行核心數(shù)據(jù)庫(kù)架構(gòu)常應(yīng)可恢復(fù)性,一般多設(shè)計(jì)為主備機(jī)架構(gòu)。在考察應(yīng)用服務(wù)器可恢復(fù)性能時(shí),可采用典型交易混合并發(fā)模式,保持系統(tǒng)負(fù)載80%TPS壓力,在斷開(kāi)一臺(tái)數(shù)據(jù)庫(kù)服務(wù)器的情況下,系統(tǒng)的交易處理能力是否符合要求。場(chǎng)景持續(xù)時(shí)間一小時(shí),監(jiān)控分析數(shù)據(jù)庫(kù)主備切換是否成功,在切換后是否出現(xiàn)數(shù)據(jù)庫(kù)響應(yīng)時(shí)間升高、數(shù)據(jù)庫(kù)死鎖、交易中斷等異常情況,同時(shí)跟蹤記錄數(shù)據(jù)庫(kù)主備機(jī)切換耗時(shí)、失敗交易數(shù)量及失敗交易分布情況等。
商業(yè)銀行系統(tǒng)應(yīng)用服務(wù)器架構(gòu)在設(shè)計(jì)時(shí)常考慮多機(jī)均衡負(fù)載,當(dāng)其中一臺(tái)或幾臺(tái)下線(xiàn)時(shí),剩余服務(wù)器能夠承擔(dān)交易。在性能測(cè)試中,考察應(yīng)用服務(wù)器高可用性,同樣需要采用典型交易混合并發(fā)模式來(lái)模擬真實(shí)生產(chǎn)場(chǎng)景,保持系統(tǒng)負(fù)載80%TPS壓力,考察在斷開(kāi)一臺(tái)(或幾臺(tái))應(yīng)用服務(wù)器的情況下,系統(tǒng)的交易處理能力是否符合要求。監(jiān)控分析系統(tǒng)在斷開(kāi)后是否出現(xiàn)交易響應(yīng)時(shí)間變長(zhǎng)、交易成功率下降、系統(tǒng)資源占用超限等異常情況。
在互聯(lián)網(wǎng)金融的攻勢(shì)下,商業(yè)銀行業(yè)務(wù)也隨之迅猛發(fā)展,核心系統(tǒng)變更與投產(chǎn)勢(shì)在必行,但系統(tǒng)的投產(chǎn)也帶來(lái)一定的風(fēng)險(xiǎn)。如果系統(tǒng)投產(chǎn)程序性能較差,在業(yè)務(wù)高峰時(shí)期更容易達(dá)到性能瓶頸,引起交易大面積超時(shí),造成業(yè)務(wù)吞吐量降低和客戶(hù)體驗(yàn)下降等不良影響。通過(guò)性能測(cè)試,掌握系統(tǒng)的最大處理能力,對(duì)系統(tǒng)瓶頸進(jìn)行優(yōu)化,把投產(chǎn)風(fēng)險(xiǎn)降到最低,才能保證銀行交易的高效、穩(wěn)定與安全。