上一篇文章介绍了如何排查cpu飙升的问题,当然这种方法并不是所有的都适用。
内存溢出的情况我觉得可以分成两种:一种是内存溢出,但是并不会导致宕机。也就是说我们还可以进入到服务器上进行查询排除故障操作。另一种是在极端的情况下,内存溢出直接导致整个服务宕机。
面试的时候经常会问到这个问题。面试会先问生产环境如何排查cpu飙升,或者内存占用过高问题。当你回答出top,jstack 这些命令的时候,会继续问那如果系统内存溢出服务器直接宕机哪?该怎么排查,亲身经历过...
场面十分的尴尬,脑袋一度的短路,放弃了回答。然后答案却十分简单,那就是jvm打印内存使用日志、输入到文件中进行排查使用。
jvm设置参数
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=/opt/jvmdump
在每次发生内存溢出时,JVM会自动将堆转储,dump文件存放在-XX:HeapDumpPath指定的路径下。
然后用jvm文件分析工具分析,定位问题。
我文章中写到的处理问题的方式,只是一个思路或者是一个引导。只是引导横向扩充知识。
页面更新:2024-03-12
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号