linux硬盘详情:

# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/vda1        99G   35G   60G  37% /
tmpfs           7.8G     0  7.8G   0% /dev/shm

linux 内存详情:

# free -htotal       used       free     shared    buffers     cached
Mem:           15G        13G       1.9G       684K       145M        11G
-/+ buffers/cache:       2.2G        13G
Swap:           0B         0B         0B

启动命令:

nohup java -Xms3096M -Xmx3096M -Xss256K -XX:NewRatio=3 -XX:SurvivorRatio=3 -XX:PermSize=256M -XX:MaxPermSize=256M -XX:+UseParNewGC -XX:LargePageSizeInBytes=64M -XX:+UseFastAccessorMethods -XX:SoftRefLRUPolicyMSPerMB=0 -XX:+PrintClassHistogram -XX:+PrintGCDetails -XX:+PrintGCTimeStamps -XX:+PrintHeapAtGC -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false -jar -Dspring.profiles.active=prod  test.jar

启动命令详解:

nohup java
-Xms3096M  #jvm启动时申请的初始Heap内存
-Xmx3096M  #JVM可申请的最大Heap值
#将-Xms和-Xmx设为相同值,可以避免每次GC后JVM重新分配内存
-Xss256K  #设置每个线程的堆栈大小
-XX:NewRatio=3  #老年代:新生代=1:3
-XX:SurvivorRatio=3 #Eden和1个Suivior的比,例:Eden:from=3:1,则Eden:3/5,from和to为1/5
-XX:PermSize=256M #JVM初始分配的非堆内存
-XX:MaxPermSize=256M #JVM最大允许分配的非堆内存,按需分配
-XX:+UseParNewGC #ParNew收集器是Serial收集器的多线程版本,设置后会在新生代用复制算法并行回收
-XX:LargePageSizeInBytes=64M #单个页大小调整
-XX:+UseFastAccessorMethods #冗余代码优化
-XX:SoftRefLRUPolicyMSPerMB=0 #所有的软引用对象都尽快的被释放
-XX:+PrintClassHistogram #按下Ctrl+Break后,打印类的信息
-XX:+PrintGCDetails #打印GC详细信息
-XX:+PrintGCTimeStamps # 打印CG发生的时间戳
-XX:+PrintHeapAtGC #打印GC堆信息
-Dcom.sun.management.jmxremote #支持JMX远程监控
-Dcom.sun.management.jmxremote.authenticate=false #表示JMX不需要鉴权,主机+port即可监控
-Dcom.sun.management.jmxremote.ssl=false #JMS 连接方式
-jar
-Dspring.profiles.active=prod  #配置文件选择prod
test.jar

-Xms和-Xmx 详解:

(1)这两个参数老是搞混,特地记一下。-Xms 为JVM启动时申请的初始Heap值,默认为操作系统物理内存的1/64但小于1G。默认当空余堆内存大于70%时,JVM会减小heap的大小到-Xms指定的大小,可通过-XX:MaxHeapFreeRation来指定这个比列。

(2)-Xmx 为JVM运行时可申请的最大Heap值,默认值为物理内存的1/4但小于1G,默认当空余堆内存小于40%时,JVM会增大Heap到-Xmx指定的大小,可通过-XX:MinHeapFreeRation来指定这个比列。

(3)关于这两个参数前的-X在JVM中的参数表示为非标准参数,不保证所有的JVM会实现,不保证向后兼容,此外还有,标准参数(-),保证JVM都会实现的参数且向后兼容,非Stable(稳定)参数(-XX),各个JVM实现可能不同且将来可能取消。

(4)程序启动时有时会遇到内存不够的类似异常,可以通过ide在运行程序时改变这两个参数的值。

(5)关于这个两个参数的关系如下图:

(6)为了避免每次GC后JVM重新分配内存,JVM可将-Xms和-Xmx设为相同值

-XX:NewRatio=3
设置Yong 和 Old的比例,比如值为3,则Old Generation是 Yong Generation的3倍,即Yong Generation占据内存的1/4

-XX:SoftRefLRUPolicyMSPerMB

对于软引用对象,只要堆内存不够了,该对象就会被回收来释放空间。不过这只是理论,软引用对象能够被回收需要满足一定的逻辑判断,判断公式如下:

clock - timestamp <= freespace * SoftRefLRUPolicyMSPerMB
  • clock表示上次GC的时间戳,
  • timestamp表示最近一次读取软引用对象的时间戳,这两者的差值表示该软引用对象多久没被使用了,差值越大,软引用对象价值越低,负数则表示软引用对象刚刚被使用。
  • freespace是空闲空间大小,
  • SoftRefLRUPolicyMSPerMB表示每一MB的空闲内存空间可以允许软引用对象存活多久,
  • 这也就间接的解释了,为什么空间不够用,空闲空间越小,软应用对象就会被回收,因为它的存活时间会随着空闲空间的减小而递减。可以把 【freespace * SoftRefLRUPolicyMSPerMB】理解为忍耐度,对软应用对象的忍耐程度。

所以如果clock - timestamp <= freespace * SoftRefLRUPolicyMSPerMB成立,那么软引用对象就不会被回收,反之则需要回收该软引用对象。

顾名思义,【-XX:SoftRefLRUPolicyMSPerMB】参数能够影响的就是SoftRefLRUPolicyMSPerMB的数值,如果调整为0,表示0忍耐度,所有的软引用对象都要尽快的被释放。

参考:
https://blog.csdn.net/u010833547/article/details/90289325

