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;">
本站为非盈利网站,如果您喜欢这篇文章,欢迎支持我们继续运营!
本站主要用于日常笔记的记录和生活日志。本站不保证所有内容信息可靠!(大多数文章属于搬运!)如有版权问题,请联系我立即删除:“abcdsjx@126.com”。
QQ: 1164453243
邮箱: abcdsjx@126.com