前言

作为 Linux 运维工程师,在日常工作中我们会遇到 Linux服务器上出现CPU负载达到100%居高不下的情况,如果CPU 持续跑高,则会影响业务系统的正常运行,带来企业损失。

很多运维的同学遇到这种状况往往会不知所措,对于CPU过载问题通常使用以下两种方式即可快速定位:

方法一

第一步:使用

top命令,然后按shift+p按照CPU排序

找到占用CPU过高的进程的pid

第二步:使用

top -H -p [进程id]

找到进程中消耗资源最高的线程的id

第三步:使用

echo 'obase=16;[线程id]' | bc或者printf "%x\n" [线程id]

将线程id转换为16进制(字母要小写)

bc是linux的计算器命令

第四步:执行

jstack [进程id] |grep -A 10 [线程id的16进制]”

查看线程状态信息

方法二

第一步:使用

top命令,然后按shift+p按照CPU排序

找到占用CPU过高的进程

第二步:使用

ps -mp pid -o THREAD,tid,time | sort -rn

获取线程信息,并找到占用CPU高的线程

第三步:使用

echo 'obase=16;[线程id]' | bc或者printf "%x\n" [线程id]

将需要的线程ID转换为16进制格式

第四步:使用

jstack pid |grep tid -A 30 [线程id的16进制]

打印线程的堆栈信息

案例分析

场景描述

生产环境下JAVA进程高CPU占用故障排查

解决过程

1、根据top命令,发现PID为2633的Java进程占用CPU高达300%,出现故障。

2、找到该进程后,如何定位具体线程或代码呢,首先显示线程列表,并按照CPU占用高的线程排序:

[root@localhost ~]# ps -mp 2633 -o THREAD,tid,time | sort -rn

显示结果如下:

找到了耗时最高的线程(TID)3626,占用CPU时间有12分钟了!

3、将需要的线程TID转换为16进制格式

[root@localhost ~]# printf "%x\n" 3626

e18

4、最后使用jstack命令打印出该进程下面的此线程的堆栈信息:

[root@localhost ~]# jstack 2633 |grep "e18" -A 30

相比故障的解决而言,发现故障也同等的重要!市场上的大多数监控软件都能实现服务器负载的实时观测,比如:Zabbix、Nagios、阿里云监控(针对云服务器)等。但是当中大部分的软件都需要运维同学主动去设置规则或者检测才能发现问题,如何被动的也能收到告警呢?

推荐大家一个实用的运维软件——王教授,对于业务部署在阿里云上的用户,只需绑定需要监控的只读AcessKey,即可将云上资源的告警信息及时通知给对应的团队成员。

化主动为被动的方式,一方面减轻了运维工程师的工作,另一方面也减小了运维漏看或者忽略告警的情况发生。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。

