zoukankan      html  css  js  c++  java
  • 一次JVM内存调整

    单台服务器8G内存,2核

    系统里装了redis, rocketmq, mysql, zookeeper, 还有20个左右的微服务,每个微服务的jvm 参数 -Xms128m -Xmx256m -Xmn64m -XX:PermSize=64m -XX:MaxPermSize=128m

    redis,rocketmq,zookeeper 基本是用最小配置

    执行free 只有100m左右的free内存,经常执行一些java命令就返回无法分配内存错误

    通过ps -aux|sort -4knr|head -10  查看10个最占用内存的进程, 基本占用内存比是5%左右(300多M)

    PS:300m是我们使用的堆内存(128m or 256m)+ 非堆内存(64m)

    PS2:如果内存剩余不到40%,JVM就会增大堆到Xmx设置的值,内存剩余超过70%,JVM就会减小堆到Xms设置的值, 所以可能是128M,也可能是256M

    由于这些微服务使用频率不会太高,特别一些CMS服务的微服务,占用内存低,使用内存低,即使GC STW也影响不大,决定要调整参数,为系统腾出更多内存

    通过 jstat -gc pid命令,可以看每个java进程的内存(新生代,老年代,永久代)的使用状况, 发现不少老年代都占用100M以上,调整JVM参数为 -Xms128m -Xmx128m -Xmn64m -XX:PermSize=64m -XX:MaxPermSize=64m

  • 相关阅读:
    poj 1286
    poj 1815
    poj 3368
    十个利用矩阵乘法解决的经典题目
    poj 1026
    hdu 1394
    poj 3270
    poj 2154
    《重构 改善既有代码的设计》读书笔记2
    Android OpenGL ES: 渐变颜色的三角形
  • 原文地址:https://www.cnblogs.com/devilwind/p/7128084.html
Copyright © 2011-2022 走看看