jdk1.8限制内存参数

阿里云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,没有再次出现持续上涨的情况

  • 7
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
JDK 1.8的内存模型是指Java程序在运行时,对于内存的使用和管理的规范。它定义了线程之间如何进行通信、数据如何在内存中存储和访问等方面的规则。 JDK 1.8的内存模型主要包括以下几个方面: 1. 主内存(Main Memory):主内存是Java程序中所有线程共享的内存区域,包含了所有的变量和对象实例。 2. 工作内存(Working Memory):工作内存是每个线程独立拥有的内存区域,用于存储线程执行过程中需要使用的变量和对象实例的副本。 3. 内存间的交互操作:线程之间通过主内存进行通信,具体包括读取和写入操作。当一个线程需要读取某个变量的值时,首先将该变量从主内存复制到工作内存中;当一个线程需要写入某个变量的值时,首先将该变量从工作内存刷新到主内存中。 4. 内存可见性:JDK 1.8的内存模型保证了多线程之间对共享变量的修改能够及时对其他线程可见。具体来说,当一个线程修改了某个共享变量的值后,会立即将该变量的最新值刷新到主内存中,其他线程在读取该变量时会从主内存中获取最新值。 5. 原子性操作:JDK 1.8的内存模型保证了对于基本数据类型的读取和赋值操作具有原子性,即不会被其他线程中断。但是对于复合操作(例如i++)并不具备原子性,可能会出现线程安全问题。 6. happens-before关系:JDK 1.8的内存模型定义了happens-before关系,用于指定多线程之间操作的执行顺序。具体来说,如果一个操作happens-before另一个操作,那么第一个操作的结果对于第二个操作是可见的。
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值