专栏首页技术从心CPU占用过高定位?

CPU占用过高定位?

在常见的面试的过程中,面试官都会问你一下常用的的linux命令,如果一上的来就说一些 cd.. , cp ls , vi, mkdir, rm -rf 什么的是没错的但是这些常用的命令说出去就显示不出你的优势,但凡是用过linux的都会这几个常用的命令,所以要突出自己的优势可以了解一些更深入的linux命令。

比如问你常用的5个linux命令你可以说top(整机),vmstat(CPU),free(内存),df(硬盘),iostat (磁盘IO),ifstat(网咯IO)等...

虽说在一些linux大佬面前这些linux命令不值一提但总比一开始说的那些命令要高级的多吧。

这些命令的具体用法可以参考下这个链接有些不是归纳的很好但是凑合着参考下吧!见谅

linux命令百度脑图 http://naotu.baidu.com/file/a728c9843ffc717b91bc8e5883586d5d?token=07193d87b188531f

下面来做个实战的测试,当xian线上遇到CPU占用过高怎么排查,如果是在面试的时候面试官这么问你的话,你回答查看下日志或者根据出错问题查看下百度,那么在面试官那你的印象将不会得到很好的认可。我们必须结合linux和jdk的命令一块分析。

我们写一个java程序放到linux下这是我的java程序,显然这行代码是个死循环当在我们的程序中发生的时候我们该如何定位呢?

接下我们运行一下

可以看到控制台在疯狂的输出使用top命令来查看下

ps -ef 或者jps进一步定位,得知是那个程序出的问题

可以很清晰的看出有个test程序

使用ps -mp 进程 -o THREAD,tid,time 定位到具体的线程或代码

接下一个老方法和旧方法

旧方法:jstack 进程ID | grep tid(16进制线程ID小写英文) -A60(老方法)

但对我现在的服务器好像不太使用所以我使用了个新方法

新方法:jstack 进程ID(新方法)(注意是进程)

会打印出一大串信息我们翻到最底下就可以找到如下报错

打开代码看到第四行找出问题所在

这样我们就简单的通过实战模拟死循环的场景并找到问题出现的所在代码处。

当然一般的代码程序出错我们可以直接用 ps -ef|grep 启动程序名,但是对于CPU占用过高的排查还是需要一定的手段和实战经验的。

每天

进步一点点

本文分享自微信公众号 - 技术从心(gh_d845efe513db),作者:李依金

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-22

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • SpringSecurity的RBAC使用

    经过一个假期的整顿轻松的生活也圆满结束了,在一个星期中完全是放松身心的玩了八天,中间还包括请假的1天。假期前期学习的SpringSecurity的RBAC的使用...

    技术从心
  • leetCode求两数之和?

    问题描述:项目中发现,自定义切面注解在 Controller 层正常工作,在 Service 层却无法正常工作。为了便于分析,去掉代码中的业务逻辑,只留下场景。

    技术从心
  • 程序员除了会CRUD之外,还应该知道什么叫CQRS!

    我们平常最熟悉的就是三层架构,通常都是通过数据访问层来修改或者查询数据,一般修改和查询使用的是相同的实体。然后通过业务层来处理业务逻辑,将处理结果封装成DTO对...

    技术从心
  • 快递小哥:用6年时间做到IT主管

    ? 文 | 糖豆 来源 | 中文业界资讯 在我30岁生日那天,终于收到升职的通知,自己如愿的也从一名小小程序员升职成为IT主管,负责公司硬件设备驱...

    小小科
  • 【答疑释惑】linux学习线路图

    随着android的大热,基于linux的开发也更热了。linux的开发包括driver的开发以及应用程序的开发。 由于我们习惯了windows,在开始使用l...

    程序员互动联盟
  • 1.3 认识Linux

    1.3 认识Linux 1.认识linux linux是一个操作系统 andriod手机操作系统就是linux 2.linux起源 linux之前流行的系统是U...

    运维小白
  • 为什么一定要学习linux系统?

    linux诞生了这么多年,以前还喊着如何能取代windows系统,现在这个口号已经小多了,任何事物发展都有其局限性都有其天花板。就如同在国内再搞一个社交软件取代...

    程序员互动联盟
  • 【编程基础】 linux基础入门--linux为何物?

    接触linux是在大二的时候,那时候迷上了嵌入式linux,把电脑换成了linux系统,学习linux基础知识,学习linux命令,学习shell,泡论坛,就这...

    程序员互动联盟
  • 【大学生学编程】第十章:如何学习linux?

    从事嵌入式开发已经有十几个年头,混到现在已经是迈向40的人了,从2015年结束北漂到现在几乎每天还是在linux上操作下,现在由于电脑的配置都高了,安装个虚拟机...

    程序员互动联盟
  • 如何系统学习Linux

    linux太难用了!(一通鼠标点击,进入/etc) 学习linux,你忘记windows的思维方式了吗? 怎么安装软件阿?那一堆文件是干什么的阿? 学习linu...

    猿人谷

扫码关注云+社区

领取腾讯云代金券