java商城项目性能调优_javaWEB项目性能调优
在工作中難免要維護其他人做的項目?,F(xiàn)在遇到一個情況,客戶那里有 一臺服務(wù)器? 200G左右的硬盤,windows server 2003 32位操作系統(tǒng),同時上面安裝有sqlserver 2000數(shù)據(jù)庫 個人版。
由于系統(tǒng)是客戶自己單位使用所以系統(tǒng)并發(fā)量并不大,最多了時候也不會超過,300人。系統(tǒng)內(nèi)存有8G。系統(tǒng)上一個tomcat 55 下面運行了四個項目。平時用戶訪問的時候就是感覺速度慢點,其他的沒什么大問題。但是今年監(jiān)控的時候發(fā)現(xiàn)數(shù)據(jù)庫 增長迅速。由原來的不到2G增長到了3G多,對于sqlserver 2000 個人版來說首先是數(shù)據(jù)庫頂不住壓力。在客戶年終頻繁使用的時候系統(tǒng)瞬間崩潰。然后我們只好通知客戶給我們提供高版本的數(shù)據(jù)庫,我們將數(shù)據(jù)庫從2000升級到2008 。升級之后數(shù)據(jù)庫問題解決了。但是用戶頻繁訪問的時候發(fā)現(xiàn)系統(tǒng)內(nèi)存只增不減。因為這個差不多是辦公系統(tǒng)。夜間用戶是不會用的。通過Java虛擬機監(jiān)控,發(fā)現(xiàn)有每次系統(tǒng)存在大量垃圾線程。每次垃圾回收之后,效果也不明顯。
1.內(nèi)存泄露 ,用戶使用過后有大量數(shù)據(jù)庫連接沒有關(guān)閉。
查找源代碼發(fā)現(xiàn)系統(tǒng)中,由于開發(fā)程序人員的繁雜,導(dǎo)致在開發(fā)過程中大量數(shù)據(jù)庫連接沒有關(guān)閉。導(dǎo)致大量占用系統(tǒng)資源
2. 由于大量在代碼中使用String 拼裝代碼 導(dǎo)致監(jiān)控中發(fā)現(xiàn)有大量的String 對象。
解決方案:將String 變幻成StringBuffer 對象來拼接字符串。通過監(jiān)控發(fā)現(xiàn)效果比較明顯。
3.由于系統(tǒng)中數(shù)據(jù)分析業(yè)務(wù)復(fù)雜,導(dǎo)致大量表間關(guān)聯(lián),數(shù)據(jù)庫運行緩慢
解決方案:對象對穩(wěn)定的業(yè)務(wù)邏輯建立視圖,添加索引,效果最明顯的就是索引了,原來一個將近3分多鐘的查詢操作,優(yōu)化過后,
查詢時間不超過15S
4.對不同項目使用不同的Tomcat進行動態(tài)內(nèi)存配置。
一個服務(wù)器可以安裝多個Tomcat 然后根據(jù)不用服務(wù)的訪問量設(shè)置分配的初始化內(nèi)存以及最大化內(nèi)存。這樣可以優(yōu)化內(nèi)存的利用。
總結(jié)
以上是生活随笔為你收集整理的java商城项目性能调优_javaWEB项目性能调优的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 部队军官手机使用管理规定
- 下一篇: java邮件客户端源代码,JAVA基于B