CPU或内存占用过高的定位问题
记录一次面试
面试官问:你的简历中有提到优化代码中比较慢的部分,那么如果程序占用CPU和内存很高,你是怎么知道是哪里出了问题呢?
出现上述的情况有很多,比如死循环,死锁等等,需要了解的可以搜索相关案例查看。
解决方法:
服务器CPU或内存飙升,占用过高,通常服务器是跑在linux系统中
关键命令:top
top命令可以查看当前系统中进程cpu和内存的使用情况
通过表格中我们可以清晰地看到进程对应的PID和其他信息
ps -mp pid -o THREAD,tid | sort -r
上述命令可以根据进程pid找到对应线程tid,以及内存和cpu的使用情况
例:ps -mp 2000 -o THREAD,tid | sort -r
printf '%x\n' tid
上述命令可以打印出tid对应的16进制数,方便我们后续分析
例:printf '%x\n' 2001
jstack pid | grep tid -A
上述命令可以打印出堆栈信息
例:jstack 2000 | grep 2001 -A
打出对应的堆栈信息就好分析问题了
当然我们也可以借助工具Arthas,感兴趣的建议多了解
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效