作者:tacy lee
有用Websphere做過項(xiàng)目的人可能都知道,ibm一般都建議在Websphere前面加一個IHS來做webserver,據(jù)說這樣性能會提高30%左右,這樣說是否有道理呢,下面我做了一個簡單的測試來驗(yàn)證:
測試環(huán)境:
硬件:
應(yīng)用服務(wù)器:Dell6600
壓力測試客戶端:自用筆記本(T2050 1.6G)
軟件:
系統(tǒng):CentOS 4.4
Websphere 6.0.2.17+IHS6.0.2.17(部署在同一臺機(jī)器上)
首先配置好Websphere和IHS,發(fā)布一個簡單的測試應(yīng)用,用loadrunner來測試一下不同的組合看看(錄制一個打開首頁就可以了),下面是我的測試數(shù)據(jù):
測試方法 | 每秒處理請求數(shù) | 響應(yīng)時間 | 服務(wù)器CPU |
直接請求Websphere | 4600/s | 0.013s | 28% |
通過IHS轉(zhuǎn)發(fā)請求 | 6800/s | 0.009s | 26% |
數(shù)據(jù)顯示,這還不是一點(diǎn)點(diǎn)提升,竟然快接近50%,把靜態(tài)資源放置到IHS中測試了一把,基本和通過IHS轉(zhuǎn)發(fā)差不多,稍微有些提升,不過放到IHS中可以方便Cache(Edge Server就包括了Caching Proxy component)
下面記錄一下如何放置靜態(tài)資源文件到IHS中:
1、打開Plugins中的plugin-cfg.xml,修改如下內(nèi)容:
<UriGroup Name="default_host_eos_URIs">
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/*.jsp"/>
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/*.do"/>
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/eosmgr/*"/>
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/axis/*"/>
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/axis2/*"/>
<Uri AffinityCookie="JSESSIONID" AffinityURLIdentifier="jsessionid" Name="/eoshome_deploy/*"/>
</UriGroup>
也可以通過修改WEB-INF下ibm-web-ext.xmi中的fileServingEnabled為false,然后重新生成plugin-cfg.xml,但是我試了一下好像不好用。
另外Websphere(fixpacks 5.1.1.17, 6.0.2.25 and 6.1.0.15)之后的版本給Webcontainer增加了一個自定義參數(shù)
com.ibm.ws.webcontainer.disallowAllFileServing
設(shè)定它為true產(chǎn)生同樣的效果(而且他會覆蓋ibm-web-ext.xmi中的設(shè)置)。
2、拷貝你的所有資源文件到IHS的Root Directory中
3、重啟IHS