Springboot项目优化和Jvm调优和启停脚本
Springboot项目优化和Jvm调优和启停脚本
1.修改配置文件
参考官方文档
主要修改tomcat的参数,springboot自带的tomcat线程数默认为200,实际情况下如果没有这么大的并发量,可以考虑将其调小。
server.tomcat.max-threads = 200 #最大工作线程数。
server.tomcat.min-spare-threads = 10 #最小工作线程数。
2.配置启动参数
nohup java -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms1024m -Xmx1024m -Xmn256m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -jar /jar包路径
3.按指定配置文件启动
java -jar -Dspring.profiles.active=test demo-0.0.1-SNAPSHOT.jar
4.合并
nohup java -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms1024m -Xmx1024m -Xmn256m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -jar -Dspring.profiles.active=dev /jar包路径
参数说明:
-XX:MetaspaceSize=128m (元空间默认大小)
-XX:MaxMetaspaceSize=128m (元空间最大大小)
-Xms1024m (堆最大大小)
-Xmx1024m (堆默认大小)
-Xmn256m (新生代大小)
-Xss256k (棧最大深度大小)
-XX:SurvivorRatio=8 (新生代分区比例 8:2)
-XX:+UseConcMarkSweepGC (指定使用的垃圾收集器,这里使用CMS收集器)
-Duser.timezone=GMT+8 //设定GMT区域,避免CentOS坑爹的时区设置
知识点:JDK8之后把-XX:PermSize 和 -XX:MaxPermGen移除了,取而代之的是
-XX:MetaspaceSize=128m (元空间默认大小)
-XX:MaxMetaspaceSize=128m (元空间最大大小)
JDK 8开始把类的元数据放到本地化的堆内存(native heap)中,这一块区域就叫Metaspace,中文名叫元空间。
使用本地化的内存有什么好处呢?最直接的表现就是java.lang.OutOfMemoryError: PermGen 空间问题将不复存在,因为默认的类的元数据分配只受本地内存大小的限制,也就是说本地内存剩余多少,理论上Metaspace就可以有多大(貌似容量还与操作系统的虚拟内存有关?这里不太清楚),这解决了空间不足的问题。不过,让Metaspace变得无限大显然是不现实的,因此我们也要限制Metaspace的大小:使用-XX:MaxMetaspaceSize参数来指定Metaspace区域的大小。JVM默认在运行时根据需要动态地设置MaxMetaspaceSize的大小。
启动脚本例子
#/bin/sh
jar_name="newcs-cs-monitor-0.0.1-SNAPSHOT.jar"
PID=`ps -ef | grep ${jar_name} | grep -v grep | awk '{print $2}'`
if [ -z "$PID" ]
thennohup java -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms1024m -Xmx1024m -Xmn256m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -jar -Dspring.profiles.active=prod ${jar_name} >/dev/null 2>&1 &PID=`ps -ef | grep ${jar_name} | grep -v grep | awk '{print $2}'`if [ -z "$PID" ]thenecho Application start false,elseecho Apllication start success.fi
elseecho Application is already start PID is $PID
fi
停止脚本例子
#/bin/sh
jar_name="newcs-cs-monitor-0.0.1-SNAPSHT.jar"
PID=`ps -ef | grep ${jar_name} | grep -v grep | awk '{print $2}'`
if [ -z "$PID" ]
thenecho Application is already stopped
elseecho "stop application"echo kill $PIDkill -9 $PIDecho "finish“
fi
脚本优化接收外部传参
启动脚本
#/bin/sh
jar_name=$1
PID=`ps -ef | grep ${jar_name} | grep -v grep | awk '{print $2}'`
if [ -z "$PID" ]
thennohup java -XX:MetaspaceSize=128m -XX:MaxMetaspaceSize=128m -Xms1024m -Xmx1024m -Xmn256m -Xss256k -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -jar -Dspring.profiles.active=prod ${jar_name} >/dev/null 2>&1 &PID=`ps -ef | grep ${jar_name} | grep -v grep | awk '{print $2}'`if [ -z "$PID" ]thenecho Application start false,elseecho Apllication start success.fi
elseecho Application is already start PID is $PID
fi
停止脚本
#/bin/sh
jar_name=$1
PID=`ps -ef | grep ${jar_name} | grep -v grep | awk '{print $2}'`
if [ -z "$PID" ]
thenecho Application is already stopped
elseecho "stop application"echo kill $PIDkill -9 $PIDecho "finish“
fi
优化后的脚本使用方式
./start.sh xxxx.jar
./stop.sh xxxx.jar
Springboot项目优化和Jvm调优和启停脚本相关推荐
- SpringBoot项目优化和Jvm调优(亲测,真实有效)
点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:星朝 原文:cnblogs.com/jpfss/p/9753 ...
- SpringBoot项目优化和Jvm调优(楼主亲测,真实有效)
今日推荐Spring新版本抛弃JVM,可独立部署,网友:要自立门户???国内大神成功给手机装上了 Win11,代码已开源!Fluent Mybatis 牛逼!Nginx 常用配置清单这玩意比Threa ...
- SpringBoot项目优化和Jvm调优及VisualVM远程连接监控JVM(JMX连接)
项目调优 作为一名工程师,项目调优这事,是必须得熟练掌握的事情. 在SpringBoot项目中,调优主要通过配置文件和配置JVM的参数的方式进行. 在这边有一篇比较好的文章,推荐给大家! Spring ...
- 后端技术:Spring Boot 项目优化和 JVM 调优,真实有效。
项目调优 作为一名工程师,项目调优这事,是必须得熟练掌握的事情. 在SpringBoot项目中,调优主要通过配置文件和配置JVM的参数的方式进行. 一.修改配置文件 关于修改配置文件applicati ...
- java项目processes设置,Jvm调优和SpringBoot项目优化的详细教程
参考文章 1.先看一下未设置JVM参数的情况,默认情况下,没有设置任何Jvm参数. 2.设置Jvm参数. 配置参数: 关于这些设置的JVM参数是什么意思,参考Jvm调优. -XX:MetaspaceS ...
- springboot不会运行gc_SpringBoot项目深度优化和Jvm调优
点击上方"Java学习之道",选择"关注"公众号 每天上班,干货准时送达! 本文作者:星朝 本文来源:www.cnblogs.com/jpfss/p/97532 ...
- SpringBoot 项目构建 Docker 镜像调优实践
点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 作者:超级小豆丁 http://www.mydlq.club/article/16/ PS ...
- 一次线上 JVM 调优实践,FullGC 40 次/天到 10 天一次的优化过程
点击关注公众号,Java干货及时送达 来源 | https://blog.csdn.net/cml_blog/article/details/81057966 通过这一个多月的努力,将 FullGC ...
- JVM调优,面到了阿里性能优化师!
小K 菜哥,我看你朋友圈,你好像换工作了? 菜哥 对啊,前阵子被产品经理烦的头疼,就想换工作了.刚好找到一个不错的. 小K 给我说说呗,让我也参考一下,我现在工资才15K,主管死坑,我也想换工作了 菜 ...
- 一次线上JVM调优实践,FullGC40次/天到10天一次的优化过程
作者 | cmlbeliever 来源 | https://blog.csdn.net/cml_blog/article/details/81057966 通过这一个多月的努力,将FullGC从40次 ...
最新文章
- GitHub 标星 2.5K+,U^2-Net 跨界肖像画,完美复刻人物细节!
- nGrinder详细介绍及性能工具对比
- html内容显示重叠了,HTML:将DIV内容并排放置而不重叠
- php怎么关联默认打开程序,win10系统打开文件时提示“请在默认程序控制面板中创建关联”如何解决...
- 计算机组成原理试卷五套,山东理工计算机组成原理五套题之题5
- 分布式与人工智能课程(part3)--第三课
- 用 FastJSON 将 JSON 字符串转换为 Map
- pandas 判断是否等于nan_Python之pandas笔记
- au如何关闭预览编辑器_在线IDE开发入门之从零实现一个在线代码编辑器
- 百炼-2701:与7无关的数
- android 颜色资源
- openwrt编译smartdns_【萌新理解交流】浅谈openWRT中的smartDNS中各个选项如何设置及其含义。...
- 小程序组件传值解决页面数据刷新
- 最全的PS快捷键大全!
- 根据pc值确定出错的代码位置
- 本地搭建乌云漏洞平台
- ftp上传文件时出现 550 Permission denied,不是用户权限问题
- 人工智能专业适合女孩学习吗?
- 良知VS野心,苹果为何要翻新手机?
- 清华大学的同学,究竟有多难?
热门文章
- android定位问题
- Linux 建立ftp站点
- Daily Scrum 10.23
- 东南大学2005年程序设计第二届初赛解题报告
- 关于spfile的一个难题
- java中堆和栈的区别_java中堆和栈的区别
- 问道手游服务器维护,问道手游2021年5月20日维护公告_问道手游2021年5月20日更新了什么_玩游戏网...
- linux怎么读取kvaser的数据,基于Python下的Kavasers CAN报文收发调试
- vb 获取设备音量_自制 Windows 10X 启动盘,提前体验微软折叠设备新系统
- 湘潭大学计算机考研调剂,2017年湘潭大学硕士研究生调剂信息公告