常见cpu飙升的原因
<ul><li>程序中存在死循环或者长时间占用 CPU 的操作。比如,不合理的递归操作、循环操作等。</li></ul>
<ul><li>程序中存在大量的计算操作,例如复杂的算法、大量的数值计算等。</li></ul>
<ul><li>程序中存在大量的线程创建和销毁操作,以及线程间的竞争和同步操作。</li></ul>
<ul><li>程序中存在内存泄漏或者内存溢出,导致 GC 不断进行垃圾回收。</li></ul>
<ul><li>程序中存在大量的数据库操作,导致数据库连接池的耗尽和数据库负载过高。</li></ul>
1.工具一:阿里arthas
1、下载arthas.jar---curl -O https://arthas.aliyun.com/arthas-boot.jar
2、执行 java -jar arthas-boot.jar<br>
2.linux+jdk自带的jstack
2、ps H -eo pid,tid,%cpu | grep 119521[pid]<br>
3、printf '%x\n' 119683<br>
4、jstack 119521 | grep '1d383' -C10 --color <br>
常见内存OOM的原因
1.内存泄露造成。<br>
2.加载的文件或者图片过大造成。<br>
3.线程数量过多,<b>队列容量设置过大</b>。
1.工具一:阿里arthas+jvisualvm
2.heapdump heapdump.hprof<br>
2.工具二:jdk自带jstack
1、jps<br>
3、jmap -histo:live 23324 |more