Java应用CPU和内存异常分析
简介 TODO https://my.oschina.net/xionghui/blog/498785 java应用常见故障:高CPU占用、高内存占用、高I/O占用(包括磁盘I/O、网络I/O、数据库I/O等) 高CPU常见场景:死循环(如while导致的较多)、高内存导致 高内存占用也会引起高CPU占用:内存溢出后,java的GC便会运行非常频繁,从而导致高CPU(此时可能已经产生了dump文件,但是应用还能访问,只是速度较慢。临时可考虑先重启服务) 相关命令参考常用命令介绍:1-4 高内存常见场景:List集合数据量过大(常见从数据库获取大量数据,而没有进行分页获取) ^2 java.lang.OutOfMemoryError: PermGen space,原因可能为 程序启动需要加载大量的第三方jar包。例如:在一个Tomcat下部署了太多的应用 java.lang.OutOfMemoryError: Java heap space,原因可能为 Java虚拟机的堆内存设置不够,可以通过参数-Xms、-Xmx来调整 代码中创建了大量大对象,并且长时间不能被垃圾收集器收集(存在被引用) 在Java虚拟机中,内存分为三个代 新生代New:新建的对象都存放这里 老生代Old:存放从新生代New中迁移过来的生命周期较久的对象。新生代New和老生代Old共同组成了堆内存 ...