关于tomcat的内存参数优化——如何配置catalina.sh的JAVA_OPTS?

白色玫瑰 程序猿

时间: 2023-07-11 阅读: 1 字数:8582

{}
export JAVA_OPTS="-server -Xms4096m -Xmx4096m -Xss256k -XX:PermSize=256m -XX:MaxPermSize=4096m -XX:NewSize=512m -XX:MaxNewSize=2048m -XX:+DisableExplicitGC -XX:+AggressiveOpts -X...

以下是物理内存为16G的建议配置:

export JAVA_OPTS="-server -Xms4096m -Xmx4096m -Xss256k -XX:PermSize=256m -XX:MaxPermSize=4096m -XX:NewSize=512m -XX:MaxNewSize=2048m -XX:+DisableExplicitGC -XX:+AggressiveOpts -XX:+UseBiasedLocking -XX:MaxTenuringThreshold=31 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -Djava.awt.headless=true"

<table> <tbody> <tr> <td style="vertical-align:top;width:216.6pt;"> 项目 </td> <td style="vertical-align:top;width:73.7pt;"> 参考值 </td> <td style="vertical-align:top;width:500.4pt;"> 说明 </td> </tr> <tr> <td style="vertical-align:top;width:216.6pt;"> -server </td> <td style="vertical-align:top;width:73.7pt;"> 无 </td> <td style="vertical-align:top;width:500.4pt;"> Tomcat以server模式运行,将拥有更大、更高的并发处理能力,更快更强捷的JVM垃圾回收机制,可以获得更多的负载与吞吐量,生产环境必须加上。 </td> </tr> <tr> <td style="vertical-align:top;width:216.6pt;"> -Xms </td> <td style="vertical-align:top;width:73.7pt;"> 4096m </td> <td style="vertical-align:top;width:500.4pt;"> 推荐为可用内存的1/4的80%~100%,16G内存,配置为4G </td> </tr> <tr> <td style="vertical-align:top;width:216.6pt;"> -Xmx </td> <td style="vertical-align:top;width:73.7pt;"> 4096m </td> <td style="vertical-align:top;width:500.4pt;"> -Xms –Xmx 一般的要将-Xms和-Xmx选项设置为相同堆内存分配 (访问量比较大时设为一致) </td> </tr> <tr> <td style="vertical-align:top;width:216.6pt;"> -Xss </td> <td style="vertical-align:top;width:73.7pt;"> 256k </td> <td style="vertical-align:top;width:500.4pt;"> 指设定每个线程的堆栈大小 一般是128k或者256k(这个值注意默值512K,有时会出现这个过小,tomcat起不来情况。所有根据的项目设置,反正越小越好) </td> </tr> <tr> <td style="vertical-align:top;width:216.6pt;"> -Xmn </td> <td style="vertical-align:top;width:73.7pt;"> 256m </td> <td style="vertical-align:top;width:500.4pt;"> 一般来说, -Xmn128-256m就够了 </td> </tr> <tr> <td style="vertical-align:top;width:216.6pt;"> -XX:PermSize </td> <td style="vertical-align:top;width:73.7pt;"> 256m </td> <td style="vertical-align:top;width:500.4pt;"> 非堆的初始值[物理内存的1/64] </td> </tr> <tr> <td style="vertical-align:top;width:216.6pt;"> -XX:MaxPermSize </td> <td style="vertical-align:top;width:73.7pt;"> 4096m </td> <td style="vertical-align:top;width:500.4pt;"> 非堆的最大值[物理内存的1/4] </td> </tr> <tr> <td style="vertical-align:top;width:216.6pt;"> -XX:NewSize </td> <td style="vertical-align:top;width:73.7pt;"> 512m </td> <td style="vertical-align:top;width:500.4pt;">

</td> </tr> <tr> <td style="vertical-align:top;width:216.6pt;"> -XX:MaxNewSize </td> <td style="vertical-align:top;width:73.7pt;"> 2048m </td> <td style="vertical-align:top;width:500.4pt;">

</td> </tr> <tr> <td style="vertical-align:top;width:216.6pt;"> -XX:+DisableExplicitGC </td> <td style="vertical-align:top;width:73.7pt;">

</td> <td style="vertical-align:top;width:500.4pt;"> 程序代码中不允许有显示的调用”System.gc()” </td> </tr> <tr> <td style="vertical-align:top;width:216.6pt;"> -XX:+AggressiveOpts </td> <td style="vertical-align:top;width:73.7pt;">

