J2ee常見性能瓶頸

導讀:
  二、J2EE應用常見性能瓶頸:
  低效率的Servlet、JSP、EJB、Java類和方法
  運行緩慢的SQL語句,低效率的EJB/DB交互
  應用服務器配置和部署問題
  RMI和對象串行問題
  低效率的第三方組件
  JVM 堆使用和配置問題
  操作系統參數和配置
  硬件模塊限制
  集羣配置和負載平衡問題
  三、性能管理方法論
  J2EE應用性能的有效管理應該符合如下的思路,保證關鍵業務應用的最佳性能,實施有效的變化管理,優化變更管理流程。
  1.前瞻性保障
  首先,在應用開發階段,通過有效手段和方法保證代碼質量優化,最大程度地保證代碼的性能和效率達到最優,並杜絕內存泄漏等潛在的危險代碼。
  其次,在應用部署上線階段,通過壓力測試、應用優化、配置調優等使應用運行在最佳狀態。
  在應用運行維護階段,對生產系統運行狀況和性能進行不間斷的監控,及時發現對業務會產生影響的問題,並對歷史狀態進行分析,預測未來發展趨勢,評估當前系統性能,確定是否存在潛在的問題,消除因爲嚴重的性能問題對業務造成的不可彌補的影響,保證系統的可用性和高性能。
  所有以上的各種措施和工作都是爲了保障最終系統正常高效運行,將所有可能的問題避免和解決在問題發生之前,可以稱之爲“前瞻性保障”(ProActive)工作。
  2.響應式管理
  如果系統一旦出現異常,發生性能問題或由於業務增長出現性能瓶頸時,應對出現的情況,能迅速給予響應,則需要做到以下的要求:
  首先出現問題後,能夠快速識別問題的種類,定位問題的根源,深入診斷,並減少解決問題的時間,將影響和損失降到最低程度。
  其次,對存在性能瓶頸的地方能提供有效的優化手段,能通過測試對系統給出性能評價視圖,給出採取下一步措施的建議:一是通過優化提高對現有資源的利用,保護已有投資;二是當現有資源不能滿足日益增長的業務的需要時,在充分優化的基礎上進行適當擴展,消除性能瓶頸。
  四、J2EE性能管理流程
  爲保障J2EE應用系統的高可用性和高性能,對系統開發、上線和運行等各個環節需要建立起包括問題發現、故障診斷、問題解決和日常維護等在內的完整的管理流程,並藉助相關管理工具,實現管理職能。
  問題發現
  在開發階段,需要測試和發現代碼中的錯誤和性能問題;在上線前性能測試中,需要發現和評估組成業務的各關鍵組件的執行快慢問題,是否滿足設計和業務需求,及時對有問題的組件進行修改或調整;
  在運維時期,系統管理員需要藉助相關的工具,發現和預測系統運行環境中主機、數據庫、應用服務器和J2EE應用中可能出現的問題。管理內容包括主機及中間件、J2EE應用、相關的數據庫實例管理等,具體操作包括對系統和數據庫、應用服務器狀態信息收集,以及相關性分析和門限值比較,並在此基礎上判斷系統目前的狀況。
  故障診斷
  一旦發現問題或潛在的故障因素,管理人員需要藉助相關工具進行深入的分析,確定產生這些問題的根本原因,能在所有系統組件和代碼中進行深入診斷,分析哪一個服務或組件慢,分析過程中需要深入考查JAVA代碼、SQL語句等諸多因素,通過管理工具提供的專業化智能化診斷方法快速判斷問題。
  問題解決
  系統維護和管理員需要藉助相應的管理工具解決問題,如SQL優化、Java代碼優化等等。管理工具中內置的專家建議可以大大降低對管理人員的技能要求,提高工作效率。
  綜合以上內容,對J2EE應用性能進行有效管理應該貫穿在開發、測試、優化、上線、監控、診斷、修改調優、再監控等各個環節,並形成閉環結構的完整方法論,徹底解決J2EE應用的性能問題。
  五、Quest解決方案:http://www.quest.com/application%5Fassurance、http://www.quest.com/performance_management/
  Quest針對這些情況相應地給出完整的J2EE應用性能優化管理解決方案,以便及時發現系統中存在的問題以及潛在的問題,並對J2EE應用(包括數據庫)進行優化管理。基於Quest的產品建立發現問題,診斷問題、解決問題的管理方法。同時結合Quest Software的顧問服務,對J2EE系統進行全方位的優化,保證系統的高性能、高可用性。
  Quest提供如下的相關工具:
  JProbe:調優和測試工具,可對Java代碼做內存泄漏(Memory Leaks)、數據競爭(Data Race)、性能瓶頸等的分析。
  PerformaSure:Java應用性能監控和診斷工具,可基於用例對J2EE分佈式系統進行全面的分析,包括J2EE應用服務器、Web服務器、數據庫服務器、網絡負載。
  Foglight:實現應用系統管理,對構成應用系統的各個技術層次進行監控和分析。監控的內容包括網絡設備、操作系統、數據庫、J2EE中間件、Web服務器、客戶端性能、應用業務等,爲企業用戶提供了一個完整的統一的性能管理平臺。
  優勢主要從六個方面去看:
  完整的應用性能和可用性管理解決方案:從開發、測試、驗收、試運行和上線閉環的完整方案
  生產環境下7*24內存泄漏檢測功能:Foglight在生產環境下可以發現各個URL的內存泄漏對象;
  強大的數據庫管理和SQL優化功能:與Quest數據庫管理的產品集成很好,Quest在數據庫管理方面的專業就不用我多說了;
  獨一無二的中間件實時監控和建議功能:Spotlight for WLS/WAS實時監控非常直觀,而且提供專家級建議;
  業界領先的企業級應用性能瓶頸診斷功能:PerformaSure用來診斷組件級瓶頸、方法級瓶頸、Portal瓶頸和SQL瓶頸非常簡單、專業;
  卓而不羣的自動化內存泄漏規避和診斷功能:JProbe是業界公認的自動內存泄漏分析工具領頭羊;
  靈活自動的深度性能瓶頸分析功能:JProbe的性能瓶頸分析和線程死鎖分析精確到代碼行級。

本文轉自
http://brighter.javaeye.com/blog/224999
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章