机器CPU load过高问题排查

摘要:
loadaverage的概念定义了系统的平均负载:在特定时间间隔内运行队列中的平均进程数(CPU上正在运行或等待运行的进程数)。如果一个进程满足以下条件,它将处于运行队列中:它没有等待I/O操作的结果,它没有主动进入等待状态(即,它没有调用“等待”),并且它没有停止(例如,等待终止)。在Linux中,进程分为三种状态,一种是阻塞进程,另一种是runnablepro

load average的概念

系统平均负载定义:在特定时间间隔内运行队列中(在CPU上运行或者等待运行多少进程)的平均进程数。如果一个进程满足以下条件则其就会位于运行队列中:

  • 它没有在等待I/O操作的结果
  • 它没有主动进入等待状态(也就是没有调用’wait’)
  • 没有被停止(例如:等待终止)

在Linux中,进程分为三种状态,一种是阻塞的进程blocked process,一种是可运行的进程runnable process,另外就是正在运行的进程running process

进程可运行状态时,它处在一个运行队列run queue中,与其他可运行进程争夺CPU时间。 系统的load是指正在运行和准备好运行的进程的总数

比如现在系统有2个正在运行的进程,3个可运行进程,那么系统的load就是5。load average就是一定时间内的load数量

只要每个CPU的当前活动进程数不大于3那么系统的性能就是良好的,如果每个CPU的任务数大于5,那么就表示这台机器的性能有严重问题

CPU使用率高并不总是意味着CPU工作繁忙,它有可能是正在等待其他子系统。在进行性能分析时,将所有子系统当做一个整体来看是非常重要的,

因为在子系统中可能会出现瀑布效应。衡量CPU 系统负载的指标是load,load 就是对计算机系统能够承担的多少负载的度量,简单的说是进程队列的长度。

简单的例子比如食堂有五个窗口,当有小于五个学生来打饭,五个窗口都能及时处理,但是当学生个数超过5个,必然会出现等待的学生。请求大于当前的处理能力,会出现等待,引起load升高。

Load Average 就是一段时间(1min,5min,15min)内平均Load。平均负载的最佳值是1,这意味着每个进程都可以在一个完整的CPU 周期内完成。

cpu load高的排查思路

1. 首先排查cpu使用率高的进程中各线程的cpu使用率,通过命令 ps -Lp pid cu 或者 top -Hp pid

2. ps p 9534 -L -o pcpu,pmem,pid,tid,time,tname,cmd 

3.追踪线程内部,查看load过高对应的thread,jstack pid > stack.out

免责声明:文章转载自《机器CPU load过高问题排查》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇struts2令牌(token)内部原理mysql-8.0 安装教程(自定义配置文件,密码方式已修改)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

01 psutils模块运用

python3.6.7安装脚本 baim0手撸版 #!/bin/bash cd /opt yum update -y yum -y groupinstall "Development tools" yum install openssl-devel bzip2-devel expat-devel gdbm-devel readline-devel sql...

c# 打印 主板信息CPU信息

Win32_Processor CPU 参数说明:AddressWidth --在32位操作系统,该值是32,在64位操作系统是64。Architecture --所使用的平台的处理器架构。AssetTag --代表该处理器的资产标签。Availability --设备的状态。Caption --设备的简短描述Characteristics --处理器支持...

Android应用的电量消耗和优化的策略

 对于Android移动应用的开发者来说,耗电量的控制一直是个老大难问题。      我们想要控制耗电量,必须要有工具或者方法比较准确的定位应用的耗电情况。下面,我们先来分析下如何计算android应用的耗电量。    在android自带的设置里面有电量计算的界面,如下图: <ignore_js_op>    我们看下是如何实现的:​    ...

详解tomcat的连接数与线程池

前言 在使用tomcat时,经常会遇到连接数、线程数之类的配置问题,要真正理解这些概念,必须先了解Tomcat的连接器(Connector)。 在前面的文章详解Tomcat配置文件server.xml中写到过:Connector的主要功能,是接收连接请求,创建Request和Response对象用于和请求端交换数据;然后分配线程让Engine(也就是Ser...

Linux中ps -ef , ps -aux命令的用法

Linux中ps -ef , ps -aux命令的用法 ## 其中各列的内容意思如下 UID //用户ID、但输出的是用户名 PID //进程的ID PPID //父进程ID C //进程占用CPU的百分比 STIME //进程启动到现在的时间 TTY //该进程在那个终端上运行,若与终端无关,则显示? 若为pts/0等,则表示由网络连接主机进程。 CM...

Nginx优化:CPU篇

CPU 1.worker进程数量应当等于cpu核心数配置语法:worker_processes number | auto;比如:worker_processes auto;配置位置:main 2.worker进程绑定cpu配置语法:worker_cpu_affinity cpumask 1000 0100 0010 0001; # 4核为例默认配置:wo...