1. 程式人生 > >javaWEB專案效能調優

javaWEB專案效能調優

在工作中難免要維護其他人做的專案。現在遇到一個情況,客戶那裡有 一臺伺服器  200G左右的硬碟,windows server 2003 32位作業系統,同時上面安裝有sqlserver 2000資料庫 個人版。

   由於系統是客戶自己單位使用所以系統併發量並不大,最多了時候也不會超過,300人。系統記憶體有8G。系統上一個tomcat 55 下面運行了四個專案。平時使用者訪問的時候就是感覺速度慢點,其他的沒什麼大問題。但是今年監控的時候發現數據庫 增長迅速。由原來的不到2G增長到了3G多,對於sqlserver 2000 個人版來說首先是資料庫頂不住壓力。在客戶年終頻繁使用的時候系統瞬間崩潰。然後我們只好通知客戶給我們提供高版本的資料庫,我們將資料庫從2000升級到2008 。升級之後資料庫問題解決了。但是使用者頻繁訪問的時候發現系統記憶體只增不減。因為這個差不多是辦公系統。夜間使用者是不會用的。通過Java虛擬機器監控,發現有每次系統存在大量垃圾執行緒。每次垃圾回收之後,效果也不明顯。

 1.記憶體洩露 ,使用者使用過後有大量資料庫連線沒有關閉。

         查詢原始碼發現系統中,由於開發程式人員的繁雜,導致在開發過程中大量資料庫連線沒有關閉。導致大量佔用系統資源

 2. 由於大量在程式碼中使用String 拼裝程式碼 導致監控中發現有大量的String 物件。

         解決方案:將String 變幻成StringBuffer 物件來拼接字串。通過監控發現效果比較明顯。

3.由於系統中資料分析業務複雜,導致大量表間關聯,資料庫執行緩慢

    解決方案:物件對穩定的業務邏輯建立檢視,新增索引,效果最明顯的就是索引了,原來一個將近3分多鐘的查詢操作,優化過後,

   查詢時間不超過15S

4.對不同專案使用不同的Tomcat進行動態記憶體配置。

   一個伺服器可以安裝多個Tomcat 然後根據不用服務的訪問量設定分配的初始化記憶體以及最大化記憶體。這樣可以優化記憶體的利用。