美文网首页
2022-04-12 解决GC overhead limit e

2022-04-12 解决GC overhead limit e

作者: 千容安 | 来源:发表于2022-04-12 22:42 被阅读0次

    按网上的指点一步步来,先要得到程序的pid,看看占用内存大小



    由于程序卡着了,输入命令没有反应,所以new session,输入ps aux

    应该是pid为6868的这个是我此前跑不通的程序。
    jmap -heap 6868

    解释:
    因为新版的Linux系统加入了 ptrace-scope 机制,该机制的目的是防止用户访问正在执行的进程的内存,但是如jinfo,jmap这些调试类工具本身就是利用ptrace来获取执行进程的内存等信息。

    解决:root下sysctl -w kernel.yama.ptrace_scope=0

    sudo vim /etc/sysctl.d/10-ptrace.conf
    添加或修改以下这一句:(0:允许, 1:不允许)
    kernel.yama.ptrace_scope = 0
    输入:wq,退出vim编辑器

    执行echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope

    fsck.ext4 -y /proc/sys/kernel/yama/ptrace_scope 这个方法没有用

    第二次设置参数:(没有用)
    JAVA_OPTS="-server -Xms4000m -Xmx20000m -Xmn512m -Xss256k -XX:PermSize=256m -XX:MaxPermSize=256m -XX:SurvivorRatio=8 -XX:+UseConcMarkSweepGC -XX:+UseParNewGC -XX:+UseCMSCompactAtFullCollection -XX:+CMSParallelRemarkEnabled -XX:CMSInitiatingOccupancyFraction=70 -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=${SPACEXLOG}/"

    老师给出了解决方案:
    程序运行前修改的环境变量,让java内存可以用的更多一点:
    export MAX_MEMORY_OVERRIDE=12800

    相关文章

      网友评论

          本文标题:2022-04-12 解决GC overhead limit e

          本文链接:https://www.haomeiwen.com/subject/aaensrtx.html