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

 

JVM默认物理内存

JVM初始分配的内存由-Xms指定,默认是物理内存的1/64;JVM最大分配的内存由-Xmx指定,默认是物理内存的1/4。默认空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制;空余堆内存大于70%时,JVM会减少堆直到-Xms的最小限制。因此服务器一般设置-Xms、-Xmx相等以避免在每次GC后调整堆的大小。

设置JVM内存的参数有四个

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

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

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

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

操作步骤

  1. 执行命令:free -h,查询当前的内存占用情况(Mem是当前物理内存使用情况,Swap是swap交换分区使用情况)

         

    2. 执行命令:top,查看各个应用的内存占用情况

        

       

       第一行:
       10:51:46 — 当前系统时间
       601 days, 17:08 — 系统已经运行了601天17小时8分钟(在这期间没有重启过)
       1 users — 当前有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

  • 2
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java启动JAR包的方式有两种:命令行启动和双击启动。 命令行启动的优点是灵活性高,可以指定JVM参数、启动类、类路径等,适用于需要定制化的场景。缺点是需要手动输入命令,不够方便快捷。 双击启动的优点是操作简单,只需要双击JAR包即可启动,适用于普通用户使用的场景。缺点是无法指定JVM参数,只能使用默认设置,对于需要定制化的场景可能不够灵活。 总的来说,Java启动JAR包的方式应根据实际需求选择,如果需要定制化,建议使用命令行启动;如果是普通用户使用,建议使用双击启动。 ### 回答2: Java启动jar包有以下几种方式,包括命令行启动、双击启动和使用脚本启动。 首先说命令行启动的优点。通过命令行启动jar包可以更加灵活地控制启动的参数和选项。我们可以指定java虚拟机的配置参数,如堆内存大小、GC算法等,从而更好地适应我们的应用需求。另外,命令行启动方便于调试。我们可以通过在启动命令中加上调试参数,如设置断点、查看堆栈信息等,帮助我们定位问题并进行调试。 接下来说命令行启动的缺点。命令行启动需要我们手动输入一串启动命令,对于一些不熟悉命令行操作的用户来说,可能会存在一定的学习成本。另外,过于复杂的启动参数配置也会增加用户的操作难度和出错的可能性。 然后说双击启动的优点。双击启动是一种简单便捷的启动方式,对于没有命令行操作经验的用户来说更加友好。用户只需双击jar包,系统会自动调用Java虚拟机运行jar包,省去了手动输入命令的步骤。 最后说双击启动的缺点。双击启动方式缺少灵活性,无法像命令行一样对启动参数进行配置。此外,双击启动方式在出错时也无法提供详细的错误信息,给问题定位和调试带来一定的困难。 除了上述两种方式外,还可以通过编写启动脚本来启动jar包。这种方式可以灵活定制启动方式,方便应用的部署和管理。但是使用脚本启动需要一定的脚本编写和维护的知识。 综上所述,Java启动jar包的方式各有优缺点,开发者需要根据需要选择适合自己的方式。如果对启动参数有特殊要求或需要进行调试,可以选择命令行启动;如果对操作简单性有要求,可以选择双击启动;如果需要更加灵活的控制和管理,可以选择脚本启动

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值