美文网首页
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