• JVM 参数调优配置


    在 tomcat 配置文件 tomcat/bin/catalina.sh 中 配置  JAVA_OPTS="-server -Xms2048m -Xmx2048m -Xss1024K -XX:PermSize=512m -XX:MaxPermSize=1024m"。在配置文件第一行进行配置。

    注意:-server 一定要作为第一个参数,在多个CPU时性能佳。

    -Xms2048m:设置JVM初始分配的堆内存为2048m,初始Heap大小,使用的最小内存,cpu性能高时此值应设的大一些,cpu性能高时此值应设的大一些。默认是物理内存的1/64

    -Xmx4096m:设置JVM最大可用堆内存为4096M,java heap最大值,使用的最大内存。默认是物理内存的1/4

    上面两个值是分配JVM的最小和最大内存,取决于硬件物理内存的大小,建议均设为物理内存的一半。  

    -Xss1024k   :设置每个线程的堆栈大小为1024K。JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K.更具应用的线程所需内存大小进行 调整.在相同物理内存下,减小这个值能生成更多的线程.但是操作系统对一个进程内的线程数还是有限制的,不能无限生成,经验值在3000~5000左右.

    -XX:PermSize=512m:设置非堆区初始内存分配大小为512m,其缩写为 permanent size(持久化内存),设定内存的永久保存区域。

    -XX:MaxPermSize=512m:设置JVM最大允许分配的非堆内存最大上限为512m,设定最大内存的永久保存区域。默认是物理内存的1/4

    -Xss 15120 这使得JBoss每增加一个线程(thread)就会立即消耗15M内存,而最佳值应该是128K,默认值好像是512k.

    +XX:AggressiveHeap 会使得 Xms没有意义。这个参数让jvm忽略Xmx参数,疯狂地吃完一个G物理内存,再吃尽一个G的swap。

    -Xss  每个线程的Stack大小 

    -verbose:gc 现实垃圾收集信息

    -Xloggc:gc.log 指定垃圾收集日志文件

    -Xmn young generation的 heap 大小,一般设置为Xmx的3、4分之一

    -XX:+UseParNewGC 缩短minor收集的时间

    -XX:+UseConcMarkSweepGC  缩短major收集的时间,提示:此选项在Heap Size 比较大而且Major收集时间较长的情况下使用更合适

    堆内存分配

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

    非堆内存分配

        JVM使用-XX:PermSize设置非堆内存初始值,默认是物理内存的1/64;由XX:MaxPermSize设置最大非堆内存的大小,默认是物理内存的1/4。

    注意:

    通过上面对JVM内存管理的介绍我们已经了解到JVM内存包含两种:堆内存和非堆内存,另外JVM最大内存首先取决于实际的物理内存和操作系统。所以说设置VM参数导致程序无法启动主要有以下几种原因:

    1) 参数中-Xms的值大于-Xmx,或者-XX:PermSize的值大于-XX:MaxPermSize;

    2) -Xmx的值和-XX:MaxPermSize的总和超过了JVM内存的最大限制,比如当前操作系统最大内存限制,或者实际的物理内存等等。说到实际物理内存这里需要说明一点的是,如果你的内存是1024MB,但实际系统中用到的并不可能是1024MB,因为有一部分被硬件占用了。

  • 相关阅读:
    [转] 传统 Ajax 已死,Fetch 永生
    React组件属性部类(propTypes)校验
    [转]webpack进阶构建项目(一)
    package.json 字段全解析
    [转]Nodejs基础中间件Connect
    [转]passport.js学习笔记
    [转]Travis Ci的最接底气的中文使用教程
    建站笔记1:centos6.5下安装mysql
    [软件人生]关于认知,能力的思考——中国城市里的无知现象片段
    一步一步学Spring.NET——1、Spring.NET环境准备
  • 原文地址:https://www.cnblogs.com/ming-blogs/p/11932974.html
Copyright © 2020-2023  润新知