謝聲濤:金融行業(yè)的網(wǎng)絡(luò)應(yīng)用分析
原創(chuàng)【51CTO.com獨(dú)家特稿】編者按:本文為2009年首屆網(wǎng)絡(luò)分析技術(shù)大會(huì)的現(xiàn)場(chǎng)實(shí)錄,演講嘉賓為資深網(wǎng)絡(luò)分析技術(shù)專家謝聲濤先生。謝先生在大會(huì)上為我們?cè)敿?xì)講解了金融行業(yè)的網(wǎng)絡(luò)應(yīng)用分析等問題。
金融行業(yè)在這幾年發(fā)展特別快,特別是隨著進(jìn)瑞行業(yè)做數(shù)據(jù)大集中,相繼在上海和北京做了數(shù)據(jù)中心,網(wǎng)商銀行這個(gè)業(yè)務(wù)發(fā)展也是非??斓模嘈旁谧魑欢加惺褂眠^網(wǎng)上銀行或者網(wǎng)上交易相關(guān)的經(jīng)驗(yàn),網(wǎng)商銀行現(xiàn)在是非常方便的,不用跑到營業(yè)場(chǎng)所排隊(duì),站上一個(gè)小時(shí),才能做相關(guān)的交易,網(wǎng)上銀行和證券、第三方存款、期貨等所有相關(guān)都是和銀行有密切的關(guān)系,新業(yè)務(wù)系統(tǒng)也是快速增加,以前最早的業(yè)務(wù)系統(tǒng),大家知道在銀行存款和取款,沒有其他的業(yè)務(wù)。
除此之外關(guān)聯(lián)的業(yè)務(wù)系統(tǒng)有三百個(gè),所有都是廣域網(wǎng),都是B/S架構(gòu)和C/S架構(gòu),都是非常復(fù)雜的,這是對(duì)網(wǎng)絡(luò)和業(yè)務(wù)系統(tǒng)非常有壓力,因?yàn)閿?shù)據(jù)大集中之后,對(duì)廣域網(wǎng)或者說對(duì)所有的網(wǎng)絡(luò)穩(wěn)定運(yùn)行要求是非常高的,針對(duì)這個(gè)業(yè)務(wù)系統(tǒng)發(fā)生故障的時(shí)候,我們要有一個(gè)快速響應(yīng)的辦法,同時(shí)要有一個(gè)實(shí)時(shí)的監(jiān)控,對(duì)應(yīng)用系統(tǒng)應(yīng)用性能和實(shí)時(shí)監(jiān)控有著有效的預(yù)警系統(tǒng)日趨緊迫。對(duì)網(wǎng)絡(luò)管理的要求也要求越來越高,而且現(xiàn)在管理越來越復(fù)雜,因?yàn)榫W(wǎng)絡(luò)規(guī)模是越來越大,中間有管理和分支機(jī)構(gòu),在數(shù)據(jù)中心也劃分了多個(gè)區(qū)域,比如說網(wǎng)銀區(qū)和外聯(lián)區(qū)域,比如和人行或者外管局、期貨商、證券商相關(guān)聯(lián)的業(yè)務(wù)系統(tǒng)等各個(gè)區(qū)域越來越大,關(guān)鍵的網(wǎng)絡(luò)應(yīng)用也越來越多,現(xiàn)在有兩百多套應(yīng)用系統(tǒng),重要的系統(tǒng)只有三四十套,這些都關(guān)于銀行重要的生命線。網(wǎng)絡(luò)用戶越來越多,原來只是分行,包括網(wǎng)絡(luò)用戶,像大的銀行,網(wǎng)銀用戶一天大概有一百多玩火者說相關(guān)的交易量,數(shù)據(jù)量都是特別大的。像分支機(jī)構(gòu),我們經(jīng)常可以碰到響應(yīng)時(shí)間特別慢,不響應(yīng),過上一分鐘又恢復(fù)了,還有病毒攻擊等。我們內(nèi)部采用比較復(fù)雜的應(yīng)用結(jié)構(gòu),比如IP、三層架構(gòu),多層網(wǎng)絡(luò)拓?fù)湎碌膽?yīng)用性能做一個(gè)監(jiān)控。廣域網(wǎng)上網(wǎng)銀對(duì)B2B和B2C的交易應(yīng)用需要對(duì)應(yīng)用性能進(jìn)行監(jiān)控,對(duì)帶寬管理和廣域網(wǎng)管理,我們需要有一個(gè)有效的規(guī)劃,因?yàn)楝F(xiàn)在銀行廣域網(wǎng)一些大的銀行向電信和網(wǎng)通租費(fèi)都是五六億,降低成本,實(shí)行高精度化的管理,我們需要有效的利用廣域網(wǎng)能夠盡量節(jié)省帶寬,能夠降低一些無效的流量。
應(yīng)用是多重?cái)?shù)據(jù),比如數(shù)據(jù)、語音、視頻,因?yàn)楦鱾€(gè)銀行業(yè)有好多電話銀行和呼叫中心,這些呼叫中心實(shí)際上并不是在一個(gè)地方,它可能是分散在多個(gè)地方,比如說像上海,有的可能在成都,有的在蘭州,有的人在蘇州,甚至是八個(gè)呼叫中心,但是后臺(tái)語音的管理系統(tǒng)只有一套,就在數(shù)據(jù)中心,所有的數(shù)據(jù)都走聚合廣域網(wǎng)線路,上到數(shù)據(jù)中心進(jìn)行處理,這個(gè)就需要有一個(gè)非常有效的監(jiān)控。IT故障業(yè)務(wù),我們需要流量規(guī)劃、管理,從被動(dòng)到主動(dòng)的管理模式,以及我們需要IT和業(yè)務(wù)的架構(gòu)適當(dāng)改變,又要適應(yīng)網(wǎng)絡(luò)的發(fā)展。最終的目標(biāo)是要能夠保證性能能夠在客戶不被影響情況下快速解決問題,減少M(fèi)TTR。
案例分析:網(wǎng)絡(luò)拓?fù)鋱D。實(shí)際上是兩個(gè)數(shù)據(jù)中心,桐城數(shù)據(jù)網(wǎng),通過萬兆城域網(wǎng)進(jìn)行關(guān)聯(lián),在每一個(gè)數(shù)據(jù)中心里頭,分了多個(gè)區(qū)域,這只是其中一個(gè)區(qū)域,也是三層的架構(gòu),在每一層交換機(jī)之間都有防火墻,還有負(fù)載均衡設(shè)備,客戶端在另外一個(gè)數(shù)據(jù)中心。業(yè)務(wù)系統(tǒng)運(yùn)行異常,服務(wù)器剛完成一次運(yùn)維變更操作,交易成功率約為70%,并且失敗的交易都發(fā)生在同一服務(wù)器上,發(fā)生問題的地方:網(wǎng)絡(luò)設(shè)備、防火墻、均衡負(fù)載、服務(wù)器、系統(tǒng)配置,無法確認(rèn)問題發(fā)生的所在。
我們還需要在服務(wù)器前端裝設(shè)備,也需要進(jìn)行采集。首先先看AF防火墻和AP SW1之間,為什么抓這個(gè)數(shù)據(jù),進(jìn)行前端數(shù)據(jù)捕獲,到底異常是什么樣的異常?同時(shí)有三個(gè)數(shù)據(jù)包是異常的,這三個(gè)數(shù)據(jù)包都是針對(duì)前面的序列號(hào)做得對(duì)比。看到這個(gè)應(yīng)用的時(shí)候,我不知道大家對(duì)均衡負(fù)載設(shè)備工作原理也有相當(dāng)?shù)牧私?,也就是說,所有客戶端,比如訪問到均衡負(fù)載設(shè)備,均衡負(fù)載設(shè)備把數(shù)據(jù)流做相應(yīng)的算法處理,分給兩個(gè)服務(wù)器,服務(wù)器做了響應(yīng)的響應(yīng)之后,數(shù)據(jù)給負(fù)載均衡設(shè)備,負(fù)載均衡設(shè)備給客戶端做相互的處理,也就是說咱們?cè)谶@個(gè)點(diǎn)上看到的數(shù)據(jù),看到兩個(gè)地址,經(jīng)常出現(xiàn)的102.10說明是有異常的,這個(gè)異常體現(xiàn)在幾個(gè)地方,我們就需要分析,有可能是負(fù)載均衡設(shè)備異常,數(shù)據(jù)并沒有做地址轉(zhuǎn)換,或者說我們的服務(wù)器交換機(jī)上面端口處理出現(xiàn)了問題,需要看看在服務(wù)器前端的數(shù)據(jù)。
大家一定要注意的目標(biāo)源地址和FW1地址。我們?cè)倏匆豢凑5慕灰祝?0正常的交易,并不是所有交易都失敗,是70%,即使在10失敗,也是50%的失敗率,肯定有正常的交易,正常交易的過程是什么樣子的,這時(shí)候我們可以對(duì)照交換機(jī),我們和網(wǎng)管員對(duì)照。失敗交易地址是什么呢?我們查了一下,相當(dāng)于服務(wù)器交換機(jī)網(wǎng)關(guān),也就是說服務(wù)器配得末端網(wǎng)關(guān),為什么會(huì)出現(xiàn)這個(gè)問題呢?正常情況下,所有數(shù)據(jù)都給F5設(shè)備,出現(xiàn)這個(gè)問題就出現(xiàn)在服務(wù)器配置,我們?cè)俾?lián)系前面服務(wù)器操作重啟,導(dǎo)致配置的路由信息出現(xiàn)了異常,出現(xiàn)了雙路由的情況出現(xiàn),最后我們讓系統(tǒng)管理員自己查主機(jī)的IP地址,最后確認(rèn)確實(shí)因?yàn)樽詈笠淮巫兏貑?dǎo)致主機(jī)出現(xiàn)雙路由,正常的數(shù)據(jù)流進(jìn)來客戶端到負(fù)載均衡再到服務(wù)器再到給均衡負(fù)載設(shè)備,然后再到客戶端,這是完整的過程。
因?yàn)?08.10存在兩條,致使交易數(shù)據(jù)和路徑負(fù)載均衡,負(fù)載均衡到服務(wù)器,服務(wù)器直接由交換機(jī)網(wǎng)關(guān)傳給客戶端,導(dǎo)致這個(gè)鏈建立失敗,最后導(dǎo)致交易失敗,實(shí)際上這就是運(yùn)維過程中配置信息管理不嚴(yán)格,導(dǎo)致重啟之后變更操作使交易失敗,最后把路由器改了,交易恢復(fù)正常。案例二現(xiàn)象描述。應(yīng)用架構(gòu)為WEB AP DB三層體系。高峰期時(shí)交易受到影響。WEB服務(wù)器上存在大量的CLOSE WAIT狀態(tài)的TCP會(huì)話,而AP服務(wù)器存在大量的FIN WAIT 2狀態(tài)的TCP會(huì)話。系統(tǒng)剛完成版本升級(jí)。發(fā)生問題的地方:服務(wù)器、系統(tǒng)配置。
我們也是看一下WEB和AP,防火墻控制時(shí)間是不是有一些限制,最后導(dǎo)致應(yīng)用不正常。在TCP正常終止對(duì)應(yīng)的狀態(tài)圖,在主動(dòng)關(guān)閉這一端發(fā)出第一個(gè)命令時(shí)由1轉(zhuǎn)為2,接收端在收到時(shí),轉(zhuǎn)到CLOESED狀態(tài)。接收端這邊收到之后,變成CLOSE WAT。WEB服務(wù)器存在大量的CLOSE WAIT狀態(tài)的TCP繪畫,而AP服務(wù)器存在大量的FIN WAIT 2狀態(tài)。TCP正常終止時(shí)的數(shù)據(jù)76.98,是Web服務(wù)器,7.92是AP服務(wù)器,異常的時(shí)候77.92由AP服務(wù)器發(fā)出,發(fā)生斷裂之前,IP服務(wù)器有一個(gè)主動(dòng)的延遲31秒,我們問過應(yīng)用部門,他們判斷說,由服務(wù)器在斷裂之前超過30秒沒有數(shù)據(jù)傳遞的話,將由AP服務(wù)器主動(dòng)發(fā)起斷裂,客戶端Web服務(wù)器發(fā)出下一個(gè)命令的時(shí)候,中間間隔時(shí)間是200多毫秒,我們只原則其中一個(gè)鏈,最長四百多秒。兩百多秒導(dǎo)致AP服務(wù)器保持兩百多秒狀態(tài),Web也保持了一定的時(shí)間。假設(shè)在業(yè)務(wù)量高峰期間,這個(gè)鏈正??赡苁侵挥懈叩投酥挥惺畟€(gè)用戶,代表AP服務(wù)器足夠資源給其他的連接分配,但是如果說是高峰期達(dá)到兩百甚至上千個(gè)用戶的時(shí)候,這個(gè)時(shí)候會(huì)導(dǎo)致AP服務(wù)器再也沒有足夠的資源供Web服務(wù)器使用,這就是交易量下降的原因。
最后再回到斷裂的異常,剛才我們看到的是,斷裂的時(shí)候由Web發(fā)出斷裂都是正常的結(jié)束,AP服務(wù)器發(fā)出斷裂的話,全部都是異常的,最后由應(yīng)用部門主動(dòng)追溯調(diào)用哪些程序,發(fā)現(xiàn)調(diào)用APR結(jié)束上面有一些問題,也就是說Web情況下不會(huì)發(fā)生斷裂,部分情況會(huì)發(fā)生斷裂,是由AP服務(wù)器發(fā)出斷裂,就會(huì)造成長時(shí)間掛在上面,最終他們修改了ATI接口,調(diào)整為Web服務(wù)器強(qiáng)制發(fā)起斷裂,這樣的話,所有的現(xiàn)象就全部消失了,業(yè)務(wù)恢復(fù)了正常。
案例三:利用Sniffer解決某銀行信用卡業(yè)務(wù)網(wǎng)絡(luò)故障。大家都有刷卡購物的經(jīng)歷,也就是說大家拿著銀行卡在POS刷卡,最后付帳,我不知道大家對(duì)信用卡網(wǎng)絡(luò)有多少了解?商場(chǎng)POS機(jī)有建行、工行、農(nóng)行,所有的POS都是通過電話線連到后面的POS PAD,可以看作POS的哈比,早期使用XL25網(wǎng)絡(luò),通過這個(gè)網(wǎng)絡(luò)連到網(wǎng)控設(shè)備,網(wǎng)口設(shè)備也是比較特殊的,可以看成是路由器,上面有多塊管理網(wǎng)卡,簡稱CID卡,后面有LET卡。網(wǎng)控做什么網(wǎng)絡(luò),把數(shù)據(jù)轉(zhuǎn)成以太網(wǎng)數(shù)據(jù)。
信用卡網(wǎng)絡(luò)故障描述:商場(chǎng)POS通過POS PAD連接X.25網(wǎng)絡(luò)。IBM主機(jī)通過以太網(wǎng)與網(wǎng)控連接,進(jìn)入X.25網(wǎng)絡(luò)。銀行信用卡業(yè)務(wù)與貸計(jì)卡業(yè)務(wù)通過以上網(wǎng)絡(luò)進(jìn)行處理。因更新POS程序,造成信用卡在商場(chǎng)刷卡時(shí)可以進(jìn)行消費(fèi),但無法完成批上送消費(fèi)結(jié)算。同時(shí),貸計(jì)卡消費(fèi)完全正常。有一筆應(yīng)用完全正常,有一筆應(yīng)用是失敗交易,我們采取兩個(gè)點(diǎn)來看,分別在網(wǎng)控前端和后端,廣域網(wǎng)和局域網(wǎng)都做數(shù)據(jù)捕獲,信用卡結(jié)算數(shù)據(jù)有可能是丟失,有可能數(shù)據(jù)到POS前端沒有發(fā)送,或者數(shù)據(jù)有可能在網(wǎng)控階段沒有往后臺(tái)IBM主機(jī)發(fā)送,也可能修改程序?qū)е聰?shù)據(jù)異常。
成功的交易,廣域網(wǎng)的數(shù)據(jù),數(shù)據(jù)包108個(gè)字節(jié),HDLC數(shù)據(jù)包頭2字節(jié),X.25數(shù)據(jù)包頭3字節(jié),PAD封裝交易數(shù)據(jù)105字節(jié)。貸計(jì)卡在后端130.25.1.193是LET的IP地址,目標(biāo)是130.25.01.10是主機(jī)地址。信用卡成功的交易,因?yàn)樾庞每ń灰撞⒉皇峭耆。^是133個(gè)字節(jié),PAD去掉2個(gè)字節(jié),X.25包頭數(shù)據(jù)是3字節(jié),PAD封裝交易數(shù)據(jù)是128個(gè)字節(jié),里頭有一個(gè)偏移位,數(shù)據(jù)封裝分成兩個(gè),交易數(shù)據(jù)總廠178個(gè)字節(jié),大于128字節(jié),X.25協(xié)議規(guī)定進(jìn)行分組傳遞,這個(gè)協(xié)議規(guī)定128個(gè)字節(jié)包,超過128字節(jié)就必須分包,分成兩個(gè)包進(jìn)行傳遞。信用卡交易失敗的數(shù)據(jù),在廣域網(wǎng)數(shù)據(jù)是什么樣子的?133個(gè)字節(jié),128個(gè)字節(jié)的封裝,在應(yīng)用層看到,信用卡交易結(jié)算總包長就是128個(gè)字節(jié),X.25網(wǎng)絡(luò)中正好是一個(gè)分組的數(shù)據(jù),廣域網(wǎng)在以太網(wǎng)數(shù)據(jù)傳輸,數(shù)據(jù)到網(wǎng)控,并沒有往后臺(tái)以太網(wǎng)數(shù)據(jù)傳送,所以交易失敗了。只有交易包的長度128字節(jié)時(shí)才會(huì)出現(xiàn)問題,大于或者小于都是很正常的,我們更新了POS程序,信用卡交易批量傳輸長度是128個(gè),該長度是固定的,不會(huì)隨交易金額變化而變化??赡芄收系脑颍琗.25網(wǎng)絡(luò)規(guī)定大于128字節(jié)的數(shù)據(jù)應(yīng)分組,如果說這個(gè)數(shù)據(jù)正好是128字節(jié)處于臨界值,X.25通信設(shè)備再處理上存在偏差。也就是說,POS PAD也就是說在收到POS傳送來的128字節(jié)長度數(shù)據(jù)包時(shí),認(rèn)為該數(shù)據(jù)不需要分組,直接組裝成一個(gè)X.25數(shù)據(jù)包往網(wǎng)控發(fā)送。網(wǎng)控收到POS PAD傳送來的128字節(jié)長度的數(shù)據(jù)包進(jìn)行處理時(shí),認(rèn)為該數(shù)據(jù)包不符合規(guī)定,不向主機(jī)繼續(xù)傳送。解決方法:比較復(fù)雜的就是調(diào)整通信參數(shù),找運(yùn)營商調(diào)整參數(shù),把峰值調(diào)整一下。再一個(gè)把程序修改一下,數(shù)據(jù)包增加填充位,使之大于128字節(jié),強(qiáng)調(diào)數(shù)據(jù)包分組。最后我們采取的方法就是第一種簡單的方法,強(qiáng)制填充5、6位數(shù)據(jù),讓它大于128,強(qiáng)制分組,使業(yè)務(wù)恢復(fù)正常。
前面幾個(gè)案例大概總結(jié)一下,現(xiàn)在的網(wǎng)絡(luò)越來越復(fù)雜,我們?cè)谧龇治鲞^程中,不僅僅對(duì)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)有相當(dāng)?shù)牧私猓瑢?duì)應(yīng)用架構(gòu)也有一些基礎(chǔ)的知識(shí),這樣的話在做分析過程中,才能夠舉重若輕,才能得心應(yīng)手。
【51CTO.com獨(dú)家特稿,轉(zhuǎn)載請(qǐng)注明出處】
【編輯推薦】