b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

最佳解决方案:有关Linux系统中CPU使用率过高的故障排除思路和解决方案

电脑杂谈  发布时间:2020-12-14 16:05:27  来源:网络整理

有关Linux系统中CPU使用率过高的故障排除思路和解决方案

更新时间:2019年7月16日09:07:18作者:王老师谈运维

本文主要向您介绍Linux系统中CPU使用率过高的故障排除思路和解决方案。本文介绍的示例代码非常详细,对于每个人学习或使用Linux都有一定的参考学习价值。你们的朋友,让我们一起学习。

前言

作为Linux运维工程师,在日常工作中,我们会遇到Linux服务器上的CPU负载高100%的情况。如果CPU继续高位运行,将会影响业务系统的正常运行,并给企业带来损失。

linux进程占用cpu过高

许多操作和维护学生在遇到这种情况时常常感到茫然。通常使用以下两种方法来快速定位CPU过载问题:

方法1

第一步:使用

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

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

第2步:使用

top -H -p [进程ID]

找到在进程中消耗最多资源的线程的ID

第3步:使用

echo'obase = 16; [线程ID]'| bc或printf“%x \ n” [线程ID]

将线程ID转换为十六进制(字母应为小写)

bc是linux的计算器命令

linux进程占用cpu过高_linux进程占用cpu过高

第4步:执行

jstack [进程ID] | grep -A 10 [十六进制线程ID]“

查看线程状态信息

方法二

第一步:使用

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

查找占用过多CPU的进程

第2步:使用

ps -mp pid -o螺纹,tid,时间|排序-rn

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

第3步:使用

echo'obase = 16; [线程ID]'| bc或printf“%x \ n” [线程ID]

将所需的线程ID转换为十六进制格式

第4步:使用

jstack pid | grep tid -A 30 [十六进制的线程ID]

打印线程堆栈信息

案例分析

场景描述

linux进程占用cpu过高_linux进程占用cpu过高

解决生产环境中JAVA进程的高CPU使用率

解决过程

1、根据最高命令,发现使用PID 2633的Java进程占用了300%的CPU和故障。

2、找到进程后,如何找到特定的线程或代码?首先显示线程列表,然后根据CPU使用率高的线程对其进行排序:

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

显示的结果如下:

linux进程占用cpu过高

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

3、将所需的线程TID转换为十六进制格式

linux进程占用cpu过高_linux进程占用cpu过高

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

4、最后,使用jstack命令在进程下方打印出线程的堆栈信息:

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

与故障排除相比,发现故障同样重要!市场上大多数监视软件都可以实现服务器负载的实时观察,例如:Zabbix,Nagios,阿里云监视(用于云服务器)等。但是,大多数软件需要运维生来积极设置规则或发现问题以发现问题。如何被动接收警报?

我推荐一个实用的运维软件-王教授。对于已经在阿里云上部署业务的用户,他们只需要绑定需要监视的只读AcessKey,即可将云上资源的警报信息及时通知相应的团队成员。

linux进程占用cpu过高

从主动变为被动的方式,一方面减少了运维工程师的工作量,另一方面也减少了疏忽或无知的警告。

摘要

以上是本文的全部内容。希望本文的内容对每个人的学习或工作都有一定的参考价值。感谢您对Scripthome的支持。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/shoujiruanjian/article-340461-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      热点图片
      拼命载入中...