馬寧
摘 要:隨著現(xiàn)代計算機(jī)技術(shù)的不斷進(jìn)步,信息管理系統(tǒng)在金融保險業(yè)中取得了廣泛應(yīng)用。然而隨著信息管理系統(tǒng)應(yīng)用的推廣,數(shù)據(jù)量會迅速增長,系統(tǒng)用戶也將不斷增加,功能需求會不斷發(fā)生變更,功能性異常、穩(wěn)定性不足、服務(wù)器效率性低下等問題不斷出現(xiàn)。這就需要對管理信息系統(tǒng)進(jìn)行問題收集、軟件質(zhì)量分析,針對存在的質(zhì)量問題提出解決方案以保證正常的生產(chǎn)活動。X保險公司核心業(yè)務(wù)系統(tǒng)是一個大型金融保險類信息管理軟件平臺,已經(jīng)于2011年推廣上線。該平臺對功能模塊的高效性、穩(wěn)定性、功能準(zhǔn)確性和數(shù)據(jù)的準(zhǔn)確性、及時性、安全性都有著嚴(yán)苛的要求。
關(guān)鍵詞:信息系統(tǒng)結(jié)構(gòu) 軟件質(zhì)量Informix Weblogic
一、課題研究背景及意義
隨著IT技術(shù)的不斷進(jìn)步,信息產(chǎn)業(yè)飛速發(fā)展,計算機(jī)信息系統(tǒng)已經(jīng)廣泛地滲透、應(yīng)用于各個行業(yè)中。保險行業(yè)作為金融經(jīng)濟(jì)體系構(gòu)成的龍頭行業(yè)近年來快速發(fā)展壯大,保險業(yè)當(dāng)前管理的保險客戶數(shù)量、有效保單都以億計。因此,保險行業(yè)在信息化時代中若想保持穩(wěn)步、快速、持續(xù)地發(fā)展,在整個國民經(jīng)濟(jì)中繼續(xù)發(fā)揮重要作用,就必須借助信息技術(shù)的力量實現(xiàn)跨越轉(zhuǎn)型和可持續(xù)發(fā)展。然而隨著信息技術(shù)日益廣泛、深入的應(yīng)用,由于系統(tǒng)設(shè)計缺陷、海量數(shù)據(jù)處理效率、系統(tǒng)安全性等原因帶來的系統(tǒng)問題也逐漸暴露并日益增多。
本課題以本人參與的一項大型核心業(yè)務(wù)系統(tǒng)上線實施以及后期運(yùn)維、優(yōu)化工作作為研究對象,基于ISO9126模型的理論和方法,運(yùn)用操作系統(tǒng)監(jiān)控優(yōu)化、Java虛擬機(jī)優(yōu)化配置、WebLogic中間件的優(yōu)化配置、Informix數(shù)據(jù)庫優(yōu)化等方法和技術(shù),綜合論述如何提高在線生產(chǎn)信息系統(tǒng)的系統(tǒng)性能、提升系統(tǒng)安全性、降低系統(tǒng)設(shè)計存缺陷,實現(xiàn)對系統(tǒng)優(yōu)化的過程改進(jìn)。
二、信息系統(tǒng)結(jié)構(gòu)分析
(一)信息系統(tǒng)結(jié)構(gòu)概念
信息系統(tǒng)體系結(jié)構(gòu)是信息系統(tǒng)各要素按照確定關(guān)系構(gòu)成的系統(tǒng)框架。信息系統(tǒng)體系結(jié)構(gòu)主要包括信息系統(tǒng)的概念結(jié)構(gòu)、基礎(chǔ)設(shè)施架構(gòu)、信息資源結(jié)構(gòu)和軟件架構(gòu)等。在本課題中我們重點關(guān)注的是信息系統(tǒng)的軟件架構(gòu)。
信息系統(tǒng)的軟件架構(gòu)是信息系統(tǒng)中用來管理信息資源,面向企業(yè)業(yè)務(wù)和管理服務(wù)的軟件結(jié)構(gòu),指應(yīng)用程序、技術(shù)和數(shù)據(jù)的相應(yīng)選擇和投資組合的定義,硬件、軟件和通訊的配置等[1]。
(二)X保險公司系統(tǒng)結(jié)構(gòu)模式分析
X保險公司核心業(yè)務(wù)系統(tǒng)基于B/S架構(gòu),用戶通過web瀏覽器訪問X保險公司核心業(yè)務(wù)系統(tǒng)的F5負(fù)載均衡訪問地址,對于各類客戶請求服務(wù)器通過瀏覽器將處理結(jié)果反饋給用戶。
三、X保險公司軟件系統(tǒng)性能評價指標(biāo)體系
1.X保險公司軟件系統(tǒng)性能評價體系
X保險公司軟件系統(tǒng)性能評價指標(biāo)體系包括主機(jī)系統(tǒng)評價指標(biāo)和應(yīng)用軟件用戶體驗評價指標(biāo)兩部分。(1)主機(jī)系統(tǒng)評價指標(biāo)及評價方法:(2)應(yīng)用軟件用戶體驗評價指標(biāo)及評價方法:
2.X保險公司軟件系統(tǒng)性能評價指標(biāo)分析
(一) X保險公司核心系統(tǒng)質(zhì)量問題匯總
系統(tǒng)上線運(yùn)行兩年的時間內(nèi),系統(tǒng)管理員通過對系統(tǒng)監(jiān)測、調(diào)研以及使用JIRA工具收集到的問題進(jìn)行分析,將X保險公司核心系統(tǒng)存在的主要問題歸類為:功能性問題、可靠性問題、效率性問題。
(二)導(dǎo)致X保險公司核心系統(tǒng)質(zhì)量問題的因素分析
1.功能性問題因素分析。導(dǎo)致軟件系統(tǒng)功能性問題的原因主要包括設(shè)計、開發(fā)、測試等方面的因素。功能性問題的產(chǎn)生,多是由于在軟件研發(fā)過程中錯誤的、不符合要求的編碼操作,引入了能夠?qū)е沦|(zhì)量問題的隱患并被傳遞下去而最終觸發(fā)。
X保險公司核心系統(tǒng)功能性質(zhì)量問題的產(chǎn)生存在2個主要因素:問題的引入和問題的傳遞。問題引入階段包括:項目需求、方案設(shè)計、代碼編寫;問題傳遞階段包括:審查、測試、評審驗收等。
2.可靠性、效率性問題因素分析
(1)操作系統(tǒng)。在操作系統(tǒng)的應(yīng)用中,當(dāng)用戶或系統(tǒng)請求對某種資源的需求超過它的可用數(shù)量范圍時,就會出現(xiàn)資源瓶頸。
(2)Java虛擬機(jī)及應(yīng)用配置。①Java虛擬機(jī)介紹。②Java虛擬機(jī)垃圾回收機(jī)制(GC:Garbage Collection):當(dāng)一個對象不再被引用的時候, JVM的一個系統(tǒng)級線程會自動釋放它占領(lǐng)的空間,以便空間被后來的新對象使用。
(3)中間件BEA weblogic。Weblogic 服務(wù)器集群將一組服務(wù)器整合到一起協(xié)同工作,以提供穩(wěn)定、高效、靈活的應(yīng)用服務(wù)品該。服務(wù)器集群對于客戶端的用戶提供統(tǒng)一、簡單的服務(wù)地址和端口;在后臺則管理了多臺服務(wù)器并行地為客戶提供服務(wù),提高了系統(tǒng)的整體處理能力,具備了高可擴(kuò)展性和冗余能力。
(4)informix數(shù)據(jù)庫。Informix數(shù)據(jù)庫是美國InfomixSoftware公司研制的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)。InforMix公司最初在關(guān)系式數(shù)據(jù)庫管理系統(tǒng)(RDBMS)剛剛建立時推出的商業(yè)化數(shù)據(jù)庫產(chǎn)品RDSQL就是領(lǐng)先于市場的,特別是在unix平臺上。 [2]。
(5)Sql Explain 命令。SQL 語句的性能對數(shù)據(jù)庫應(yīng)用系統(tǒng)的影響至關(guān)重要。某條 SQL 語句性能低下,可能會導(dǎo)致整個數(shù)據(jù)庫系統(tǒng)的性能變差。Informix 11.5 中,提供了set explain 命令,用以監(jiān)控數(shù)據(jù)庫系統(tǒng)中 SQL 語句的性能。
(6)數(shù)據(jù)庫索引。索引可以優(yōu)化數(shù)據(jù)查詢效率,提升數(shù)據(jù)庫性能。建立合理的索引,可以通過掃描少量的索引頁和數(shù)據(jù)頁而取得結(jié)果,從而避免全表掃描。
(7)統(tǒng)計更新 (update statistics)。INFORMIX數(shù)據(jù)庫針對每個查詢操作制定優(yōu)化策略的依據(jù)是保存在sysmaster數(shù)據(jù)庫里的統(tǒng)計信息,主要包括記錄數(shù)量、記錄的長度、字段值的分布情況、索引情況等相關(guān)信息。根據(jù)以上信息,INFORMIX數(shù)據(jù)庫可以幫助查詢的執(zhí)行者制定出優(yōu)化的SQL 執(zhí)行策略,例如:數(shù)據(jù)表的查詢順序、索引的使用等。
四、X保險公司核心業(yè)務(wù)系統(tǒng)功能性問題處理方法和改進(jìn)方案
(一)功能性問題處理方法
要解決軟件開發(fā)中由于黑箱開發(fā)方法導(dǎo)致項目失敗的問題,需要建立系統(tǒng)質(zhì)量審計制度,提升項目開發(fā)的透明度。高效的解決辦法是,企業(yè)的層面上建立一套SQA(軟件質(zhì)量保證)制度和小組。[3]
為解決由于版本測試不充分、發(fā)布異常等原因而導(dǎo)致的系統(tǒng)功能問題,X保險公司CCB改進(jìn)了版本測試、發(fā)布管理辦法?;贔irefly工具,對驗收測試、試點運(yùn)行、版本發(fā)布、補(bǔ)丁下發(fā)的流程的操作進(jìn)行了明確定義,規(guī)范了版本號命名規(guī)則,還對權(quán)限控制實施了更加管理。
(二)可靠性、效率性問題處理方法和改進(jìn)方案
1.可靠性、效率性問題改進(jìn)方案
X保險公司的可靠性、效率性問題的主要涉及操作系統(tǒng)、JVM、中間件、數(shù)據(jù)庫四個方面,因此相應(yīng)的改進(jìn)方案也主要從這四個方面提出。
2.操作系統(tǒng)性能優(yōu)化方案
結(jié)合X保險公司核心系統(tǒng)操作系統(tǒng)層面常見問題以及對以上監(jiān)控方法的描述,得到以下系統(tǒng)性能問題監(jiān)控、優(yōu)化的運(yùn)維改進(jìn)方案:
針對X保險公司核心系統(tǒng)各業(yè)務(wù)主機(jī)周期性出現(xiàn)主機(jī)空間不足而導(dǎo)致的服務(wù)異常問題,將系統(tǒng)監(jiān)控系統(tǒng)化,設(shè)計磁盤信息自動監(jiān)控、報警程序如下:
程序腳本中定義了監(jiān)控主機(jī)的IP地址、文件系統(tǒng)、監(jiān)控報警的兩個安全級別5Gb和2.5Gb,即avail不足5Gb時會發(fā)出WARNING警告、當(dāng)avail不足2.5Gb時會發(fā)出URGENT警告;警告由主機(jī)通過郵件發(fā)到管理員電子郵箱。
監(jiān)控程序通過crontab –e 命令設(shè)定為每天8時執(zhí)行一次。
針對X保險公司核心系統(tǒng)各業(yè)務(wù)主機(jī)在業(yè)務(wù)高峰時段經(jīng)常出現(xiàn)CPU idle值偏低的問題,根據(jù)的各主機(jī)操作系統(tǒng)運(yùn)行情況經(jīng)驗值,將系統(tǒng)監(jiān)控系統(tǒng)化,設(shè)計處理器運(yùn)行自動監(jiān)控、報警程序如下:
程序腳本中定義了監(jiān)控主機(jī)的IP地址、監(jiān)控報警的兩個安全級別70和50,即%idle不足70%時會發(fā)出WARNING警告、當(dāng)%idle不足50%時會發(fā)出URGENT警告;警告由主機(jī)通過郵件發(fā)到管理員電子郵箱。
監(jiān)控程序通過crontab –e 命令設(shè)定為每天的業(yè)務(wù)高峰時段9-17間,每半小時執(zhí)行一次。
文件碎片化是指文件無規(guī)則地分散在一個或多個磁盤上,讀取和更新這些文件需要多個磁盤頭運(yùn)動,延長了響應(yīng)時間。因此主機(jī)操作系統(tǒng)性能優(yōu)化方案中還包括使用 fsadm工具對文件系統(tǒng)進(jìn)行碎片整理:
每天21點對/home文件系統(tǒng)中的所有盤區(qū)和目錄進(jìn)行碎片整理。
3.JVM優(yōu)化方案
設(shè)置JVM參數(shù)的原則是要根據(jù)面臨的主要問題調(diào)整參數(shù)配置取值,從而得到解決問題最合適的配置。
A X保險公司核心系統(tǒng)JVM原配置結(jié)果
java –Xmx1800m –Xms1800m–Xss128k -XX:+UseParallelGC-XX:ParallelGCThreads=16。其他采取默認(rèn)設(shè)置。
–Xmx1800m –Xms1800m 配置盡量大的Java Heap來充分利用系統(tǒng)內(nèi)存,-Xms設(shè)置與-Xmx相同,以避免每次垃圾回收完成后JVM重新分配內(nèi)存。
-Xss128k 降低默認(rèn)最大線程棧取值,盡量保證為進(jìn)程對虛擬內(nèi)存空間的需求
-XX:+UseParallelGC采用并行垃圾收集器收集年青代進(jìn)行。
-XX:ParallelGCThreads=16 減少垃圾收集線程的配置值,配置與處理器數(shù)目相等。
4.中間件性能優(yōu)化方案
對于Connection not established問題,通過在JDBC的URL配置中增加IFX_ USE_STRENC參數(shù)解決。
修改前配置為:
jdbc:informix-sqli://ip:port/testdb:informixserver=serverX;NEWLOCA LE=zh_CN,zh_CN;NEWCODESET= gb2312,8859-1,819;
修改后配置為:
jdbc:informix-sqli://ip:port/testdb:inf ormixserver=serverX;NEWLOCALE=zh_ CN,zh_CN;NEWCODESET=gb2312,8859-1,819;IFX_USE_STRENC=true
關(guān)于Initial Capacity和Maximum Capacity的設(shè)置,首先需要考慮能夠分配給某應(yīng)用的connections總數(shù)量,再分配到各個受管server,從而得出Initial Capacity和Maximum Capacity取值。在數(shù)據(jù)庫connection資源充分的情況下,Initial Capacity和Maximum Capacity配置為相同值,Capacity Increment配置為0,即在數(shù)據(jù)源初始化時即將資源全部分配到位,降低容量增長Capacity Increment造成的資源消耗。
5.Informix數(shù)據(jù)庫性能優(yōu)化方案
通過sql監(jiān)測、分析結(jié)果,可以看到創(chuàng)建索引對于優(yōu)化sql性能的顯著效果,不同條件下對于系統(tǒng)資源和時間的消耗相差數(shù)萬倍。因此X保險公司針對不同功能模塊的運(yùn)行環(huán)境、數(shù)據(jù)量、訪問量等情況,建立了大量數(shù)據(jù)索引。
在合理創(chuàng)建索引的基礎(chǔ)上定期對數(shù)據(jù)庫執(zhí)行統(tǒng)計跟新:對表中不帶索引的字段執(zhí)行update statistics medium,每個表執(zhí)行一次。一般情況下缺省參數(shù);對表中帶有索引的字段執(zhí)行update statistics high,每個字段執(zhí)行一次;對表中帶有復(fù)合索引的字段執(zhí)行update statistics low,每個表執(zhí)行一次;對每一個小表執(zhí)行update statistics high。
五、論文主要工作總結(jié)
(一)論文的主要工作
作者在課題研究期間,主要分析、論述了X保險公司核心業(yè)務(wù)系統(tǒng)的系統(tǒng)結(jié)構(gòu);對其存在的系統(tǒng)質(zhì)量問題重點從功能性、可靠性、效率性、安全性四個方面進(jìn)行了論述、分析,通過對操作系統(tǒng)、informix數(shù)據(jù)庫、Java虛擬機(jī)、weblogic中間件的優(yōu)化理論進(jìn)行分析和實踐,研究了unix、linux、jvm、weblogic、informix的配置參數(shù)和性能調(diào)優(yōu)原則、方法,論述了對于該系統(tǒng)優(yōu)化過程,針對不同類型問題給出了優(yōu)化方案,并組織實施了X保險公司核心業(yè)務(wù)系統(tǒng)優(yōu)化調(diào)整工作。
(二)存在的不足及工作展望
本文只是從結(jié)合實際工作,從運(yùn)維的角度,根據(jù)系統(tǒng)改進(jìn)的理論原則,對系統(tǒng)存在的質(zhì)量問題的分析解決過程進(jìn)行概述。但實際上各種涉及系統(tǒng)效率性和可靠性的Unix\Linux、Weblogic、JVM或Informix調(diào)優(yōu)技術(shù)方法,都是基于完整、復(fù)雜的體系理論支撐的。要從以上方面做好信息系統(tǒng)的優(yōu)化、改進(jìn)工作,需要掌握多個門類的專業(yè)知識和理論方法來指導(dǎo)實踐,在實踐過程中驗證理論積累經(jīng)驗,逐步得到優(yōu)化和改進(jìn)系統(tǒng)的科學(xué)方法。
隨著計算機(jī)信息系統(tǒng)深入、廣泛地應(yīng)用,優(yōu)化工作逐漸成為其高效、穩(wěn)定運(yùn)行的基礎(chǔ)和重要保障。在現(xiàn)代的高科技環(huán)境下,操作系統(tǒng)、數(shù)據(jù)庫、中間件、硬件設(shè)備等平臺和工具都在飛速地升級、換代,因此系統(tǒng)優(yōu)化、改進(jìn)工作的內(nèi)容也必將發(fā)生日新月異的變化,并被賦予更重要使命。
參考文獻(xiàn):
[1]湯慧,衛(wèi)紅春,程國建 西北大學(xué)學(xué)報(自然科學(xué)版) 2008年2月,第38卷第l期:43-44
[2]Informix 實用全書 (美)弗蘭納里(Flannery,R.)著:邱仲潘等譯.-北京:電子工業(yè)出版社 2002.1 ,4-8
[3]王安生 過程改進(jìn)方法與實踐案例 清華大學(xué)出版社 2010年11月,82-84