JVM常用调优参数以及linux服务器启动项目命令jvm参数调优案例

摘要:
对于这两个块,调整参数如下:1.调整参数初始化堆大小:-Xms256M//256M是指特定大小。初始化堆大小=最大堆大小。在某种程度上,可以在GC之后重新分配内存。最大堆大小:-Xmx256M//初始化堆大小=最大堆大小。在某种程度上,可以在GC之后重新分配内存。年轻一代大小:-Xmn512M//设置堆中年轻一代的大小。因此,我们应该增加年轻一代的规模,减少老一辈的规模。

我们知道:jvm的内存存储以及内存分配,主要集中在方法区、堆。针对这两块,给出的调优参数如下:

 

一:调优参数初始化堆大小(有的叫jvm内存): -Xms256M //256M指的是具体大小,初始化堆大小=最大堆大小,可以在一定程度上在GC后重新分配内存

最大堆大小(有的叫jvm内存):    -Xmx256M  //初始化堆大小=最大堆大小,可以在一定程度上在GC后重新分配内存

年轻代大小: -Xmn512M //设置堆里面的年轻代大小。整个JVM内存的大小=年轻代+老年代+永久代(jdk1.8之后叫元空间)。永久代一般固定大小64M。所以增大年轻代,减小老年代大小。此值对系统性能影响较大。Sun推荐配置为整个堆的3/8
元空间初始大小: -XX:MatespaceSize=100M //该值是设置方法区的元空间初始化大小,该值越大,触发GC时间就越晚。

元空间内存最大值: -XX:MaxMatespaceSize=100M //该值是设置方法区的元空间最大值,如果不设置,默认是系统的 内存大小,设置了,可以限制元空间无限的使用服务器内存,影响其他程序。

堆栈信息: -XX:OmitStackTraceInFastThrow //这个是用来解决重复异常不打印堆信息的设置。设置了,便会重复打印堆信息



二:用于启动java的jar包服务的linux命令(后台启动)

nohup java -server -Xms256M -Xmx256M -Xmn512M -XX:MatespaceSize=64M -XX:MaxMatespaceSize=100M -XX:OmintSackTraceInFastThrow -jar XXX.jar --spring.config.loacal=/xxpath1/xxpath2/ --logging.config=/xxpath1/logback.xml > ${logpath} 2 > &1 &

优化2:提取中间变量来替代jvm的调优参数:
# `pwd` 执行系统命令并获得结果
BASE_PATH=`pwd`

# 外部配置文件绝对目录,如果是目录需要/结尾,也可以直接指定文件
# 如果指定的是目录,spring则会读取目录中的所有配置文件
CONFIG_DIR=${BASE_PATH}"/config/"
# 项目日志输出绝对路径
LOG_DIR=${BASE_PATH}"/logs"
LOG_FILE="${APPLICATION}.log"
LOG_PATH="${LOG_DIR}/${LOG_FILE}"
JAVA_OPT="-server -Xms256m -Xmx256m -Xmn512m -XX:MetaspaceSize=64m -XX:MaxMetaspaceSize=256m"
JAVA_OPT="${JAVA_OPT} -XX:-OmitStackTraceInFastThrow"

所以完整命令(注意你的系统是否识别nohup命令,如果不识别,缺少安装插件,网上搜 linux nohup即可):
nohup java ${JAVA_OPT} -jar XXX.jar --spring.config.location=${CONFIG_DIR} --logging.config=${CONFIG_DIR}logback.xml > ${LOG_PATH} 2>&1 &

免责声明:文章转载自《JVM常用调优参数以及linux服务器启动项目命令jvm参数调优案例》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇查询sql连接数shell中各种括号的作用下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux非Root权限配置Java环境变量

编辑配置文件vi ~/.bashrc设置环境变量 set java environment JAVA_HOME=/home/zoms/java-se-8u41-ri JRE_HOME=/home/zoms/java-se-8u41-ri/jre CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/too...

nginx学习(二):nginx显示默认首页解析过程

本篇文章分析下nginx 显示默认首页的过程 如下图所示 查看config文件: # 如果忘记nginx 安装目录。使用下面命令查看 [root@XXX]# whereis nginx nginx: /usr/local/nginx # 下面是config文件里面的内容片段 server { listen 80;...

CKEditor上传图片—配置CKFinder

在网站开发中,如果有发布类似新闻的图文混排需求时,CKEditor不失为一个很好的选择,下载地址如下: http://ckeditor.com/download 它的前身是FCKEditor,随着它的更新,上传图片的功能被分离出去了,现在如果需要实现上传图片,要么自己写代码,还有一种方法是使用CKFinder,下载地址如下: http://ckfinder...

Linux 强制卸载硬盘 (Device is busy)

Table of Contents Linux 强制卸载硬盘 (Device is busy) 终止程序 查询占用的程序 终止占用的程序 卸载硬盘 Linux 强制卸载硬盘 (Device is busy) 有时,挂载的硬盘会由于程序占用或者系统故障(实际上也算是程序占用)导致无法正常卸载。直接移除又会有数据丢失甚至直接硬盘损坏的风险。所以我...

Linux命令--ss命令的参数及使用详解

  ss是Socket Statistics的缩写。顾名思义,ss命令可以用来获取socket统计信息,它可以显示和netstat类似的内容。但ss的优势在于它能够显示更多更详细的有关TCP和连接状态的信息,而且比netstat更快速更高效。 一、ss命令的参数如下 Usage: ss [ OPTIONS ] ss [ OPTIONS ] [...

解决Firefox显示“已阻止载入混合活动内容”的方法

解决方法如下: 方法1:让Firefox暂时不阻止 打开新标签页,在地址栏输入 about:config,进入配置页面。 搜索 security.mixed_content.block_active_content,将true改为false。 方法2:避免在HTTPS页面中包含HTTP的内容。 第1种方法很不现实,因为我们不能要求所有用户去改这项配置。...