大內存生產環境tomcat-jvm配置實踐

話不多講,奉上代碼,分享經驗,交流提高!

64G物理內存,8核CPU生產環境tomcat-jvm配置如下:

JAVA_OPTS=-server -XX:MaxMetaspaceSize=4G -XX:ReservedCodeCacheSize=2G 
-XX:+UseG1GC -Xms48G -Xmx48G -XX:MaxGCPauseMillis=200 
-XX:G1HeapRegionSize=8M -XX:InitiatingHeapOccupancyPercent=45 
-XX:+HeapDumpOnOutOfMemoryError -XX:-OmitStackTraceInFastThrow 
-Doracle.jdbc.useNio=false -Dsun.zip.disableMemoryMapping=true 
-Dorg.apache.el.parser.COERCE_TO_ZERO=true 
-Djgroups.bind_addr=0.0.0.0

配置參數逐項說明

編號配置參數參數含義及備注說明
1-server

啟用JVM的“服務器模式”優化,針對長時間運行的應用進行性能優化(如更高的吞吐量、更積極的即時編譯)。適用于生產環境中的服務端應用,一定要作為第一個參數。

2-XX:MaxMetaspaceSize=4G????設置Metaspace(元數據區,替代永久代)的最大大小為4GB,防止類元數據無限制增長導致內存溢出。??注??:Metaspace存放類定義、方法元數據等信息,默認無上限,需監控避免泄漏。
3

-XX:ReservedCodeCacheSize=2G?

?

設置JIT編譯后的本地代碼緩存區大小為2GB,避免大型應用因代碼緩存不足導致性能下降。注??:代碼緩存滿時,JIT可能停止編譯,影響性能。
4-XX:+UseG1GC??啟用G1(Garbage-First)垃圾收集器,適合大堆內存(如48G)和低延遲場景。?特點??:分區域回收,優先處理垃圾最多的區域,減少停頓時間。
5-Xms48G -Xmx48G????設置JVM堆內存的初始值(Xms)和最大值(Xmx)均為48GB,避免堆動態擴容帶來的性能波動。生產建議??:通常建議兩者設為相等,避免堆大小調整導致GC頻繁。
6-XX:MaxGCPauseMillis=200????設定G1垃圾收集器的目標最大停頓時間為200毫秒,JVM會盡量調整GC策略以滿足該目標。權衡??:過低的設置可能導致更頻繁的GC,影響吞吐量。
7-XX:G1HeapRegionSize=8M????設置G1垃圾收集器的內存區域(Region)大小為8MB,較大的Region可能減少內存碎片。
??建議??:通常根據堆大小自動計算,顯式設置需結合應用特性。
8-XX:InitiatingHeapOccupancyPercent=45????當堆內存使用率達到45%時,啟動G1的并發標記周期(Concurrent GC)。
??目的??:盡早回收垃圾,避免堆占用過高時觸發Full GC。
9-XX:+HeapDumpOnOutOfMemoryError????在發生內存溢出(OOM)時自動生成堆轉儲文件(java_pid<pid>.hprof),用于事后分析內存泄漏。??文件位置??:默認在JVM工作目錄,可通過-XX:HeapDumpPath指定路徑。
10-XX:-OmitStackTraceInFastThrow????禁用JVM對頻繁拋出異常的堆棧軌跡優化,確保所有異常都有完整的堆棧信息。??背景??:JVM默認會省略高頻異常(如NullPointerException)的堆棧,可能影響調試。
11-Doracle.jdbc.useNio=false??禁用Oracle JDBC驅動的NIO(非阻塞IO)模式,強制使用傳統IO。??適用場景??:某些舊版本驅動或網絡環境下NIO可能導致問題。
12-Dsun.zip.disableMemoryMapping=true????禁止使用內存映射文件處理ZIP/JAR,改用流式讀取,避免內存映射導致虛擬內存地址耗盡。??典型問題??:處理大量JAR文件時可能出現的OutOfMemoryError: Map failed。
13-Dorg.apache.el.parser.COERCE_TO_ZERO=true????強制將空字符串轉換為數值0(例如,表單提交的空字段解析為0),避免EL表達式類型轉換異常。??示例??:${param.value} 若為空會返回0而非報錯。
14-Djgroups.bind_addr=0.0.0.0??設置JGroups(集群通信庫)綁定所有可用網絡接口(0.0.0.0),確保集群節點間正常通信。??注??:需確保防火墻開放相關端口。

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/81003.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/81003.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/81003.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++函數模板基礎

