關(guān)于計(jì)算機(jī)系統(tǒng)分析員論文
我所在的單位是把目標(biāo)定位于金融領(lǐng)域開發(fā)IT應(yīng)用的一家信息技術(shù)公司。隨著金融電子化建設(shè)的發(fā)展和商業(yè)銀行之間市場(chǎng)競(jìng)爭(zhēng)的加劇,各主要商業(yè)銀行不斷通過(guò)信息技術(shù)提供新的金融產(chǎn)品,并且希望能整合市場(chǎng)渠道。比如主要的商業(yè)銀行不斷推出形形色色的網(wǎng)上銀行服務(wù)。在這種背景下,本人參與了開發(fā)新一代網(wǎng)上銀行產(chǎn)品,涉及到提供網(wǎng)上個(gè)人理財(cái)服務(wù)、網(wǎng)上外匯買賣服務(wù)、網(wǎng)上企業(yè)服務(wù)等具有市場(chǎng)競(jìng)爭(zhēng)力的產(chǎn)品。作為項(xiàng)目開發(fā)的組織者之一和主要的技術(shù)骨干,在整個(gè)項(xiàng)目開發(fā)過(guò)程中始終要處于第一線,從而在改進(jìn)Web服務(wù)器性能、提高整個(gè)網(wǎng)上平臺(tái)系統(tǒng)性能方面收獲良多,在本文中簡(jiǎn)要討論如下,希望與讀者們共享經(jīng)驗(yàn)。在Web服務(wù)器配置與優(yōu)化方面,我有如下幾方面主要的體會(huì):
第一方面是Web服務(wù)器選型考慮。
在Web服務(wù)器選型及網(wǎng)上平臺(tái)搭建之初,我們就已充分考慮整個(gè)網(wǎng)上平臺(tái)的性能及可擴(kuò)展性問(wèn)題。這一考慮為該系統(tǒng)的穩(wěn)定性及擴(kuò)展性能力方面打下了堅(jiān)實(shí)的基礎(chǔ)。
某銀行原有的一些網(wǎng)上產(chǎn)品由于開發(fā)較早,故而采用的是老式的HTTP Server+CGI程序調(diào)用的方式。這時(shí),每一客戶請(qǐng)求需要對(duì)應(yīng)于后端系統(tǒng)的系統(tǒng)進(jìn)程來(lái)運(yùn)行CGI程序來(lái)處理,系統(tǒng)的開銷相當(dāng)大,系統(tǒng)的擴(kuò)展能力也很差,性能已不能滿足業(yè)務(wù)處理的需要,故而在為此銀行系統(tǒng)具體選型的時(shí)候,我們一開始就否決了這種方案。
通過(guò)市場(chǎng)上同類產(chǎn)品的比較選擇,我們選擇了國(guó)際商業(yè)機(jī)器有限公司IBM的Web Sphere產(chǎn)品系列作為該行網(wǎng)上銀行系統(tǒng)的建立平臺(tái)。作出這樣選擇是因?yàn)閃eb Sphere基于使HTTP Server和應(yīng)用服務(wù)器相分離的整體架構(gòu),同時(shí)支持JSP、Servlet和企業(yè)組Java Bean等輕量級(jí)線程規(guī)范,所有的請(qǐng)求對(duì)應(yīng)于應(yīng)用服務(wù)器上的處理線程,系統(tǒng)的開銷低、效率非常高,同時(shí)Web Sphere整個(gè)體系結(jié)構(gòu)相當(dāng)?shù)撵`活,為適應(yīng)擴(kuò)展需要可以作不同的橫向和縱向擴(kuò)展,從而可以滿足各銀行未來(lái)的擴(kuò)展需要。
正是因?yàn)樵谝婚_始選型的時(shí)候我們就已考慮到未來(lái)的擴(kuò)展需要,整個(gè)系統(tǒng)在接下來(lái)的幾次性能改進(jìn)方面,我們大體上都能相對(duì)順利地達(dá)到了預(yù)期目標(biāo)。
第二方面是Web服務(wù)器的性能配置。
在一開始系統(tǒng)上線的時(shí)候,由于系統(tǒng)的負(fù)荷不是很大,為了節(jié)省系統(tǒng)總擁有成本TCO投資,我們?cè)谝慌_(tái)較低配置的IBM RS6000上投產(chǎn)了該系統(tǒng)。整個(gè)系統(tǒng)的HTTP服務(wù)器、應(yīng)用服務(wù)器、通信服務(wù)器等均位于該臺(tái)機(jī)器上,由于初始投產(chǎn)時(shí)用戶不多,所以系統(tǒng)的性能基本上能令人接受。
但隨著業(yè)務(wù)的發(fā)展和用戶訪問(wèn)量的增大,我們發(fā)現(xiàn)該服務(wù)器的響應(yīng)變慢,系統(tǒng)的CPU利用率和內(nèi)外存交換顯著增大。經(jīng)過(guò)跟蹤,我們發(fā)現(xiàn)關(guān)鍵原因之一是系統(tǒng)的內(nèi)存不足的緣故。由于網(wǎng)上服務(wù)器把大量用戶的會(huì)話信息保存在內(nèi)存中供給應(yīng)用系統(tǒng)使用,當(dāng)內(nèi)存不足時(shí),大量Session信息被迫交換至硬盤,大量CPU時(shí)間消耗在等候內(nèi)外存的交換上,系統(tǒng)效率迅速下降。
鑒于這種情況,我們把該服務(wù)器的內(nèi)存由2GB擴(kuò)充為4GB,同時(shí)相應(yīng)調(diào)整用戶會(huì)話信息的保存時(shí)間,這樣整個(gè)系統(tǒng)的效率又回到較為理想的狀況。
由于新應(yīng)用的不斷投產(chǎn)及數(shù)據(jù)庫(kù)操作的日益增加,我們后來(lái)逐漸監(jiān)控到系統(tǒng)的數(shù)據(jù)庫(kù)處于繁忙狀態(tài),系統(tǒng)的錯(cuò)誤日志也記錄下了供應(yīng)用服務(wù)器使用的數(shù)據(jù)庫(kù)連接處出現(xiàn)資源不足的情況。在這種背景下,我們認(rèn)為整個(gè)系統(tǒng)由于硬件配置所限,應(yīng)該進(jìn)行橫向擴(kuò)展,因此我們把數(shù)據(jù)庫(kù)服務(wù)器分離出來(lái),配置到另一較高性能的服務(wù)器上,相應(yīng)定義的數(shù)據(jù)庫(kù)資源也大幅增加,這樣整個(gè)系統(tǒng)的性能又處于較為理想的狀況。
第三方面是對(duì)應(yīng)用系統(tǒng)進(jìn)行相應(yīng)的優(yōu)化以提高性能。
Web服務(wù)器配置及相應(yīng)的硬件擴(kuò)展不失為解決系統(tǒng)性能問(wèn)題的一條捷徑,但應(yīng)用系統(tǒng)的優(yōu)化也是應(yīng)該重點(diǎn)加以考慮的,畢竟它能夠在投入較少的情況下提高系統(tǒng)的運(yùn)用效率。
在開發(fā)的初期,我們就已經(jīng)十分注意系統(tǒng)的利用效率,比如提醒程序員盡量不要利用用戶會(huì)話信息(Session)來(lái)傳遞大的對(duì)象,對(duì)于內(nèi)存要注意回收等。同時(shí),通過(guò)內(nèi)部的交流會(huì)推廣與介紹一些小的、有用的編程技巧來(lái)提高開發(fā)人員的水平,通過(guò)代碼的抽查,希望能在早期就發(fā)現(xiàn)問(wèn)題等。
在系統(tǒng)運(yùn)行期間,我們通過(guò)監(jiān)控發(fā)現(xiàn),應(yīng)用服務(wù)器所基于的Java虛擬機(jī),其內(nèi)存堆的空閑空間有不斷下降的趨勢(shì),每隔若干天導(dǎo)致空間消耗殆盡、無(wú)法分配新對(duì)象空間,從而導(dǎo)致系統(tǒng)重啟。在排除了系統(tǒng)本身問(wèn)題的原因外,我們確定為應(yīng)用系統(tǒng)的開發(fā)有問(wèn)題。通過(guò)從網(wǎng)上萬(wàn)載IBM公司檢測(cè)Java虛擬機(jī)的相關(guān)工具對(duì)JVM進(jìn)行監(jiān)控后終于發(fā)現(xiàn)系統(tǒng)內(nèi)部存在著不能回收內(nèi)存的對(duì)象,再通過(guò)查找相應(yīng)的程序發(fā)現(xiàn)在該程序中有“環(huán)狀”的對(duì)象引用,從而導(dǎo)致對(duì)象使用后不能被垃圾收集器所回收。這個(gè)問(wèn)題的解決過(guò)程雖然十分艱苦,但由于該問(wèn)題不能通過(guò)升級(jí)硬件或增加資源配置而得到根本解決,會(huì)給系統(tǒng)帶來(lái)很大的隱患。所以,整個(gè)過(guò)程的分析與解決是完全值得的,更何況通過(guò)查找故障原因的過(guò)程,給整個(gè)項(xiàng)目組上了生動(dòng)的一堂軟件質(zhì)量保證課,對(duì)項(xiàng)目組的質(zhì)量意識(shí)起了很大的促進(jìn)作用。
所以說(shuō)改進(jìn)Web服務(wù)器的性能井不單純是系統(tǒng)管理方面的工作,它滲透到開發(fā)以及系統(tǒng)運(yùn)行等一系列環(huán)節(jié)中。
第四方面預(yù)先考慮未來(lái)的擴(kuò)展與性能需要。
隨著系統(tǒng)的發(fā)展及成熟,考慮到用戶訪問(wèn)量的不斷上升,為了預(yù)留系統(tǒng)的發(fā)展空間,我們最近又對(duì)整個(gè)系統(tǒng)作了一個(gè)系統(tǒng)性的升級(jí)。通過(guò)引入多臺(tái)HTTP服務(wù)器及應(yīng)用服務(wù)器并行工作提高整個(gè)系統(tǒng)吞吐量及單點(diǎn)故障克服能力。由于在一開始選型的時(shí)候就已經(jīng)充分考慮到動(dòng)態(tài)負(fù)載均衡及橫向擴(kuò)展方面的需要,這一項(xiàng)的升級(jí)無(wú)需對(duì)整個(gè)系統(tǒng)的體系結(jié)構(gòu)作根本的變革,對(duì)應(yīng)用程序來(lái)說(shuō),更是沒(méi)有造成任何影響。
整個(gè)項(xiàng)目歷時(shí)近兩年,從這兩年的系統(tǒng)情況來(lái)看,整個(gè)系統(tǒng)是成功的。根據(jù)我親身的經(jīng)歷,系統(tǒng)性能并不單純是系統(tǒng)運(yùn)行與管理階段的問(wèn)題,而是滲透在項(xiàng)目論證、開發(fā)以及運(yùn)行的各個(gè)階段。只有在各個(gè)階段都能充分考慮性能方面的需要,在實(shí)際運(yùn)行時(shí),整個(gè)系統(tǒng)的性能才可能真正有保障。在技術(shù)方面來(lái)看,可以綜合利用選型評(píng)估、硬件擴(kuò)展、應(yīng)用優(yōu)化和系統(tǒng)配置優(yōu)化等一系列的手段;比如在硬件擴(kuò)展方面,又可以分為主要部件擴(kuò)容,縱向升級(jí)、橫向升級(jí)等方面。在我們的項(xiàng)目實(shí)踐中,曾綜合地利用了上述的各種手段。比如某銀行的整個(gè)系統(tǒng)從日訪問(wèn)量不足1萬(wàn)至現(xiàn)在的每日超過(guò)I0萬(wàn)次以上的點(diǎn)擊的發(fā)展情況來(lái)看,整個(gè)系統(tǒng)的性能保障及提高方案是比較成功的。
【計(jì)算機(jī)系統(tǒng)分析員論文】相關(guān)文章:
工業(yè)控制的常規(guī)應(yīng)用-計(jì)算機(jī)系統(tǒng)分析員論文12-04
寫計(jì)算機(jī)論文11-15
計(jì)算機(jī)論文題目11-15
管理措施計(jì)算機(jī)維護(hù)論文論文11-13
網(wǎng)絡(luò)計(jì)算機(jī)安全論文02-26
計(jì)算機(jī)信息安全論文02-11
計(jì)算機(jī)英語(yǔ)論文03-13
計(jì)算機(jī)畢業(yè)論文05-17
計(jì)算機(jī)病毒論文06-20