隨筆-61  評(píng)論-13  文章-19  trackbacks-0

          關(guān)于軟件優(yōu)化,硬件升級(jí)方面的:

          至強(qiáng)64位雙CPU
          2G內(nèi)存 DDR2 533

          tomcat5.5默認(rèn)配置
          java5.0默認(rèn)配置
          mysql5.0默認(rèn)配置

          帶寬為10M獨(dú)享.
          如何改變軟件方面的配置要求。優(yōu)化方面的資料。硬件方面要升級(jí)哪些? 以達(dá)到支持大約在線用戶為最高2000人。

          處理:
          ???????2000 人在線,每秒鐘請(qǐng)求數(shù)應(yīng)該在幾百次或者更低些的程度,并發(fā)數(shù)不會(huì)超過100(平均10妙請(qǐng)求一次),使用普通的 PC 機(jī),每秒鐘也能夠處理上百次的請(qǐng)求;
          ???????緩存優(yōu)化:解決性能問題首先想到的就是緩存,在 Web 應(yīng)用中有很多緩存的方式,可以緩存到 Web 層的 servletContext 中,也可以緩存到業(yè)務(wù)層中,甚至可以在數(shù)據(jù)庫(kù)中建立冗余。而生成靜態(tài)頁面是一種極端的做法,一般來說會(huì)增加復(fù)雜性,同時(shí)可能會(huì)對(duì)靈活性和可維護(hù)性造成很大傷害。緩存的要點(diǎn)在于命中率,命中率低的東西不應(yīng)該緩存,除非對(duì)內(nèi)存的價(jià)格不做考慮。總結(jié)起來設(shè)計(jì)上就兩句話,使用 N 層結(jié)構(gòu),合理緩存。根據(jù)程序的需要,適當(dāng)是使用緩存機(jī)制;
          ???????程序進(jìn)行優(yōu)化方法,比如:每次查找部分記錄,而不是全部查出來,這樣既可以減輕服務(wù)器的負(fù)擔(dān),也可以減少網(wǎng)絡(luò)傳輸量; 對(duì)于系統(tǒng)中的數(shù)據(jù)庫(kù)連接一定要進(jìn)行妥善的處理; 對(duì)需要用 scrchrnozied 的地方要用,但是有些地方可以不用同步化的,這個(gè)對(duì)速度影響也很大;從代碼入手,優(yōu)化程序,在數(shù)據(jù)持久化上進(jìn)行改進(jìn),采用成熟的庫(kù)訪問對(duì)象(Data Access Object)設(shè)計(jì)模式也會(huì)節(jié)省你的服務(wù)器開銷。
          ???????硬件升級(jí):硬件方面還不行,硬盤最好搞陣列,還可以再來一個(gè)服務(wù)器,弄個(gè)負(fù)載均衡,由兩個(gè)服務(wù)器來處理用戶的請(qǐng)求,apache必然是要用到的,他將擋在tomcat前處理http請(qǐng)求。
          ???????注意:在硬件足夠強(qiáng)大的時(shí)候,將 web 與 db 分兩臺(tái)服務(wù)器來做,只會(huì)降低效率,因?yàn)榫W(wǎng)絡(luò)編組的成本要比本地內(nèi)存中的復(fù)制高幾個(gè)數(shù)量級(jí)。同樣道理,負(fù)載均衡也只會(huì)導(dǎo)致更復(fù)雜的結(jié)構(gòu),會(huì)引起更多的問題,并產(chǎn)生更低于下的效率。將一個(gè)應(yīng)用分布于多臺(tái)機(jī)器的唯一理由,就是由于一臺(tái)機(jī)器根本頂不住,不得不分。
          ???????環(huán)境優(yōu)化:調(diào)Tomcat、JVM的Heap大小等參數(shù)做一些優(yōu)化, Tomcat的虛擬內(nèi)存管理有最大值限制,可以并發(fā)運(yùn)行多個(gè)Tomcat來均衡負(fù)載,tomcat5.5默認(rèn)配置? ==>改了JAVA_OPTS沒有?開大內(nèi)存 既java_opts= -Xms1024m -Xmx1024m ;? java5.0默認(rèn)配置??? ==>升級(jí)一下到最大的小版本6.0?升級(jí)處理
          ????? 系統(tǒng)內(nèi)存測(cè)試:
          ???? (1)自己測(cè)試:參考tomcat,jvm,mysql優(yōu)化方面的資料。測(cè)試如下操作出錯(cuò):
          C:\>java -Xms536870932 -Xmx536870912
          Error occurred during initialization of VM
          Incompatible initial and maximum heap sizes specified至強(qiáng)64位雙CPU,原則上面來說64位的CPU應(yīng)當(dāng)可以用到無限大的內(nèi)存了,也還是理論上的了。可以java -Xmx2000M -version這樣一路加上去試試看你的可以加到多大。
          ???? (2)工具測(cè)試:? 壓力測(cè)試:對(duì)應(yīng)用系統(tǒng)進(jìn)行性能采樣于監(jiān)控,(Wily有一套產(chǎn)品可以在運(yùn)行期進(jìn)行調(diào)優(yōu),但我沒有用過),我用的P6Spy,加MS的那個(gè)壓力測(cè)試工具,也有D用LoadRunner來跑一跑,在SQL語句這個(gè)地方有太多的名堂可做了。
          ?????? 建議軟件方面:
          ?? ??? a、軟件配置 Apache2.2.0 + mod_ajp + jrockit-R26.0.0-jdk1.5.0_04+? Tomcat5.5.15 (啟多個(gè))+apr1.2.2 .
          ?????? b、內(nèi)存建議4g以上 。 tomcat的內(nèi)存參數(shù)使用 set JAVA_OPTS=%JAVA_OPTS%-Xms1024m -Xmx1024m? (內(nèi)存2g的話,建議set JAVA_OPTS=%JAVA_OPTS%-Xms512m -Xmx512m).
          ????? c、tomcat5.5版本的性能已經(jīng)大幅度提高了。


          ?????
          ???

          posted on 2006-03-17 23:29 xnabx 閱讀(443) 評(píng)論(0)  編輯  收藏 所屬分類: Java
          主站蜘蛛池模板: 镇远县| 固安县| 宾阳县| 安远县| 太谷县| 崇阳县| 孝义市| 嘉荫县| 太康县| 泌阳县| 汉中市| 永胜县| 新晃| 岗巴县| 泰州市| 响水县| 朝阳县| 闵行区| 新营市| 始兴县| 嵊州市| 台东市| 平原县| 喀喇| 定陶县| 抚顺市| 蕉岭县| 巴林左旗| 合作市| 崇仁县| 达孜县| 舒兰市| 福州市| 广元市| 开远市| 拉孜县| 盈江县| 赫章县| 澄城县| 延长县| 临潭县|