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