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