首页 > 系统相关 >常用环境设置jvm内存

常用环境设置jvm内存

时间:2023-08-28 09:24:42浏览次数:32  
标签:常用 java 设置 MaxMetaspaceSize XX 内存 jvm MetaspaceSize order

参数解释:

Xms — 堆内存初始大小
Xmx — 堆内存最大值
MetaspaceSize — 永久内存初始大小
MaxMetaspaceSize — 永久内存最大值
-XX:+UseConcMarkSweepGC    使用cms并行垃圾回收机制

 

内存大小设置:

jstat -gc 进程号  查看OU即是老年代(KB)
根据老年代设置参数
Java堆大小设置,Xms 和 Xmx设置为老年代存活对象的3-4倍,即FullGC之后的老年代内存占用的3-4倍
永久代 PermSize和MaxPermSize(元空间)设置为老年代存活对象的1.2-1.5倍。
年轻代Xmn的设置为老年代存活对象的1-1.5倍。
老年代的内存大小设置为老年代存活对象的2-3倍。

如果老年代约45M,则配置
-XX:MetaspaceSize=64M -XX:MaxMetaspaceSize=64M -Xms180m -Xms180m

 

宿主机和docker的设置方法:

1、java -jar启动时指定内存大小

java -jar -Xms128M -Xmx256M -XX:MetaspaceSize=64M -XX:MaxMetaspaceSize=128M demo.jar

2、tomcat运行时指定内存大小

Linux下修改%TOMCAT_HOME%/bin/catalina.sh
JAVA_OPTS="-XX:MetaspaceSize=128M -XX:MaxMetaspaceSize=256M -Xms128M -Xmx256M"

3、docker-compose启动时指定jvm

修改dockerfile 添加
ENV JAVA_OPTS="-Xms1024M -Xmx1024M -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=256M -XX:+UseConcMarkSweepGC"
ENTRYPOINT ["/bin/sh", "-c", "java ${JAVA_OPTS} -Duser.timezone=Asia/Shanghai -jar -Xbootclasspath/a:/var/www/order/ cloud-order-web.jar"]
修改docker-compose.yml添加 environment模块,如下示例:

  order:
    build:
      context: "/data/java-service/order/"
      dockerfile: "Dockerfile"
    image: order:v1
    environment:
      - JAVA_OPTS=-Xms1024M -Xmx1024M -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=256M -XX:+UseConcMarkSweepGC
    container_name: "order"
    ports:
    - "18095:18095"
    deploy:
      resources:
         limits:
            cpus: "2.00"
            memory: 1228M
         reservations:
            memory: 1126M
    #env_file: /data/java-service/env_variables
    restart: always
    volumes:
    - "/var/log/docker/order:/var/log/order"
    - "/data/java-service/order/:/var/www/order/"
    # 设置容器内用户权限为root
    privileged: true
    logging:
      driver: "json-file"
      options:
        max-size: "500m"
    environment:
      - TZ=Asia/Shanghai

 

标签:常用,java,设置,MaxMetaspaceSize,XX,内存,jvm,MetaspaceSize,order
From: https://www.cnblogs.com/lydongbk/p/17661385.html

相关文章

  • 操作系统学习笔记(三)——内存管理
    一、虚拟内存将进程所用的地址隔离开,让操作系统为每个进程分配独立的一套虚拟地址。虚拟内存可以使进程的运行内存超过物理内存的大小。进程持有的虚拟地址会通过CPU芯片中的内存管理单元(MMU)的映射关系,来转换变成物理地址,然后再通过物理地址访问内存,如下图所示:有两种映射方......
  • JVM调优工具详解及调优实战
    前置启动程序事先启动一个web应用程序,用jps查看其进程id,接着用各种jdk自带命令优化应用 Jmap此命令可以用来查看内存信息,实例个数以及占用内存大小 jmap-histo14660#查看历史生成的实例jmap-histo:live14660#查看当前存活的实例,执行过程中可能会触发一次full......
  • 多行多列合并成一列内存数组的结果
    问题:多行多列合并成一列内存数组的结果函数公式解决:{=PHONETIC(OFFSET(A1:E1,ROW(1:23)-1,))}用Offset函数生成一个多维引用,每个平面分别是A:E表的每一行。利用Phonetic函数将每个平面里的内容进行合并。此公式的缺陷在于被合并的内容只能是文本,如果数据源中包含数值、日......
  • 无涯教程-进程 - 内存映射
    mmap()系统调用提供了将文件或设备映射到内存的调用进程的虚拟地址空间中的映射。这有两种类型-文件映射 - 此映射将进程的虚拟内存区域映射到文件,这意味着读取或写入那些内存区域会导致文件被读取或写入,这是默认的映射类型。匿名映射 - 此映射进程的虚拟内存区域,没有......
  • WinDbg排查.net性能或内存问题步骤简述
    目录一、安装WinDbg二、诊断数据获取三、加载分析四、举例分析以下步骤是分析高CPU占用的命令本文摘自一、安装WinDbg第一步当然是安装了,需要注意的是,千万不要搜索windbg然后下载,搜索到的windbg安装文件,都不是我们想要的,真正的windbg,实际上是在微软的SDK里,下载链接在这里:ht......
  • JVM 与 GC 讲解
    目录一、概述二、JVM内存模型三、GC算法和回收器1)垃圾回收算法2)垃圾回收器四、垃圾回收机制(GC)1)分代垃圾回收机制2)G1垃圾回收器3)FullGC机制一、概述JVM(JavaVirtualMachine)是一种在计算机上运行Java字节码的虚拟机。它允许Java程序在不同的操作系统上具有跨平台的能力,因为......
  • 常用linux命令
    1.磁盘备份,将本地的/dev/hdx整盘备份到/dev/hdyddif=/dev/hdxof=/dev/hdy2.磁盘恢复,将备份文件恢复到指定盘ddif=/path/to/imageof=/dev/hdx3.备份MBR,备份磁盘开始的512Byte大小的MBR信息到指定文件ddif=/dev/hdxof=/path/to/imagecount=1bs=5124.回复MBRddif=/path/t......
  • 生存分析常用的统计模型
    回复我们公众号“1号程序员”的“E001”可以获取《BAT机器学习面试1000题》下载链接。[关注并回复:【E001】] 生存分析,是将观察结局和出现这一结局所经历的时间结合起来分析的一种统计分析方法,已经被广泛地应用于癌症数据分析领域,来揭示疾病特征和预后结局的关系,为临床医生提供预......
  • 常用的linux命令
    《linux常用基础命令1.文件操作命令创建文件:touchfilename创建目录:mkdirdirName删除文件:rmfilename删除文件夹:rm-rfdirName文件复制:cp原始文件目标文件文件夹复制:cp-r原始目录目标目录文件移动:mvpath/sourceFileNamepath/targetFileName文件重命名:mvfil......
  • 动态内存函数
    1.为什么存在动态内存分配?我们已经掌握的内存开辟方式有:int val=20;//在栈空间上开辟四个字节char arr[10]={0};//在栈空间上开局但是上述的开辟空间的方式有两个特点1.空间开辟大小是固定的。2.数组在申明的时候,必须指定数组的长度,它所需要的内存在编译时分配。但是对于空间的需......