cpu满了卡住 linux_Linux系统中CPU占用率较高问题排查思路与解决方法相关推荐

  1. linux 使cpu使用率升高_Linux系统中CPU占用率较高问题排查思路与解决方法

    Linux服务器上出现CPU负载达到100%居高不下的情况,如果CPU 持续跑高,则会影响业务系统的正常运行: CPU利用率.根据经验来看,用户空间进程占用CPU比例在 65-70%之间,内核(系统) ...

  2. linux cpu不足处理运维,Linux运维知识之Linux服务器CPU占用率较高问题排查思路

    本文主要向大家介绍了Linux运维知识之Linux服务器CPU占用率较高问题排查思路,通过具体的内容向大家展现,希望对大家学习Linux运维知识有所帮助. 注意:本文相关配置及说明已在 CentOS  ...

  3. Linux 系统 CPU 占用率较高问题排查思路

    CPU负载查看方法: 使用vmstat查看系统维度的CPU负载 使用top查看进程维度的CPU负载 https://blog.csdn.net/lufeisan/article/details/531 ...

  4. EasyCVR播放时cpu占用率较高的原因分析及解决方法

    TSINGSEE青犀视频开发的视频平台都具备Windows和Linux的运行版本,可以根据需求自由选择.当遇到项目现场有流量较大的情况,大多数用户都比较担心对CPU的占用,这种情况可以通过开启按需播放 ...

  5. 【性能定位】cpu占用率过高问题排查

    问题:公司一个系统在测试单个功能登录上,并发才5个用户时,CPU使用率就瞬间飙升到100% 排查过程: 1.首先查看系统资源占用信息,使用top命令,查看那个进程占用CPU高 发现正在运行的JAVA项 ...

  6. Ambari Server网口带宽占用率很高问题的分析和解决办法

    Ambari是Hortonworks出一款开源Hadoop管理系统,是用python写的,目前市场是开源的Hadoop管理系统好像就只有这一个,虽然Ambari问题很多,也不好用,但也没办法了. 最近 ...

  7. Win10删除或移动文件进度卡在99%->系统资源管理器cpu占用率及电源使用情况非常高的解决方法

    题主遇到这个问题也是非常苦恼,尝试多种方案,最终更新系统才完美解决.供各位参考. 1.怀疑是系统延迟问题,这是网上查询到90%一致的解决方法,但对我无效,你可以试一试. 删除文件时卡在99%,需等待一 ...

  8. java项目内存使用率过高排查_项目内存或者 cpu 占用率过高如何排查

    前言:小编总结了之前生产环境cpu 占用率过高等问题,小编功力不够深厚,文章如有不对的地方,还望各位大神指正. 排查原因:客服反馈说系统访问缓慢 一. 在排查问题的过程中针对 CPU 的问题, 使用以 ...

  9. xp系统中提示文件WINDOWS\SYSTEM32\CONFIG\SYSTEM缺失问题的解决方法

    1.首先有一个pe启动的u盘 2.进入到pe系统中,找到系统引导修复,然后打开它 3.如果可以修复,就不用往下看了,重启电脑正常进入电脑桌面. 4.如果不可以修复的话,在原系统盘中创建一个a.txt文 ...

最新文章

  1. 关于优先队列的一些基本操作
  2. 图解TensorFlow--大数据平台技术栈16
  3. 扩展虚拟机Ubuntu磁盘容量空间
  4. 硬核干货:如果样本量不一一样多,或者不是一一对应关系,如何做差异?相关?...
  5. 疑似三星Galaxy S11入网:搭载骁龙865处理器+支持25W快充
  6. String.intern()使用总结
  7. 如何在矩池云GPU云中安装MATLAB R2017b软件
  8. plsql怎么导出几十w的数据到csv_Greenplum数据库使用总结(干货满满)初级使用
  9. RunLoop相关知识
  10. 七. 多线程编程3.主线程
  11. 小米手机4获取ROOT权限的步骤
  12. 软件测试之因果图分析法
  13. python 使打开的浏览器最大化
  14. 腾讯课堂老师可以看到学生本人吗?
  15. Python 手把手实现M3U8视频抓取
  16. 日期函数months_between的用法
  17. xss labs 挑战之旅
  18. Shelve Silently 静默搁置 Android Studio Git 功能
  19. 深度学习决策支持 时空预测_重工业的预测性维护和决策支持系统
  20. scapy(一):简介及实现ARP攻击

热门文章

  1. 用python汇总pdf文件_Python处理PDF文件-简译与总结
  2. php session_start() 非常慢,PHP session_start()很慢问题分析与解决办法
  3. php redis 二进制,php-redis扩展
  4. sqlalchemy 查询结果 RowProxy 转 list
  5. Fail to find the dnn implementation. [Op:CudnnRNN]解决办法
  6. tensorflow2.0中dataset API 总结
  7. 3D人体姿态估计--Coarse-to-Fine Volumetric Prediction for Single-Image 3D Human Pose
  8. 三层神经网络前向后向传播示意图
  9. sysbench0.5 mysql_sysbench 0.5 安装及 MySQL 基准测试
  10. linux 命令-f1,linux之‘cut -f1’命令详解