




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、Tomcat優化JVM運行時內存區域Tomcat優化JVM運行時內存區域目錄Tomcat內存溢出Tomcat性能優化hn-kehongJava體系介紹Java運行時內存區域目錄Tomcat內存溢出Tomcat性能優化hn-kehonTomcat內存溢出硬件、網絡帶寬以及服務端操作系統的選擇都會影響Tomcat的性能。hn-kehong1.OutOfMemoryError: Java heap space Java堆溢出 2.OutOfMemoryError: PermGen space 永久保存區域溢出Tomcat內存溢出硬件、網絡帶寬以及服務端操作系統的選擇都Tomcat性能優化hn-keh
2、ong1)OutOfMemoryError:Java heap spaceJVM堆的設置是指java程序運行過程中JVM可以調配使用的內存空間的設置.JVM在啟動的時候會自動設置Heap size的值,其初始空間(即-Xms)是物理內存的1/64,最大空間(-Xmx)是物理內存的1/4。可以利用JVM提供的-Xmn -Xms -Xmx等選項可進行設置。Heap size 的大小是Young Generation 和TenuredGeneraion 之和。Tomcat性能優化hn-kehong1)OutOfMemoTomcat性能優化hn-kehong2)OutOfMemoryError:Per
3、mGen space PermGen space的全稱是Permanent Generation space,是指內存的永久保存區域,這塊內存主要是被JVM存放Class和Meta信息的,Class在被Loader時就會被放到PermGen space中,它和存放類實例(Instance)的Heap區域不同,GC(Garbage Collection)不會在主程序運行期對PermGen space進行清理,所以如果你的應用中有很CLASS的話,就很可能出現PermGen space錯誤,這種錯誤常見在web服務器對JSP進行pre compile的時候。如果你的WEB APP下都用了大量的第三
4、方jar, 其大小超過了jvm默認的大小(4M)那么就會產生此錯誤信息了。Tomcat性能優化hn-kehong2)OutOfMemoTomcat性能優化硬件、網絡帶寬以及服務端操作系統的選擇都會影響Tomcat的性能。hn-kehong由于Tomcat 的運行依賴于 JVM,Tomcat的調整主要分為兩種(1)外部性能調整 調整非Tomcat 組件,如 Tomcat 運行的操作系統和運行Tomcat 的 Java 虛擬機。(2)自身性能調整 修改 Tomcat 自身的參數,調整 Tomcat 配置文件中的參數。Tomcat性能優化硬件、網絡帶寬以及服務端操作系統的選擇都Tomcat性能優化
5、外部性能調整 hn-kehongTomcat 本身不能直接在計算機上運行,需要依賴于硬件基礎之上的操作系統和一個Java 虛擬機。因次可以通過對JVM的優化,來提高Tomcat的運行效率1)JVM動態庫版本的選擇client : 針對桌面應用優化 特點:加載速度快server: 針對服務器應用優化 特點:加載速度較慢,運行速度快注意! jvm client 中能運行的程序有可能在jvm server中運行出錯 ,所以這樣的話最好在開發、測試階段都使用jvm server ,保持和服務器相同。因此種問題目前不太常見,或者可在部署前利用server版進行驗證測試后部署。Tomcat性能優化 外部性
6、能調整 hn-kehongTomcat性能優化 外部性能調整 hn-kehongTomcat 本身不能直接在計算機上運行,需要依賴于硬件基礎之上的操作系統和一個Java 虛擬機。因次可以通過對JVM的優化,來提高Tomcat的運行效率JVM動態庫版本切換方法 修改 %JAVA_HOME%/jre/lib/i386/jvm.cfg 文件Tomcat性能優化 外部性能調整 hn-kehongTomcat性能優化 外部性能調整 hn-kehong2)JVM內存設置可以通過 java -XmxXXXXM version 命令 測試JVM支持的最大內存 如果執行正常就表示指定的內存大小可用,否則會打印錯
7、誤信息JVM初始化堆的大小 -Xms: 虛擬機在啟動時向系統申請的內存的大小。使用于應用程序在大負載的情況下會急劇地占用更多的內存,如果虛擬機啟動時設置使用的內存比較小而在這種情況下有許多對象進行初始化,虛擬機就必須重復地增加內存來滿足使用。一般把-Xms 和-Xmx 設為一樣大。JVM堆的最大值 Xmx : 受限于系統可使用的物理內存,使用于數據量較大的應用程序會使用持久對象,內存使用有可能迅速增長當應用程序需要的內存超出堆的最大值時虛擬機就會提示內存溢出,并且導致應用服務崩潰。一般建議堆的最大值設置為可用內存的最大值的 80%。Tomcat性能優化 外部性能調整 hn-kehongTomc
8、at性能優化 外部性能調整 hn-kehong2)JVM內存設置 Tomcat 默認可以使用的內存為128MB; 初始空間(即-Xms)是物理內存的1/64,最大空間(-Xmx)是物理內存的1/4。startup.bat啟動方式: 在文件tomcat_home/bin/catalina.bat 最前面添加 set JAVA_OPTS=-Xms128m -Xmx350m windows服務啟動方式 執行的是bintomcat.exe.他讀取注冊表中的值,而不是catalina.bat的設置. 修改注冊表HKEY_LOCAL_MACHINESOFTWAREApache Software Found
9、ationProcrun 2.0Tomcat6ParametersJavaOptions 重起tomcat服務,設置生效。Tomcat安裝方式:1.“開始”-“Apache Tomcat 6”-“Configure Tomcat”2.選擇 Java 標簽,在“Initial memory pool (初始內存)”和“Maximum memory pool (最大內存)”中輸入你需要的內存參數即可。 Tomcat性能優化 外部性能調整 hn-kehongTomcat性能優化 外部性能調整 hn-kehong2)JVM內存設置 要加“m”說明是MB,否則就是KB了,在啟動tomcat時會報內存不足
10、。-Xms:初始值-Xmx:最大值-Xmn:最小值Java 提供的垃圾回收機制。 虛擬機的堆大小決定了虛擬機花費在收集垃圾上的時間和頻度。如果堆很大,那么完全垃圾收集就會很慢,但是頻度會降低。如果堆的大小和內存的需要一致,完全收集就很快,但是會更加頻繁。調整堆大小的的目的是最小化垃圾收集的時間,以在特定的時間內最大化處理客戶的請求。Tomcat性能優化 外部性能調整 hn-kehongTomcat性能優化 外部性能調整 hn-kehong5)Tomcat與web服務器整合雖然 Tomcat 也可以作 Web 服務器,但處理靜態 html 的速度比不上 Apache, 且其作為 Web 服務器的
11、功能遠不如 Apache,因此我們想把 Apache 和 T omcat 集成起來,將 html與 JSP 的功能部分進行明確分工,讓Tomcat只處理 JSP 部分,他的由 Apache、IIS 等這些 Web 服務器處理,由此大大節省了 Tomcat 有限的工作“線程” 。6)Tomcat負載均衡 可以通過配置 T omcat 與 Apache 進行負載平衡, 來提高 T omcat 的服務性能。Tomcat性能優化 外部性能調整 hn-kehongTomcat性能優化 自身性能優化 hn-kehong1)禁用 DNS 查詢 當 Web 應用程序記錄客戶端的信息時,它也會記錄客戶端的 IP
12、 地址或者通過域名服務器查找機器名轉換為 IP 地址。 DNS 查詢需要占用網絡,并且可能從很多很遠的服務器或者不起作用的服務器上去獲取對應的 IP, 這樣會消耗一定的時間。為了消除 DNS 查詢對性能的影響,可以關閉 DNS 查詢。方法是修改 server.xml 文件中的 enableLookups 參數值。關閉不僅節省了網絡帶寬、查詢時間和內存,而且更小的流量也會使日志數據變得更少, 顯而易見也節省了硬盤空間。對流量較小的站點來說禁用 DNS 查詢可能沒有大流量站點的效果明顯。Tomcat性能優化 自身性能優化 hn-kehongTomcat性能優化 自身性能優化 hn-kehong2)
13、線程數配置 基本上可以解決連接數過大引起的死機。具體數值可跟據實際情況設置maxThreads / 最大線程數minSpareThreads / 初始化時創建的線程數maxSpareThreads / 一旦創建的線程超過這個值,Tomcat 就會關閉不再需要 的 socket 線程。acceptCount / 指定當所有可以使用的處理請求的線程數都被使用時,可 以放到處理隊列中的請求數,超過這個數的請求將不予處理 connnectionTimeout/ 網絡連接超時時間,單位毫秒。設置為 0 表示永不超時, 這樣設置有隱患的。通常可設置為 30000 毫秒Tomcat性能優化 自身性能優化 h
14、n-kehongTomcat性能優化 自身性能優化 hn-kehong2)線程數配置 配置公用線程池 多個 connector 公用 1 個線程池。Tomcat性能優化 自身性能優化 hn-kehongJava虛擬機hn-kehongJava不僅僅是一門編程語言,它還是一個由一系列計算機軟件和規范形成的技術體系。提供完整的用于軟件開發和跨平臺部署的支持環境,并廣泛用于嵌入式系統、移動終端、企業服務器和大型機等各種場合。 Sun官方定義的Java技術體系包括以下幾個部分: 認識Java體系java程序設計語言各種硬件平臺上的Java虛擬機Class文件格式Java API類庫來自商業機構和開源社
15、區的第三方Java類庫Java虛擬機hn-kehongJava不僅僅是一門編程語言Java虛擬機hn-kehongJava技術體系所包括的內容Java虛擬機hn-kehongJava技術體系所包括的內容Java虛擬機hn-kehong Java運行時內存區域Java虛擬機hn-kehong Java運行時內存區域Java虛擬機hn-kehong 程序計數器一塊較小的內存空間。它的作用可以看做是當前線程所執行的字節碼的行號指示器?!本€程私有“的內存:Java虛擬機的多線程是通過線程輪流切換并分配處理器執行時間的方式來實現,在任何一個確定的時刻,一個處理器只會執行一條線程中的指令。為了線程切換后能
16、恢復到正確的執行位置,每條線程都需要有一個獨立的程序計數器,各條線程之間的計數器互不影響,獨立存儲。唯一一個在Java虛擬機規范中沒有規定任何OutOfMemoryError情況的區域。Java虛擬機hn-kehong 程序計數器一塊較小的內Java虛擬機hn-kehong Java虛擬機?!熬€程私有”,生命周期與線程相同。 虛擬機棧描述的是Java方法執行的內存模型:每個方法被執行的時候都會同時創建一個棧幀(Stack Frame,方法運行期的基礎數據結構)用于存儲局部變量表、操作棧、動態鏈接、方法出口等信息。每一個方法被調用直至執行完成額過程,就對應著一個棧幀在虛擬機中從入棧到出棧的過程。
17、兩種異常狀況:StackOverflowError異常:線程請求的棧深度大于虛擬機所允許的深度OutOfMemoryError異常:如果虛擬機??梢詣討B擴展,當擴展時無法申 請到足夠的內存Java虛擬機hn-kehong Java虛擬機?!熬€程Java虛擬機hn-kehong本地方法棧同虛擬機棧類似虛擬機棧為虛擬機執行Java方法服務本地方法棧為虛擬機使用的Native方法服務虛擬機歸法中對本地方法棧中使用的語言、使用方式與數據接口并沒有強制規定,因此具體的虛擬機可以自由實現它。有的虛擬機(Sun HotSpot虛擬機)直接把本地方法棧和虛擬機棧合二為一。兩種異常狀況StackOverflow
18、Error異常:線程請求的棧深度大于虛擬機所允許的深度OutOfMemoryError異常:如果本地方法棧可以動態擴展,當擴展時無法 申請到足夠的內存Java虛擬機hn-kehong本地方法棧同虛擬機棧類似Java虛擬機hn-kehongJava堆Java堆是Java虛擬機所管理的內存中最大的一塊,也是GC管理的主要區域。Java堆是被所有線程共享的一塊內存區域,在虛擬機啟動時創建。該內存區域唯一的目的就是存放對象實例,幾乎所有的對象實例都在這里分配內存 Java虛擬機規范規定,Java堆可以處于物理上不連續的內存空間中,只要邏輯上連續的即可。在實現時,既可以實現成固定大小的,也可以是可擴展的,當前主流的虛擬機都是按照可擴展來實現的(通過-Xmx和-Xms控制)OutOfMemoryError:如果在堆中沒有內存完成實例分配,并且堆也無法再擴展時Java虛擬機hn
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業內部如何建立高效的醫療信息安全事件處理機制
- 辦公自動化與AI加密區塊鏈技術的安全保障
- 醫療健康數據與疾病預測的精準性
- 健康數據驅動的醫療支出決策模式
- 從醫療事故看醫患信任的脆弱性
- 醫療行業數字化轉型數據驅動的醫療安全策略
- 以人為本探索更佳的醫療商業服務模式
- 醫療安全文化在??谱o理教育中的重要性
- 八年級生物上冊知識點總結模版
- 醫療事故預防與風險控制教育
- 港口建設項目風險評估報告
- 中國傳統文化“二十四節氣”與美術學科的融合
- 傳媒公司主播離職協議書
- 環氧樹脂畢業設計
- 水電廠汛期安全培訓
- 代謝性堿中毒護理課件
- 第四單元 舞蹈音樂天地-二拍子 四拍子舞曲 童聲合唱《閑聊波爾卡》 課件 2022-2023學年粵教版初中音樂九年級下冊
- 辦稅服務外包投標方案(完整版)
- 氫氧化鈉介紹msds
- 青甘大環線路線
- 通信基站維保投標方案(技術方案)
評論
0/150
提交評論