阿里云1000元通用代金券点此领取

centos7上java应用使用 java -jar -Xms512m -Xmx512m 参数启动,限制不了内存,很快就会超过512m这个数,而且
还在不停的增长,大概在1.7G就会停止

增加各种参数-Xms512m -Xmx512m -XX:MetaspaceSize=200m -XX:MaxMetaspaceSize=200m -XX:MaxDirectMemorySize=128m -Xss256K -XX:+DisableExplicitGC -XX:SurvivorRatio=3 -XX:+UseAdaptiveSizePolicy -XX:ParallelGCThreads=2 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+CMSParallelRemarkEnabled -XX:CMSFullGCsBeforeCompaction=0 -XX:+CMSClassUnloadingEnabled -XX:LargePageSizeInBytes=128M -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly都没有办法限制

从prometheus监控上看,heap,noheap内存加起来占用只有500M

安装jprofilter工具查看,有一个Compressed class space空间,占了1G

结果jdk1.8默认就打开了-XX:+UseCompressedClassPointers 这个参数,并且设置为1G。这个内存大小可通过-XX:CompressedClassSpaceSize参数来控制

参数作用是设置Klass Metaspace的大小,默认1G

Klass Metaspace就是用来存klass的,klass是class文件在jvm里的运行时数据结构,没有开启压缩指针,就不会有-XX:CompressedClassSpaceSize=1g这块内存,但是jdk1.8里应该是默认开启的。并且,如果这块内存会如果没有满会一直增加。

将启动参数改为java -jar -server -Xms512m -Xmx512m -XX:CompressedClassSpaceSize=128m -XX:MetaspaceSize=200m -XX:MaxMetaspaceSize=200m ,最终内存大小稳定在700多M,这里是512m+128m,没有再次出现持续上涨的情况

jdk1.8限制内存参数相关推荐

  1. java jvm 内存参数_深入详解JVM内存模型与JVM参数详细配置

    对于大多数应用来说,Java 堆(Java Heap)是Java 虚拟机所管理的内存中最大的一块.Java 堆是被所有线程共享的一块内存区域,在虚拟机启动时创建. JVM内存结构 由上图可以清楚的看到 ...

  2. jar启动方式设置内存参数

    jar启动方式设置内存参数 nohup command > myout.file 2>&1 & 日志存放在myout.file中; 例如: #!/bin/bash nohu ...

  3. JDK1.8 JVM内存模型

    一.JDK1.8 JVM内存模型概览 这里介绍的是JDK1.8 JVM内存模型.1.8同1.7比,最大的差别就是:元数据区取代了永久代.元空间的本质和永久代类似,都是对JVM规范中方法区的实现.不过元 ...

  4. Tomcat10——JVM内存参数配置

    最常见的JVM配置当属内存分配,因为在绝大多数情况下,JVM默认分配的内存可能不能够满足我们的需求,特别是在生产环境,此时需要手动修改tomcat启动时的内存参数分配. 1. JVM内存模型 我们在进 ...

  5. Oracle系统结构之修改oracle内存参数

    Linux主机16g内存,修改oracle数据库内存参数: 1.编辑/etc/fstab文件:针对tmpfs行将defaults改成defaults,size=12g(千万注意格式,不能出现错误) 修 ...

  6. JVM内存参数详解以及配置调优

    基本概念: PermGen space:全称是Permanent Generation space.就是说是永久保存的区域,用于存放Class和Meta信息,Class在被Load的时候被放入该区域 ...

  7. MySQL线程共享内存参数

    MySQL线程共享内存参数 全局共享内存主要是 MySQL Instance(mysqld进程)以及底层存储引擎用来暂存各种全局运算及可共享的暂存信息,如存储查询缓存的 Query Cache,缓存连 ...

  8. JVM【带着问题去学习 01】什么是JVM+内存结构+堆内存+堆内存参数(逃逸分析)

    1.是什么 (1) 基本概念:可运行 Java 代码的非真实计算机 ,包括一套字节码指令集.一组寄存器.一个栈.一个垃圾回器,堆和一个存储方法域.它运行在操作系统之上,与硬件没有直接的交互. (2) ...

  9. MySQL性能的五大配置参数(内存参数)

    内存参数: 存储引擎/共享 日志缓冲区,缓冲区池 innodb_buffer_pool_size innodb_additional_mem_pool_size innodb_log_buffer_s ...

最新文章

  1. nc361t支持的服务器,Windows Server 2008 R2通过IP安全策略阻止某个IP
  2. torch 多维topk
  3. SpringBoot添加JSP支持
  4. NOIP2018 退役记
  5. mysql5.7重新初始化_MySQl 5.7 初始化方式变更
  6. SAP CRM读取产品主数据360度数据的API
  7. 【计算机网络】物理层传输介质
  8. 设计模式8(享元模式,解释器模式)
  9. 实战:自定义简易版SpringBoot
  10. elasticsearch restful api操作使用指南
  11. Python入门学习笔记(6)
  12. PAT题集2019.6.22排名变动
  13. uniapp,vue学习笔记
  14. 《蔡康永的说话之道》
  15. 企业wifi管家——让天下没有难管的wifi
  16. ARM7开发板模拟器Skyeye安装设置全攻略
  17. 铃声多多 v8.7.40.1
  18. Camfrog Video Chat免费版
  19. 湖南研几科技陈总受邀参观伊宅购集团考察交流
  20. 骑行运动耳机哪个好,最适合骑行佩戴的几款耳机

热门文章

  1. 通用(任何android机型)Root教程(完整版!附砖机自救方法)转自安卓网
  2. 图像处理 QImage
  3. BoradCom(博通)方案CFE操作指令
  4. Centos7安装DPDK
  5. 怎么批量统计微博播放量、阅读、粉丝数据
  6. php的数组排序方法,php数组排序简单方法
  7. Sql语句之IFNULL() 函数
  8. 基于SpringBoot+Vue 实现准妈妈孕期交流平台【源码+论文+演示视频+包运行成功】
  9. Android xUtils框架解析
  10. Facebook-H5授权登录步骤