</td> <td style="vertical-align:top;width:500.4pt;"> 启用这个参数,则每当JDK版本升级时,你的JVM都会使用最新加入的优化技术(如果有的话) </td> </tr> <tr> <td style="vertical-align:top;width:216.6pt;"> -XX:+UseBiasedLocking </td> <td style="vertical-align:top;width:73.7pt;">

</td> <td style="vertical-align:top;width:500.4pt;"> 启用一个优化了的线程锁,我们知道在我们的 </td> </tr> <tr> <td style="vertical-align:top;width:216.6pt;"> -XX:MaxTenuringThreshold </td> <td style="vertical-align:top;width:73.7pt;"> 31 </td> <td style="vertical-align:top;width:500.4pt;"> 设置垃圾最大年龄 </td> </tr> <tr> <td style="vertical-align:top;width:216.6pt;"> -XX:+UseConcMarkSweepGC </td> <td style="vertical-align:top;width:73.7pt;">

</td> <td style="vertical-align:top;width:500.4pt;"> 即CMS gc 我们知道频频繁的GC会造面JVM的大起大落从而影响到系统的效率,因此使用了CMS GC后可以在GC次数增多的情况下,每次GC的响应时间却很短,比如说使用了CMS GC后经过jprofiler的观察,GC被触发次数非常多,而每次GC耗时仅为几毫秒。 </td> </tr> <tr> <td style="vertical-align:top;width:216.6pt;"> -XX:+CMSParallelRemarkEnabled </td> <td style="vertical-align:top;width:73.7pt;">

</td> <td style="vertical-align:top;width:500.4pt;"> 在使用UseParNewGC 的情况下, 尽量减少 mark 的时间 </td> </tr> <tr> <td style="vertical-align:top;width:216.6pt;"> -XX:+UseCMSCompactAtFullCollection </td> <td style="vertical-align:top;width:73.7pt;">

</td> <td style="vertical-align:top;width:500.4pt;"> 在使用concurrent gc 的情况下, 防止 memoryfragmention, 对live object 进行整理, 使memory 碎片减少 </td> </tr> <tr> <td style="vertical-align:top;width:216.6pt;"> -XX:LargePageSizeInBytes </td> <td style="vertical-align:top;width:73.7pt;"> 128m </td> <td style="vertical-align:top;width:500.4pt;"> 指定 Java heap的分页页面大小 </td> </tr> <tr> <td style="vertical-align:top;width:216.6pt;"> -XX:+UseFastAccessorMethods </td> <td style="vertical-align:top;width:73.7pt;">

</td> <td style="vertical-align:top;width:500.4pt;"> get,set方法转成本地代码 </td> </tr> <tr> <td style="vertical-align:top;width:216.6pt;"> -XX:+UseCMSInitiatingOccupancyOnly </td> <td style="vertical-align:top;width:73.7pt;">

</td> <td style="vertical-align:top;width:500.4pt;">

</td> </tr> <tr> <td style="vertical-align:top;width:216.6pt;"> -Djava.awt.headless </td> <td style="vertical-align:top;width:73.7pt;"> true </td> <td style="vertical-align:top;width:500.4pt;">

</td> </tr> <tr> <td style="vertical-align:top;width:216.6pt;">

</td> <td style="vertical-align:top;width:73.7pt;">

</td> <td style="vertical-align:top;width:500.4pt;">

</td> </tr> </tbody> </table>nn > 原文地址:https://blog.csdn.net/zhaofuqiangmycomm/article/details/82142910?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168904455816800211547306%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=168904455816800211547306&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-11-82142910-null-null.142^v88^control_2,239^v2^insert_chatgpt&utm_term=java%E4%BC%98%E5%8C%96

本文章网址:https://www.sjxi.cn/detil/0e55941df74944348de504bf34add187

最新评论

当前未登陆哦
登陆后才可评论哦

湘ICP备2021009447号

×

(穷逼博主)在线接单

QQ: 1164453243

邮箱: abcdsjx@126.com

前端项目代做
前后端分离
Python 爬虫脚本
Java 后台开发
各种脚本编写
服务器搭建
个人博客搭建
Web 应用开发
Chrome 插件编写
Bug 修复