https://blog.csdn.net/weixin_38106322/article/details/109166228?utm_medium=distribute.pc_relevant.none-task-blog-baidujs_title-2&spm=1001.2101.3001.4242

https://blog.csdn.net/qiang_zi_/article/details/100700784

-XX:+PrintClassHistogram

–按下Ctrl+Break后,打印类的信息:

 num     #instances         #bytes  class name----------------------------------------------1:        890617      470266000  [B2:        890643       21375432  java.util.HashMap$Node3:        890608       14249728  java.lang.Long4:            13        8389712  [Ljava.util.HashMap$Node;5:          2062         371680  [C6:           463          41904  java.lang.Class

–分别显示:序号、实例数量、总大小、类型

-Dcom.sun.management.jmxremote

https://www.cnblogs.com/liu-ke/p/7008920.html

https://blog.csdn.net/qq_27641935/article/details/102919542

https://www.cnblogs.com/gossip/p/6141941.html

记录spring cloud项目线上JVM配置相关推荐

  1. Spring Cloud落地之Spring Cloud LoadBalancer 线上优化方案

    文章目录 Spring Cloud 版本 注册中心 Spring Cloud LoadBalancer 负载均衡器新的选择 缓存问题 解决方式 总结 这里是weihubeats,觉得文章不错可以关注公 ...

  2. Linux中部署Spring Cloud项目

    Linux中部署Spring Cloud项目 文章为本人在学习的过程中,记录部署过程,仅供参考学习.因本人经验不足,教程或有不妥之处,还望指正. 保姆级教程,敬请食用!!! 简介 在学习过程中,部署时 ...

  3. 告诉老默我想学Spring Cloud了(新手篇):从0到1搭建Spring Cloud项目(实际项目开发的浓缩精华版)

    告诉老默我想学Spring Cloud了(新手篇):从0到1搭建Spring Cloud项目 一.前言 二.如何选择版本 2.1 SpringCloud 和 Spring Boot 版本选型 2.1. ...

  4. 面试两连击:线上JVM GC问题和OOM内存溢出的解决方案,聊聊呗!

    点击上方石杉的架构笔记,右上角选择"设为星标" 每日早8点半,技术文章准时送上 公众号后台回复"学习",获取作者独家秘制精品资料 往期文章 BAT 面试官是如何 ...

  5. Spring Cloud第六章:配置中心Config

    在上一篇文章讲述zuul的时候,已经提到过,使用配置服务来保存各个服务的配置文件.它就是Spring Cloud Config. 一.简介 在分布式系统中,由于服务数量巨多,为了方便服务配置文件统一管 ...

  6. 为Spring Cloud Config插上管理的翅膀

    最近一致在更新Spring Cloud Config的相关内容,主要也是为这篇埋个伏笔,相信不少调研过Spring Cloud Config的用户都会吐槽它的管理能力太弱.因此,就有了下面为讲推荐的这 ...

  7. 在运行时在Spring Cloud Config中刷新属性配置

    在本系列Spring Cloud Config的教程系列中,我们将讨论在运行时刷新属性配置的过程,我们将使用Spring Boot致动器/refresh端点进行/refresh . 此外,我们还将研究 ...

  8. Spring Cloud整合Nacos实现动态配置

    前提 已经安装并启动了nacos-server服务端. 整合 创建一个maven工程并引入以下依赖: <dependency><groupId>org.springframew ...

  9. Spring Cloud(七):配置中心

    Spring Cloud Config项目是一个解决分布式系统的配置管理方案.它包含了Client和Server两个部分,server提供配置文件的存储.以接口的形式将配置文件的内容提供出去,clie ...

最新文章

  1. AD-NeRF:用于说话人头部合成的音频驱动神经辐射场
  2. LFD-A-Light-and-Fast-Detector
  3. 腾讯云,搭建Docker环境
  4. 与python相关的爬虫工具_python爬虫常用工具集合
  5. python入门第一课_入门第一课 Python入门涉及的问题及简单示例
  6. PHP-计算表单提交的数据
  7. 单体模式singleton
  8. boost::container模块实现比较的程序
  9. 设计模式的Java 8 Lambda表达式–装饰器设计模式
  10. 移动端判断手机横竖屏状态
  11. HYSBZ - 2157树链剖分
  12. android 模糊查询控件_第三十二篇:在SOUI2.0中像android一样使用资源
  13. idea退出首界面_如何取消Idea开始界面打开默认项目配置
  14. java 集合操作工具包_java之操作集合的工具类--Collections
  15. 解决非javascript浏览器的问题
  16. karto探秘之open_karto 第二章 --- 参数解析
  17. 手機短信阻擊中國化工項目
  18. uni 登录token方法_uniapp如何检验用户是否登录
  19. RMI 自己创建的 过程
  20. 网络工程师(软考)心得

热门文章

  1. CornerStone破解,无限期使用
  2. 程序员因为试用期被辞退,一气之下删除了自己的代码,被判十个月
  3. ckeditor从word粘贴图片
  4. javaweb网上购物系统,jsp网页线上购物,mysql数据库(源码+报告)
  5. 装机教你电脑城精明装机十大技巧
  6. 视频播放器MX Player Pro 目前最新长期更新
  7. 快乐地打牢基础(5)——割点和桥
  8. 日立HGP03调试软件日立HGP03调试软件
  9. 脉脉发布的人才流动数据,警醒各位2022下半年一定不要裸辞,特别是互联网从业者
  10. 【天光学术】法学论文:计算机字库的著作权保护问题研究(节选)