1 函數模板 1.1 基礎介紹 函數模板是一種特殊的函數定義,它允許你創建通用的函數,這些函數可以處理多種不同的數據類型,而不需要為每種數據類型都編寫一個單獨的函數。 在 C++ 里,函數模板的格式包含模板聲明與函數定義兩部分,其基本格式如下: template <typename…

mangodb的數據庫與集合命令,文檔命令

MongoDB的下載安裝與啟動&#xff0c; 一、MongoDB下載安裝 1. 官網下載 打開官網&#xff1a;https://www.mongodb.com/try/download/community選擇&#xff1a; 版本&#xff08;Version&#xff09;&#xff1a;選最新版或者根據需要選舊版。平臺&#xff08;OS&#xff0…

flink端到端數據一致性

這里有一個注意點&#xff0c;就是flink端的精準一次 1.barrier對齊精準和一次非對齊精準一次 對比?? ??維度????Barrier 對齊的精準一次????Barrier 非對齊的精準一次????觸發條件??需等待所有輸入流的 Barrier 對齊后才能觸發檢查點 收到第一個 Barrier …

4月29號

級別越大,字體越小. CSS樣式控制: 例如把日期設為灰色字體

PHP代碼-服務器下載文件頁面編寫

內部環境的服務資源下載頁面有訪問需求&#xff0c;給開發和產品人員編寫一個簡潔的下載頁面提供資源下載。直接用nginxphp的形式去編寫了&#xff0c;這里提供展示index.php文件代碼如下&#xff1a; <?php // 配置常量 define(BASE_DIR, __DIR__); // 當前腳本所在目錄作…

MySQL基礎關鍵_001_認識

目 錄 一、概述 1.數據庫&#xff08;DB&#xff09;分類 &#xff08;1&#xff09;關系型數據庫 &#xff08;2&#xff09;非關系型數據庫 2.數據庫管理系統&#xff08;DBMS&#xff09; 3.SQL &#xff08;1&#xff09;說明 &#xff08;2&#xff09;分類 二、…

Shell、Bash 執行方式及./ 執行對比詳解

Shell、Bash 執行方式及./ 執行對比詳解 在 Linux 和 UNIX 系統的使用過程中&#xff0c;Shell 腳本是實現自動化任務、系統管理的重要工具。而在執行 Shell 腳本時&#xff0c;我們常常會用到bash命令以及./的執行方式&#xff0c;這兩種執行方式看似相似&#xff0c;實則存在…

P1494 [國家集訓隊] 小 Z 的襪子 Solution

Description 給定序列 a ( a 1 , a 2 , ? , a n ) a(a_1,a_2,\cdots,a_n) a(a1?,a2?,?,an?)&#xff0c;有 q q q 次查詢&#xff0c;每次查詢給定 ( l , r ) (l,r) (l,r). 你需要求出 2 ∑ i ≤ i < j ≤ r [ a i a j ] ( r ? l ) ( r ? l 1 ) \dfrac{2\sum…

解決vue3 路由query傳參刷新后數據丟失的問題

前言&#xff1a;在頁面刷新的時候&#xff0c;路由query數據會被清空&#xff0c;網上很多方法說query傳參可以實現&#xff0c;反正我是沒有實現 思路&#xff1a;將數據保存到本地&#xff0c;通過 “ &#xff1f;” 進行判斷是否有數據&#xff0c;頁面銷毀的時候刪除本地…

IIC小記

SCL 時鐘同步線&#xff0c;由主機發出。 當SCL為高電平&#xff08;邏輯1&#xff09;時是工作狀態&#xff0c;低電平&#xff08;邏輯0&#xff09;時是休息狀態。SCL可以控制通信的速度。 SDA 數據收發線 應答位&#xff1a;前八個工作區間是一個字節&#xff0c;在SCL…

Linux[開發工具]

