【摘 要】本文通過對(duì)WebSphere集群實(shí)施過程的描述以及部分參數(shù)的調(diào)整,闡釋了WebSphere應(yīng)用程序服務(wù)器的系統(tǒng)架構(gòu),及其參數(shù)調(diào)整。文中所部署的系統(tǒng),上線后至本文完成,保持了7*24小時(shí)無故障運(yùn)行,根據(jù)實(shí)際測(cè)試及用戶反饋系統(tǒng)性能有了成倍的提高,充分顯示了集群的高可用和擴(kuò)展性。
【關(guān)鍵詞】中間件;WebSphere集群;優(yōu)化
隨著java技術(shù)的廣泛應(yīng)用,中間件平臺(tái)逐漸成為應(yīng)用系統(tǒng)的重要組成部分,進(jìn)而對(duì)中間件系統(tǒng)的高可用和整體性能提出了很高的要求。本文主要討論新疆電信XX平臺(tái)部署使用WebSphere應(yīng)用程序服務(wù)器集群及其調(diào)優(yōu)的經(jīng)驗(yàn)。
一、業(yè)務(wù)挑戰(zhàn)
XX平臺(tái),應(yīng)用程序A、B、C部署在單機(jī)環(huán)境,操作系統(tǒng)為 Linux,中間件為WebSphere 6.1 應(yīng)用程序服務(wù)器,隨著業(yè)務(wù)開展,用戶數(shù)不斷增加,逐漸出現(xiàn)了頁面打開緩慢,中間件頻繁掛起的問題,影響用戶使用業(yè)務(wù),有必要進(jìn)行軟硬件升級(jí)并保證系統(tǒng)至少能達(dá)到99%的可用性。
二、系統(tǒng)部署方案的選擇
方案一是主機(jī)數(shù)量為3臺(tái),分別部署應(yīng)用程序A、B、C到三臺(tái)主機(jī)上,每臺(tái)主機(jī)承載一個(gè)應(yīng)用程序,一臺(tái)主機(jī)發(fā)生故障不影響其他業(yè)務(wù),但發(fā)生故障主機(jī)所承載業(yè)務(wù)失效。不產(chǎn)生冗余,服務(wù)器MTBF60000小時(shí)無故障。方案二是主機(jī)數(shù)量為4臺(tái),應(yīng)用程序A、B、C部署到三臺(tái)主機(jī)組成的WebSphere集群,一臺(tái)主機(jī)發(fā)生故障不影響任何業(yè)務(wù),出現(xiàn)故障后脫離集群,恢復(fù)后重新加入集群即可,另增加一臺(tái)服務(wù)器作為部署管理器和HTTP服務(wù)器。有冗余產(chǎn)生,服務(wù)器MTBF180000小時(shí)無故障。對(duì)比以上方案,方案2采用集群環(huán)境后,系統(tǒng)的高可用性有明顯提高,且部署使用了獨(dú)立的Http服務(wù)器,隱蔽了系統(tǒng)的邏輯架構(gòu),相比WebSphere自帶的http服務(wù),IHS服務(wù)器更加健壯、安全。
三、規(guī)劃系統(tǒng)架構(gòu)
主機(jī)iisp.dm 安裝部署管理器(概要文件類型為deployment manager)、IHS(IBM HTTP Server);主機(jī)iisp.cust、iisp.rpt、iisp.ap分別安裝應(yīng)用程序服務(wù)器(概要文件類型為應(yīng)用程序服務(wù)器)。整個(gè)環(huán)境iisp.dm將作為主控節(jié)點(diǎn),管理iisp.cust、iisp.rpt、iisp.ap上的應(yīng)用程序服務(wù)器實(shí)例。
四、各節(jié)點(diǎn)軟件的安裝
系統(tǒng)環(huán)境為操作系統(tǒng):RedHat Enterprise Linux Advanced Server 4.7 32bit;WebSphere 版本:WebSphere 6.1.0.27ND;安裝文件所在掛載點(diǎn)/opt/wasinstall。在iisp.dm上安裝部署管理器Delplyment Manger;在iisp.dm上安裝HIS;在iisp.dm上安裝IHS插件(Plugins);安裝程序服務(wù)器 iisp.rpt、iisp.cust、iisp.ap;創(chuàng)建集群:訪問網(wǎng)址http://iisp.dm:9060/admin 輸入用戶名/密碼,進(jìn)入集成管理控制臺(tái),依次點(diǎn)擊導(dǎo)航欄->服務(wù)器->集群,點(diǎn)擊新建,輸入集群名稱,選擇成員,成員為之前增加iisp.rpt、iisp.cust、iisp.ap,分配權(quán)重,每個(gè)服務(wù)器被訪問到的概率為(單個(gè)權(quán)重/所有服務(wù)器權(quán)重之和),此處所有權(quán)重均輸入2 ,則訪問的概率為2/(2+2+2)=1/3,保存配置,可在應(yīng)用程序服務(wù)器列表中查看到新增的集群應(yīng)用程序服務(wù)器;部署應(yīng)用程序:進(jìn)入集成管理控制臺(tái),依次點(diǎn)擊導(dǎo)航欄->應(yīng)用程序->安裝新的應(yīng)用程序,選擇應(yīng)用程序包和上下文根,并上傳,管理應(yīng)用程序模塊,選擇cluster和webserver,點(diǎn)擊下一步并保存,開始安裝,部署完成后,保存,可在iisp.rpt、iisp.cust、iisp.ap的應(yīng)用程序目錄看到生成了應(yīng)用程序文件,點(diǎn)擊服務(wù)器->Webserver 勾選webserver1 ,點(diǎn)擊“傳播插件”可將配置文件信息傳送給plugin的配置文件中,實(shí)現(xiàn)負(fù)載均衡;測(cè)試。
五、優(yōu)化
中間件的調(diào)優(yōu)是一個(gè)復(fù)雜的過程,涉及到應(yīng)用程序開發(fā)、數(shù)據(jù)庫、硬件、操作系統(tǒng),本文篇幅所限,僅討論操作系統(tǒng)以及WebSphere軟件內(nèi)部參數(shù)的調(diào)整方法。調(diào)優(yōu)的根本就是要使得用戶等待時(shí)間盡量減少,根據(jù)經(jīng)驗(yàn),優(yōu)化后隊(duì)列容量應(yīng)該類似于漏斗,也就是越靠近用戶接口,容量越大,后面部分略小于或等于前面的容量。對(duì)于具體每個(gè)組件容量大小的設(shè)置,WebSphere提供了系統(tǒng)監(jiān)控工具Tivoli Performance Viewer。訪問集成管理控制臺(tái)->監(jiān)視和調(diào)整->性能查看器->當(dāng)前活動(dòng) 選擇需要關(guān)注的參數(shù)例如JVM運(yùn)行時(shí)、線程池、應(yīng)用程序等,然后點(diǎn)擊“查看模塊”,各組件當(dāng)前運(yùn)行數(shù)值可作為優(yōu)化依據(jù)。根據(jù)監(jiān)控獲得的結(jié)果調(diào)整系統(tǒng)參數(shù):一是連接參數(shù)。根據(jù)需要修改配置文件/opt/IBM/HTTPServer/conf/httpd.conf中IHS的的連接參數(shù)。需要注意的是,參數(shù)配置中ServerLimit>=MaxClient/ThreadPerChild,而且MaxClients必須是ThreadsPerChild的整數(shù)倍。二是修改IHS參數(shù)。將參數(shù) KeepAlive 設(shè)置為off,可以避免保持連接造成的隊(duì)列響應(yīng)緩慢,可以根據(jù)需要進(jìn)行調(diào)整。三是Web container。實(shí)現(xiàn)J2EE體系結(jié)構(gòu)中Web組件協(xié)議的容器。這個(gè)協(xié)議規(guī)定了一個(gè)Web組件運(yùn)行時(shí)的環(huán)境,包括安全、一致性、生命周期管理、事務(wù)、配置和其它的服務(wù)。一般略小于或者等于WebServer的并發(fā)連接數(shù)。在集群環(huán)境中,以本文為例,每個(gè)節(jié)點(diǎn)的WebContainer 最大大小可設(shè)置為600/3=200。進(jìn)入集成管理控制臺(tái)->服務(wù)器->應(yīng)用程序服務(wù)器-><集群服務(wù)器> ->線程池調(diào)整WebContainer 。四是連接池參數(shù)。連接池可復(fù)用到數(shù)據(jù)庫的連接,尤其在創(chuàng)建連接需要花費(fèi)資源的情況時(shí)。進(jìn)入集成管理控制臺(tái)->資源>JDBC->數(shù)據(jù)源->數(shù)據(jù)源名稱->連接池屬性調(diào)整連接池大小以及超時(shí)策略。五是ORB參數(shù)。ORB對(duì)象請(qǐng)求代理,在一個(gè)面向?qū)ο蟮姆植际接?jì)算環(huán)境,一個(gè)對(duì)象請(qǐng)求代管者(ORB)可以為應(yīng)用程序、服務(wù)器、網(wǎng)絡(luò)設(shè)施之間分發(fā)消息提供關(guān)鍵通信設(shè)施。進(jìn)入集成管理控制臺(tái)->服務(wù)器->應(yīng)用程序服務(wù)器-><集群服務(wù)器>->容器服務(wù)->ORB服務(wù),修改ORB參數(shù)。六是更改JVM堆大小。服務(wù)器→應(yīng)用程序服務(wù)器→<集群服務(wù)器>→進(jìn)程定義→Java虛擬機(jī)。修改初始堆大小為512M ,最大為1024M,JVM堆大小的調(diào)整,可根據(jù)JVM垃圾回收的頻率進(jìn)行調(diào)整,調(diào)整垃圾回收的頻率,可有效提高系統(tǒng)的性能,減少OUT OF MEMORY錯(cuò)誤的出現(xiàn)。七是開啟servlet高速緩存。進(jìn)入集成管理控制臺(tái)->服務(wù)器->應(yīng)用程序服務(wù)器-><集群服務(wù)器>->Web容器 勾選“啟用servlet高速緩存”。
六、結(jié)語
總之,通過對(duì)WebSphere集群的使用,其穩(wěn)定、可擴(kuò)展的特性讓人印象深刻但部署過程稍顯繁雜,部署完成后,仍需針對(duì)部分參數(shù)以實(shí)際業(yè)務(wù)情況進(jìn)行調(diào)整來獲得最佳性能,同時(shí)因?yàn)橄到y(tǒng)架構(gòu)的整體變化導(dǎo)致原軟件開發(fā)中未涉及到的問題凸顯,如應(yīng)用程序中,訂單的序列化在從單機(jī)環(huán)境升級(jí)為集群環(huán)境后,原應(yīng)用中的序列化功能失效,造成業(yè)務(wù)異常,只能通過其它方式來解決,因此整體系統(tǒng)在升級(jí)到集群環(huán)境前,必須進(jìn)行充分完整的測(cè)試。
參 考 文 獻(xiàn)
[1]范玉珍,顧毓清.基于WebSphere平臺(tái)的Web Service概念實(shí)踐[J].計(jì)算機(jī)科學(xué).2003(4)
[2]胡敏.WebSphere受推崇的奧秘[J].中國計(jì)算機(jī)用戶.2004(43)
[3]胡傳福.基于WebSphere的生產(chǎn)管理系統(tǒng)[J].五邑大學(xué)學(xué)報(bào)(自然科學(xué)版).2005(3)
[4]林躍進(jìn).使用WebSphere平臺(tái)設(shè)計(jì)Web服務(wù)結(jié)構(gòu)框架的研究[J]. 遼寧師專學(xué)報(bào)(自然科學(xué)版).2006(3)
[5]劉英,馮云.WebSphere Application Server內(nèi)存溢出問題初探[J].甘肅科技.2008(15)
[6]李一鳴,張劍,李哲,黃鑫.WebSphere性能問題的發(fā)現(xiàn)及其處理對(duì)策[J].電腦知識(shí)與技術(shù).2009(6)
[7]毛翼飛,宋桂娟.一個(gè)基于WebSphere的信息設(shè)備管理系統(tǒng)[J].工業(yè)控制計(jì)算機(jī).2010(3)