🗒️程序CPU100% | 内存泄漏通用排查步骤
type
status
slug
date
summary
tags
category
password
icon
真正的问题了有很多种,这里只是讲一下解决问题的方法和思路
这类场景不多,但总是会有,遇到了就是学习和实操的机会
实际上也没有很难,了解基础,借助ai工具和排查工具,一样可以解决问题
CPU100%
原因:一般是死循环、死锁、耗时计算(低性能、高复杂度的算法)和频繁的Full GC
基础知识:理解进程、线程、cpu时间片
抽象简述:通过工具分析进程线程状态(或者链路日志),找到频繁执行的代码位置,修复异常(可能是边界没有测试到)
Java
- top查看进程
- top -H -n 1 -p PID查看线程
- jstack -l PID > ./jstack.log 命令输出进程的线程文件,找到文件进行分析
其他工具
node
Node CPU100% 问题分析解决prof工具,找到ticks占用最多的代码方法,行数,然后修复异常
OOM(内存溢出)
原因:Out Of Memory, 简单地说就是内存消耗完了,分配不出内存了。内存泄漏是导致OOM的最常见的因素。OOM导致的直接后果就是进程Crash掉。
这里说自动回收垃圾的语言比如java、node
基础知识:内存分配、堆栈
抽象简述:链路日志(退出前那会)或者通过对内存dump转存,分析大对象的依赖关系,找到问题代码,修复异常
Java
JVM配置参数,OOM时候自动导出heap dump,利用jprofile、Eclipse MAT或者其他工具分析大对象等
其他工具
Node
node 导出dump 似乎有点拉,要提前把进程连接到其他平台,然后通过信号导出 dump?——有点呆的感觉
上一篇
diebian切换镜像源 安装基础软件
下一篇
CPU每秒多少次运算
Loading...