關(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)大幅度提高了。
?????
???