Websphere性能優(yōu)化
頁(yè)面靜態(tài)方案
通過(guò)IBM Http Server(下文稱為IHS)靜態(tài)頁(yè)面分離技術(shù)與利用WebSpere Application Server(下文稱為WAS)的動(dòng)態(tài)高速緩存(Dynamic Cache)技術(shù)優(yōu)化訪問(wèn)頁(yè)面性能,。客戶端訪問(wèn)靜態(tài)頁(yè)面無(wú)須與后端數(shù)據(jù)交互,,減少了容器與數(shù)據(jù)源的壓力,,從而達(dá)到優(yōu)化系統(tǒng)的性能。
IBM Http Server不但可以作為 WAS 的前一級(jí) Http 請(qǐng)求隊(duì)列的緩沖,減輕WAS的壓力,,還可以利用其靜態(tài)頁(yè)面分離方案減輕部分壓力,。在系統(tǒng)的部署或者構(gòu)建的時(shí)候,我們可以把一些非重要的靜態(tài)頁(yè)面放在 IHS 中,,當(dāng)客戶端發(fā)送請(qǐng)求訪問(wèn)該頁(yè)面資源時(shí),,由IHS直接響應(yīng)請(qǐng)求并將靜態(tài)頁(yè)面資源返回客戶端,無(wú)須再經(jīng)過(guò)WAS,,從而達(dá)到減輕達(dá)到WAS 負(fù)擔(dān)的目的,。
除了IHS靜態(tài)頁(yè)面分離方案,另外還可以利用WAS的動(dòng)態(tài)高速緩存技術(shù),,將J2EE應(yīng)用中靜態(tài)的(Html,、Flash,、Css、Js,、Jpg,、Gif圖片等文件)和動(dòng)態(tài)的(需要與數(shù)據(jù)庫(kù)、Web Service等服務(wù)交互才能得到的數(shù)據(jù))內(nèi)容緩存到應(yīng)用服務(wù)器的JVM中(如:Jsp,、Servlet,、*.do等請(qǐng)求)。在訪問(wèn)相關(guān)被緩存的資源時(shí),,所有的相關(guān)輸出都可以直接從JVM的內(nèi)容中獲得,,而無(wú)須再與數(shù)據(jù)庫(kù)、Web Service,、靜態(tài)文件等交互,,從而有效地提高系統(tǒng)的性能,。 IHS分離靜態(tài)內(nèi)容方案整個(gè)操作過(guò)程主要分3步完成 n 關(guān)閉Was的File Serving Servlet服務(wù) n 重新生成插件(Plugin-cfg.xml) n 修改IHS配置文件并拷貝靜態(tài)文件到指定的目錄
關(guān)閉Was的File Serving Servlet服務(wù) 1) 在Was中部署的Web應(yīng)用中分別找到2個(gè)在/WEB-INF/ 目錄下面的 ibm-web-ext.xmi 文件,。 參考路徑: Ø IBM/WebSphere/AppServer/profiles/節(jié)點(diǎn)/conf/cell/applications/應(yīng)用包名/ deployments/應(yīng)用包名/應(yīng)用包名/WEB-INF/目錄下 Ø IBM/WebSphere/AppServer/profiles/節(jié)點(diǎn)/應(yīng)用安裝部署目錄/應(yīng)用包名/應(yīng)用包名/WEB-INF/目錄下 2) 打開 ibm-web-ext.xmi 文件,找到 fileServingEnabled 屬性項(xiàng),,把它設(shè)為 flase, 默認(rèn)是ture,。找不到該屬性項(xiàng)可直接手工添加(fileServingEnabled="false")。 如:
3) 重啟Was,,重啟完校驗(yàn)配置是否生效,。訪問(wèn)Web應(yīng)用中的靜態(tài)文件,如會(huì)報(bào)404錯(cuò)誤的,,這是正?,F(xiàn)象,表示Was中的 File Serving servle 服務(wù)功能已經(jīng)被關(guān)閉了,。
重新生成插件(Plugin-cfg.xml) Ø 登陸Was控制臺(tái),,環(huán)境->更新全局 Web 服務(wù)器插件配置->確定,重新生成插件。 Ø 服務(wù)器->Web服務(wù)器->選擇相應(yīng)的web服務(wù)器->生產(chǎn)播件->傳播插件 Ø 檢查配置文件是否正取,。 打開IHS/Plugins/conf/web服務(wù)名/plugin-cfg.xml.找到UriGroup項(xiàng),,檢查其配置。如Uri中的配置還是指定為 Name=”/*”,,須注釋該行配置,,否則IHS會(huì)將所有的請(qǐng)求都返回給WAS處理,那么所有訪問(wèn)靜態(tài)內(nèi)容都會(huì)報(bào)404錯(cuò)誤,??赏ㄟ^(guò)手工配置相應(yīng)無(wú)須過(guò)濾的Uri。 具體參考配置如下:
修改IHS配置文件并拷貝靜態(tài)文件到指定的目錄 1) 在IHS的默認(rèn)路徑,,打開 \IBM HTTP Server\conf\http.conf文件,,找到如下配置:
可將 D:\IBM\HTTPServer/htdocs/en_US 設(shè)置為新的目錄,,自定義新的靜態(tài)頁(yè)面目錄。 我們將非重要的靜態(tài)文件放到E:\PageFiles\2009-12-11\目錄下,,配置如下:
2) 把應(yīng)用中的靜態(tài)文件拷到 上述在Httpd.conf配置文件定義好的路徑中去,。 最后可根據(jù)上面的配置,將靜態(tài)文件都是從Was應(yīng)用中拷貝到E:\PageFiles\2009-12-11\目錄中,。 3) 重新啟動(dòng)IHS
通過(guò)頁(yè)面再次訪問(wèn)靜態(tài)頁(yè)面,,此時(shí)不會(huì)再出現(xiàn)404錯(cuò)誤了,IHS接到請(qǐng)求訪問(wèn)靜態(tài)頁(yè)面內(nèi)容時(shí),,會(huì)直接讀取E:\PageFile\2009-12-11\返回頁(yè)面請(qǐng)求,,通過(guò)該配置可以進(jìn)一步減輕Was的壓力。 啟用WAS動(dòng)態(tài)高速緩存啟用動(dòng)態(tài)高速緩存服務(wù)同樣也分為3步 n 在WAS控制臺(tái)上啟用動(dòng)態(tài)高速緩存服務(wù) n 為應(yīng)用服務(wù)器配置 Servlet 高速緩存 n cachespec.xml配置文件
在WAS控制臺(tái)上啟用動(dòng)態(tài)高速緩存服務(wù): 1) 登錄Was的管理控制臺(tái) 2) 在管理控制臺(tái)中,,啟用“服務(wù)器->應(yīng)用程序服務(wù)器->Server1->容器服務(wù)->動(dòng)態(tài)高速緩存服務(wù)” (勾上‘在服務(wù)器啟動(dòng)時(shí)啟用服務(wù)’) 3) 確定并保存配置
為應(yīng)用服務(wù)器配置 Servlet 高速緩存: 1) 在管理控制臺(tái)中,,啟用“服務(wù)器->應(yīng)用程序服務(wù)器->Server1->Web容器設(shè)置->Web容器-> 啟用servlet 高速緩存 (勾上‘啟用servlet 高速緩存’) 2) 確定并保存配置
cachespec.xml配置文件 1) 在應(yīng)用目錄下WEB-INF/下增加cachespec.xml配置文件,通過(guò)該文件指定緩存對(duì)象,。
2) 在完成前三步后,,在服務(wù)器上安裝Cache Monitor組件,來(lái)監(jiān)控剛才配置的動(dòng)態(tài)高速緩存(Dynamic
Cache)是否成功運(yùn)行,。 3) 部署完畢后,重啟整個(gè)WAS,。 4) 測(cè)試校驗(yàn)部署是否生效,。 分別訪問(wèn): Ø http://127.0.0.1/index.jsp Ø http://127.0.0.1/index.jsp?123
通過(guò)訪問(wèn) http://127.0.0.1/cachemonitor 就可以查看到index.jsp已進(jìn)行了緩存 如圖所示:
以上的兩種技術(shù)一種是基于WEB服務(wù)器一級(jí)別的優(yōu)化,另一種則是基于Websphere應(yīng)用服務(wù)器上的優(yōu)化,,合理的使用兩種技術(shù),,可更有效的幫助應(yīng)用系統(tǒng)提高性能。 雖然在 WAS V6 以上的版本中,,Web Container 對(duì)于 Http 請(qǐng)求采用了非阻塞I/O 方式,,使得IHS 的這一功能作用已經(jīng)非常弱化,但在大并發(fā)訪問(wèn)的情況下,,還是建議大家使用IHS+WAS架構(gòu),,使用IHS緩沖客戶端請(qǐng)求與并且利用其得靜態(tài)頁(yè)面技術(shù),直接返回靜態(tài)資源,,減輕應(yīng)用服務(wù)器壓力,;開啟Was動(dòng)態(tài)高速緩存,緩存一些變動(dòng)較少的Jsp,、Servlet等資源,,進(jìn)一步有效的優(yōu)化系統(tǒng)的性能,。分別將IHS與WAS 部署到兩臺(tái)物理主機(jī)上,可以讓在系統(tǒng)在性能擴(kuò)展上更加靈活,,利用垂直擴(kuò)展優(yōu)化可更有效的提高系統(tǒng)的性能,。 |
|