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调优和启停脚本相关推荐

  1. SpringBoot项目优化和Jvm调优(亲测,真实有效)

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 作者:星朝 原文:cnblogs.com/jpfss/p/9753 ...

  2. SpringBoot项目优化和Jvm调优(楼主亲测,真实有效)

    今日推荐Spring新版本抛弃JVM,可独立部署,网友:要自立门户???国内大神成功给手机装上了 Win11,代码已开源!Fluent Mybatis 牛逼!Nginx 常用配置清单这玩意比Threa ...

  3. SpringBoot项目优化和Jvm调优及VisualVM远程连接监控JVM(JMX连接)

    项目调优 作为一名工程师,项目调优这事,是必须得熟练掌握的事情. 在SpringBoot项目中,调优主要通过配置文件和配置JVM的参数的方式进行. 在这边有一篇比较好的文章,推荐给大家! Spring ...

  4. 后端技术:Spring Boot 项目优化和 JVM 调优,真实有效。

    项目调优 作为一名工程师,项目调优这事,是必须得熟练掌握的事情. 在SpringBoot项目中,调优主要通过配置文件和配置JVM的参数的方式进行. 一.修改配置文件 关于修改配置文件applicati ...

  5. java项目processes设置,Jvm调优和SpringBoot项目优化的详细教程

    参考文章 1.先看一下未设置JVM参数的情况,默认情况下,没有设置任何Jvm参数. 2.设置Jvm参数. 配置参数: 关于这些设置的JVM参数是什么意思,参考Jvm调优. -XX:MetaspaceS ...

  6. springboot不会运行gc_SpringBoot项目深度优化和Jvm调优

    点击上方"Java学习之道",选择"关注"公众号 每天上班,干货准时送达! 本文作者:星朝 本文来源:www.cnblogs.com/jpfss/p/97532 ...

  7. SpringBoot 项目构建 Docker 镜像调优实践

    点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 作者:超级小豆丁 http://www.mydlq.club/article/16/ PS ...

  8. 一次线上 JVM 调优实践,FullGC 40 次/天到 10 天一次的优化过程

    点击关注公众号,Java干货及时送达 来源 | https://blog.csdn.net/cml_blog/article/details/81057966 通过这一个多月的努力,将 FullGC ...

  9. JVM调优,面到了阿里性能优化师!

    小K 菜哥,我看你朋友圈,你好像换工作了? 菜哥 对啊,前阵子被产品经理烦的头疼,就想换工作了.刚好找到一个不错的. 小K 给我说说呗,让我也参考一下,我现在工资才15K,主管死坑,我也想换工作了 菜 ...

  10. 一次线上JVM调优实践,FullGC40次/天到10天一次的优化过程

    作者 | cmlbeliever 来源 | https://blog.csdn.net/cml_blog/article/details/81057966 通过这一个多月的努力,将FullGC从40次 ...

最新文章

  1. GitHub 标星 2.5K+,U^2-Net 跨界肖像画,完美复刻人物细节!
  2. nGrinder详细介绍及性能工具对比
  3. html内容显示重叠了,HTML:将DIV内容并排放置而不重叠
  4. php怎么关联默认打开程序,win10系统打开文件时提示“请在默认程序控制面板中创建关联”如何解决...
  5. 计算机组成原理试卷五套,山东理工计算机组成原理五套题之题5
  6. 分布式与人工智能课程(part3)--第三课
  7. 用 FastJSON 将 JSON 字符串转换为 Map
  8. pandas 判断是否等于nan_Python之pandas笔记
  9. au如何关闭预览编辑器_在线IDE开发入门之从零实现一个在线代码编辑器
  10. 百炼-2701:与7无关的数
  11. android 颜色资源
  12. openwrt编译smartdns_【萌新理解交流】浅谈openWRT中的smartDNS中各个选项如何设置及其含义。...
  13. 小程序组件传值解决页面数据刷新
  14. 最全的PS快捷键大全!
  15. 根据pc值确定出错的代码位置
  16. 本地搭建乌云漏洞平台
  17. ftp上传文件时出现 550 Permission denied,不是用户权限问题
  18. 人工智能专业适合女孩学习吗?
  19. 良知VS野心,苹果为何要翻新手机?
  20. 清华大学的同学,究竟有多难?

热门文章

  1. android定位问题
  2. Linux 建立ftp站点
  3. Daily Scrum 10.23
  4. 东南大学2005年程序设计第二届初赛解题报告
  5. 关于spfile的一个难题
  6. java中堆和栈的区别_java中堆和栈的区别
  7. 问道手游服务器维护,问道手游2021年5月20日维护公告_问道手游2021年5月20日更新了什么_玩游戏网...
  8. linux怎么读取kvaser的数据,基于Python下的Kavasers CAN报文收发调试
  9. vb 获取设备音量_自制 Windows 10X 启动盘,提前体验微软折叠设备新系统
  10. 湘潭大学计算机考研调剂,2017年湘潭大学硕士研究生调剂信息公告