性能測試——記XX銀行保全項目性能問題分析優化

記XX銀行保全項目性能問題分析優化javascript

     數據庫問題也許是大部分性能問題的關注點,可是JAVA應用與數據庫交互的關節,JDBC 就像是咱們人體的上半身跟下半身的腰椎,支持上半身,協調下半身運動的重要支撐點。假如腰椎出問題了,在強壯的上半身或者下半身也是隻能說身體癱瘓着。java

    就如數據庫設計很優良或者JAVA應該設計開發代碼寫得很是優化,可是在JAVA應用代碼與數據庫之間的橋樑沒設計銜接好,彼此之間的數據交互溝通不暢,那性能問題仍是很是嚴重的。如資源型的內存泄漏、系統頻繁拋出各類異常等如今致使影響系統性能。數據庫

   前段時間客戶方一套系統運行了四年多了,數據庫大部分表數據量確實很大 百萬以上數據量,而這段時間卻頻繁內存溢出,須要進行測試診斷問題。該項目是兩家公司合做開發設計的,都有性能測試人員,公司要我爭取拿下該項目測試。因而過去該項目進行前期的測試調研等工做,當我準備過去寫測試計劃、測試方案、優化方案時,客戶方的領導說另一家公司在多久前都已經寫好相似的文檔了,鬱悶。性能優化

   因而我着手開始寫這些文檔,主要是寫優化方案,只能根據日常的優化經驗等寫出大概的解決方案,可是這樣不能對症下藥也許客戶方不承認,因而我詢問了開發設計人員性能問題大概現狀描述性,針對性的整理的優化方案;數據庫設計

    看了一些代碼、日誌、設計文檔等資料大概明白問題點了,日誌設計問題、異常處理問題、數據庫設計問題等設計問題。寫成文檔形式等發送給客戶方後,就這樣把該項目的測試任務接下來了。其實並非哪些文檔做用多大,只是該項目我之前幫忙優化過問題,那是今年四月份我剛來咱們公司,這個項目也是一直出現問題,那時是另一家公司也就是咱們合做該項目公司的人員作的或者說如今跟咱們競爭性能測試的公司作的,那時四月份他們測試該項目很長時間, 可是測試過程當中一直出現內存溢出一直找不出問題,請了他們公司的專家,好像也是沒看出問題點,擱了好久,咱們公司老總就讓我過去試試看,結果是一些很簡單的問題,他們沒注意相當注代碼問題,因此一直找不出問題,就那樣那時那個項目我承接過來測試了一週把問題找出來並說明了優化方案解決了。也許是那時有幫忙解決該問題緣故,此次我寫好了哪些文檔發給客戶方後,客戶領導知道是我來負責測試的就直接點名我來作了。性能

   測試工做順利展開,搭建測試環境、測試需求調研等作好後開始測試。參數調整確實有問題,可是不是主要問題,雖然發現該項目的JVM調整不符合邏輯,可是這個只是指標不治本,第一週工做就先把JVM設置合理性化優化好,第二週測試把部分數據庫問題拋出來了,不少是數據庫設計不合理以及不走索引等問題,由於此次目的是找出JAVA代碼問題,因此數據庫問題我暫時優化下不會形成干擾我定位JAVA問題就行。通過兩週的普查測試對比,發現公共問題是 應用服務調用數據庫數據時出現問題。也就是JDBC死鎖問題。測試

    可是通過審覈代碼發現這個問題以如今的項目組人員沒辦法優化,由於如今該項目組結項了沒有太多人力資源協助優化,這時最鬱悶的事情,並且該問題從設計就錯了,歷史性問題沒人敢接或者說這個項目原本是另一家公司作的,可是那批人員走了,如今雖然有問題誰敢去接,接了優化面積一大片出現故障沒人賠得起。這纔是我最鬱悶的地方。雖然問題是定位清楚也說明優化方法了,可是項目領導內心都清楚這件事情優化的份量。優化

    沒辦法狀況下,我只能最小化優化,最大化調整,看能不能調整部分技術代碼,不改變業務實現邏輯方式下暫時解決,看了兩天的代碼,發如今數據抽取轉換時char 轉爲string 多餘了,並且有多家了循環判斷,那時也只是猜想。因而改了下,讓開發人員幫忙編寫成CLASS 給我,從新部署好後進行優化先後測試對比,也許是瞎貓碰到死老鼠,測試先後性能優化對比響應時間從大部分交易響應時間平均6秒多,降爲2.5秒如下。spa

     在穩定性測試後發現還有部份內存泄漏,發現是資源調用沒釋放問題,跟開發人員說怎麼改後從新測試,內存使用下降了,可是仍是沒辦法解決,由於最大問題是JDBC的實現方式問題,發了郵件說明問題後,沒人敢解決。我寫了測試報告說明了問題優化方式後,離開該項目,可是響應時間等問題解決了,內存泄漏問題也不會那麼嚴重了,預計不會每週重啓了,至少能夠成三到四周了設計

相關文章
相關標籤/搜索