Linux定位java内存或cpu问题

1 篇文章 0 订阅
1 篇文章 0 订阅
// 找到占用资源最多的进程
top
  • top后面的参数-c可以显示进程详细的信息。top命令执行的时候还可以执行一些快捷键:
  • 1,对于多核服务器,可以显示各个CPU占用资源的情况
  • shift+h 显示所有的线程信息
  • shift+w 将当前 top 命令的设置保存到~/.toprc 文件中,这样不用每次都执行快捷键了

在这里插入图片描述

// 查看系统维度的CPU负载,1s统计一次数据
vmstat -n 1
// 

在这里插入图片描述

  • load average:cpu负载,三个数字代表系统在过去1分钟、5分钟、15分钟内运行进程队列中的平均进程数量。理想情况下,每个 CPU 应该满负荷工作,并且没有等待进程,此时,平均负载 = CPU 逻辑核数。在实际生产系统中,不建议系统满负荷运行。通用的经验法则是:平均负载 = 0.7 * CPU 逻辑核数。/proc/cpuinfo 文件中读取 CPU 信息
  • us:用户模式消耗的 CPU 时间百分比。该值较高时,说明用户进程消耗的 CPU 时间比较多,比如,如果该值长期超过 50%,则需要对程序算法或代码等进行优化。
  • sy:内核模式消耗的 CPU 时间百分比。
  • wa:IO 等待消耗的 CPU 时间百分比。该值较高时,说明 IO 等待比较严重,这可能磁盘大量作随机访问造成的,也可能是磁盘性能出现了瓶颈。
  • id:处于空闲状态的 CPU 时间百分比。如果该值持续为 0,同时 sy 是 us 的两倍,则通常说明系统则面临着 CPU 资源的短缺。
// 查看由进程启动的线程使用资源情况
top -p 31071 -H

在这里插入图片描述

jstack -l 31071 > stack.log
// 将线程的tpid转为16进制,到stack.log中查找
printf "%x \n" 31093
grep 31093 stack.log -a3

引用的博客
CPU平均负载为多少更合理?
linux CPU占用飙升的排查方法
Linux cpuinfo 详解
发布或重启线上服务时抖动问题解决方案
JVM故障分析及性能优化系列

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值