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,感兴趣的建议多了解

posted @   虚幻的光芒  阅读(71)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效
点击右上角即可分享
微信分享提示