java启动jar包修改JVM默认内存问题

作者:普通网友 时间:2022-03-17 21:50:09 

JVM默认物理内存

JVM初始分配的内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4。

默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。

因此服务器一般设置-Xms、-Xmx相等以避免在每次GC后调整堆的大小。

设置JVM内存的参数有四个

-XmxJava Heap最大值,默认值为物理内存的1/4,最佳设值应该视物理内存大小及计算机内其他内存开销而定;

-XmsJava Heap初始值,Server端JVM最好将-Xms和-Xmx设为相同值,开发测试机JVM可以保留默认值;

-XmnJava Heap Young区大小,不熟悉最好保留默认值;

-Xss每个线程的Stack大小,不熟悉最好保留默认值;

操作步骤

1.执行命令:free -h

查询当前的内存占用情况(Mem是当前物理内存使用情况,Swap是swap交换分区使用情况)

java启动jar包修改JVM默认内存问题

2.执行命令:top

查看各个应用的内存占用情况

java启动jar包修改JVM默认内存问题

第一行:

10:51:46— 当前系统时间

601days, 17:08— 系统已经运行了601天17小时8分钟(在这期间没有重启过)

1users — 当前有1个用户登录系统

load average: 0.86, 0.73, 0.74 — load average后面的三个数分别是1分钟、5分钟、15分钟的负载情况。

load average数据是每隔5秒钟检查一次活跃的进程数,然后按特定算法计算出的数值。如果这个数除以逻辑CPU的数量,结果高于5的时候就表明系统在超负荷运转了。

第二行:

Tasks — 任务(进程),系统现在共有163个进程,其中处于运行中的有1个,162个在休眠(sleep),stoped状态的有0个,zombie状态(僵尸)的有0个。

3. 启动jar包

java -Xms1024m -Xmx1024m -Xmn700m -Xss16m -jar?xxx.jar &

-Xms1024m 设置JVM促使内存为1024M。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。

-Xmx1024m ,设置JVM最大可用内存为1024M。

-Xmn700m**:**设置年轻代大小为700M。整个堆大小=年轻代大小 + 年老代大小 + 持久代大小。持久代一般固定大小为64m,所以增大年轻代后,将会减小年老代大小。此值对系统性能影响较大,Sun官方推荐配置为整个堆的 3/8。

-Xss16m

4. 如果是tomcat项目启动

则在bin目录下,执行命令:vim catalina.sh,然后在顶部加上:

JAVA_OPTS="-Xms1024m -Xmx1024m -Xmn700m -Xss16m"

重新启动项目之后,执行命令查询修改情况:jps -v

java启动jar包修改JVM默认内存问题

来源:https://blog.csdn.net/shuux666/article/details/123944946

标签:java,jar包,JVM,默认内存
0
投稿

猜你喜欢

  • 浅谈Java编程中string的理解与运用

    2021-05-31 22:15:44
  • SpringBoot利用拦截器实现避免重复请求

    2022-02-07 00:21:53
  • Spring Boot详解创建和运行基础流程

    2022-01-28 19:57:05
  • WPF仿三星手机充电界面实现代码

    2021-09-16 06:20:44
  • 深入Java Final

    2022-06-22 09:38:14
  • java JUC信号量Semaphore原理及使用介绍

    2023-01-02 02:08:57
  • SpringBoot中自定义注解实现参数非空校验的示例

    2022-04-12 10:55:55
  • 关于MyBatis模糊查询的几种实现方式

    2023-05-09 04:23:12
  • springboot2启动时执行,初始化(或定时任务)servletContext问题

    2022-10-18 13:14:30
  • Spring事务失效问题分析及解决方案

    2023-07-09 11:08:15
  • Java实现二分搜索树的示例代码

    2023-08-05 10:43:40
  • Android语音声波控件 Android条形波控件

    2023-10-29 02:03:05
  • 利用java开发简易版扫雷游戏

    2023-11-07 14:35:15
  • C# 文件上传下载(Excel导入,多线程下载)功能的实现代码

    2021-12-09 20:16:34
  • springboot整合RabbitMQ 中的 TTL实例代码

    2022-04-18 03:12:34
  • c# this关键字用法代码详解

    2022-06-07 15:22:09
  • Android开发自学笔记(六):声明权限和Activity

    2021-05-26 07:25:49
  • SpringCloud Alibaba项目实战之nacos-server服务搭建过程

    2022-02-28 02:43:26
  • mybatis批量新增、删除、查询和修改方式

    2023-11-23 10:13:01
  • 详解Mybatis通用Mapper介绍与使用

    2023-11-29 08:49:08
  • asp之家 软件编程 m.aspxhome.com