vim(多模式編輯器) vim是一個多模式的編譯器!!命令模式是核心 vim 文件名 (數字)(進入編輯,光標處在第幾行) esc切換模式 shift; >:(:wq保存并退出) 命令模式: 鍵盤的輸入,默認被當做命令來看待 gg:光標快速定位到最開始 shiftgG:股那個表快速定位到最結尾 nshiftgG:光標…

hutools工具類中isNotEmpty與isNotBlank區分

基于以下兩種情況。在判斷的變量是String類型時&#xff0c; 判斷是否為空&#xff0c;推薦使用isNotBlank(). 1. isNotEmpty 不會驗證str中是否含有空字符串&#xff0c;而 isNotBlank方法會驗證 public static boolean isNotEmpty(CharSequence str) {return false isEmpty…

算法相關概念

1 算法概述 1.1 算法概念 算法是特定問題求解步驟的描述&#xff0c;也是獨立存在的一種解決問題的思想和方法 對于算法而言&#xff0c;實現他的編程語言無關緊要&#xff0c;重要的是思想和方法&#xff01;&#xff01;&#xff01; 公式&#xff1a;程序算法數據結構&a…

數據庫基礎與核心操作:從概念到實戰的全面解析

目錄 1 基本概念2 基本操作2.1 DCL2.2 DDL2.3 DML2.4 DQL(高級查詢) 3 高級功能3.1 視圖&#xff08;無參函數&#xff09;3.2 存儲過程(有參函數)3.3 觸發器 4 約束4.1 主鍵約束4.2 UNIQUE KEY&#xff08;唯一鍵約束&#xff09;4.3 FOREIGN KEY&#xff08;外鍵約束&#xf…

打造驚艷的漸變色下劃線動畫:CSS實現詳解

引言&#xff1a;為什么需要動態下劃線效果&#xff1f; 在現代網頁設計中&#xff0c;微妙的交互效果可以顯著提升用戶體驗。動態下劃線特效作為一種常見的視覺反饋方式&#xff0c;不僅能夠引導用戶注意力&#xff0c;還能為頁面增添活力。本文將深入解析如何使用純CSS實現一…

【11408學習記錄】考研英語語法核心:倒裝句考點全解+真題演練

倒裝句 英語語法總結——特殊句式倒裝全部倒裝介詞短語形容詞副詞There be 部分倒裝否定副詞或詞組位于句首only位于句首虛擬條件句省略if 每日一句詞匯第一步&#xff1a;找謂語第二步&#xff1a;斷句第三步&#xff1a;簡化主句定語從句 英語 語法總結——特殊句式 倒裝 …

upload-labs PASS 1-5通關

PASS-01 前端javascript檢查 1&#xff0c;第一個提示javascript對上傳的文件進行審查 2&#xff0c;javascript工作在前端頁面&#xff0c;可以直接刪除具有審查功能的代碼 3&#xff0c;刪除之后再上傳一句話木馬 上傳成功&#xff0c;可以使用蟻劍進行連接&#xff0c;控制網…

GoogleTest:在Ubuntu22.04安裝

1.首先克隆GoogleTest $ mkdir gtest $ cd gtest $ git clone git@github.com:google/googletest.git 克隆后的文件目錄結構為 gtest/googletest$ tree -L 1 ├── build ├── BUILD.bazel ├── ci ├── CMakeLists.txt ├── CONTRIBUTING.md ├── CONTRIBUTORS ├─…

Transformer-LSTM-SVM回歸

題目&#xff1a;Transformer-LSTM-SVM回歸 文章目錄 題目&#xff1a;Transformer-LSTM-SVM回歸前言一&#xff1a;Transformer1. Transformer的原理1.1 Transformer的核心結構1.2 注意力機制1.4 位置編碼1.5 損失函數 2. 完整案例 LSTMSVM 前言一&#xff1a;Transformer 1.…

AI正當時,國內AI HR領先廠商易路如何從“單點突破”到“全面融合”

所謂AI HR?&#xff0c;是指將人工智能&#xff08;AI&#xff09;技術&#xff08;如機器學習、自然語言處理、大數據分析等&#xff09;應用于人力資源管理的各個環節&#xff0c;以提升效率、優化決策并改善員工體驗。典型場景有&#xff1a; 在招聘、考勤、薪酬計算等重復…