• jvm 调优


    JVM 调优设计的几个方面:

    1. 合理的编写程序
      2.充分并合理的使用硬件资源
      3.合理地进行jvm调优

    非堆内存:

    1. 堆外内存
    2. 文件句柄
    3. socket句柄
    4. 数据库连接

    详细解释:

    1. 文件: 采用文件分割,,限制文件大小。
    2. 网络IO:
      限流
    3. 大对象:对于jvm 绝对是一个噩梦
      1. 避免使用大对象
      2.尽量减少大对象的生存时间(朝生夕死)
    4. JDK32 位版本,64位版本,服务器内存有16G,32G,64G
      4.1 JDK32 位版本 最高可以使用4G
      JDK64位版本,可以使用更多内存
      参考:https://blog.csdn.net/XXJ19950917/article/details/73527313
      4.2 尽量使用32位版本,因为目前的64位版本效率没有32位高
      4.3 -XX:HeapDumpOnOutOfMemoryError -Xmx10G ,这个dump文件会有10G
      5.现在一线互联网公司的做法:将大内存服务器分为小内存服务
      5.1 虚拟机
      5.2 docker
    5. JVM 调优原则
      6.1 降低Full GC的频次,一天有1-2次,控制在晚上,重启服务器或者我们来一个定时任务触发Full GC
      6.2 确保大对象的“朝生夕死”
      6.3 提高大对象进入老年代的门槛(-XX:MaxTenuringThreshold=15 经过MinorGC 15次后才进入老年代)

    CMSInitiatingOccupancyFraction = (老年代-Eden-1个Survivor)/(老年代-新生代)*100
    -server -Xmn500m -Xms1200m -Xmx1200m -XX:PermSize=256m -XX:MaxPermSize=256m -XX:SurvivorRatio=1 -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=70 -XX:+UseCMSCompactAtFullCollection
    -XX:+CMSFullGCsBeforeCompaction=5 -XX:+HeapDumpOnOutOfMemoryError -Xloggc:log/gc.log -XX:+PrintGCDetails -XX:+CMSParallelRemarkEnabled

    -Xmn:新生代 -Xmx:最大堆内存 (-XX:PermSize=256m -XX:MaxPermSize=256m):JDK1.7中的,jdk1.8使用的是Mataspace,
    SurvivorRatio设置Eden在新生代中的比例.
    -XX:+UseConcMarkSweepGC 表示使用CMS垃圾回收器
    -Xloggc:log/gc.log 分析o(老年代)增长是否合理,FullGC频率,Eden:s0:s1的比例是否合理

  • 相关阅读:
    NUnit进行单元测试
    VSTS 安装步骤
    使用 Visual Studio Team Test 进行单元测试
    vss使用技巧
    struts 2.1 action 学习
    apache2 反向代理
    zz mysql中文
    trac ubuntu 安装
    ejb 3中bean的种类
    linux下VsFTP配置全方案
  • 原文地址:https://www.cnblogs.com/wanthune/p/12906504.html
Copyright © 2020-2023  润新知