本文主要是介绍linux排查CPU或内存占用高问题(JAVA程序导致linux服务器CPU过高和内存过高),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
最近生产环境经常发生CPU和内存异过高的情况,以前一般排查的也是一些死锁问题,排查死锁的时候直接打印程序的堆栈信息,然后查看线程的各种状态,差不多都能猜到问题所在,这两天cpu和内存问题刚开始也是直接打印堆栈信息,然后发现堆栈信息太多,很难定位到是什么导致了cpu和内存问题,虽然在堆栈文件里面找到很多自己写的业务代码,但是因为执行的线程比较多,查询起来比较费劲(基本上来说除非交易量很大,应用支持不了需要扩容,大部分的问题都是我们自己写的业务代码导致的。),网上对这些排查的方式也比较多了,这里记录一下自己的操作记录,生产环境我们也操作不了,我们提供操作方法,其他的就给运维去处理 了。
参考链接:这类问题还是比较成熟的,网上方案也很多,自己动手做一遍才能记住。
https://blog.csdn.net/notsaltedfish/article/details/80209538
https://blog.csdn.net/xgjianstart/article/details/53427420
https://blog.csdn.net/qq_24949727/article/details/70738723
https://www.iteye.com/blog/host-2365495
https://blog.csdn.net/daiyudong2020/article/details/52760846
https://www.cnblogs.com/lixiuyuan999/p/6384167.html
第一步:找出最占线程和CPU的进程
既然是CPU和内存高导致的问题,那么第一步肯定是
这篇关于linux排查CPU或内存占用高问题(JAVA程序导致linux服务器CPU过高和内存过高)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!