如何理解CPU负载

简介: 如何理解CPU负载

CPU平均负载是最常见的体现CPU负载情况的指标,通常可以使用top或者uptime命令查询。

uptime命令结果如下

11:02:24 up 1 day ,7:13, 2 users, load average: 0.27,0.10,0.07

输出结果的各部分含义如下:

11:02:24:表示当前时间,11点02分24秒

up 1 day,7:13:表示系统运行时间,运行了1天,7个小时13分钟

2 users:系统登陆用户数,当前有2个登陆用户,数据来源于/var/run/utmp

load average:0.27,0.10,0.07:表示系统CPU过去1分钟、5分钟、15分钟的平均负载。这三个值应该结合起来分析,例如如果15分钟>5分钟>1分钟,则代表CPU平均负载在不断下降,反之CPU负载在不断上升。

top命令输出的结果第一行与uptime命令输出结果是一致的,由于top命令能输出更多系统的信息,一般使用中建议直接使用top命令即可。

知道如何查询CPU的平均负载以后,我们还需要深刻理解CPU平均负载的含义,才能用于进行系统的性能优化以及问题定位。

CPU平均负载:平均负载是指单位时间内,系统处于可运行状态和不可中断状态的平均进程数,也就是平均活跃进程数。

可运行状态进程:指正在使用 CPU 或者正在等待 CPU 的进程,我们使用命令ps aux输出结果中STAT列值为 R 状态(Running 或 Runnable)的进程。

不可中断状态进程:正处于内核态关键流程中的进程,并且这些流程是不可打断的,称为Uninterruptible Sleep。最常见的不可中断进程是等待硬件设备的 I/O 响应,比如,当一个进程向磁盘读写数据时,为了保证数据的一致性,在得到磁盘回复前,它是不能被其他进程或者中断打断的,这个时候的进程就处于不可中断状态。如果此时的进程被打断了,就容易出现磁盘数据与进程数据不一致的问题,不可中断状态实际上是系统对进程和硬件设备的一种保护机制。也正是由于这个原因,这种进程也被称为Disk Sleep进程,使用命令ps aux命令,输出结果中STAT列中看到状态值为D的进程就是不可中断状态进程。

平均负载最理想的情况等于CPU总核数。但是实际生产上如果CPU负载超过CPU总核数的70%,就需要重点关注了,特别是有不断上升的趋势的时候。

物理CPU总数可以通过以下命令获得:

cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l

CPU总核数可以通过以下命令获得:

cat /proc/cpuinfo| grep "processor"| wc -l或者grep 'model name' /proc/cpuinfo | wc -l

每个物理CPU的核数

cat /proc/cpuinfo| grep "cpu cores"| uniq

查看CPU详细信息可以使用lscpu命令

相关文章
|
6月前
|
运维 Linux
Linux系统调优详解(二)——CPU负载查看相关命令
Linux系统调优详解(二)——CPU负载查看相关命令
140 10
|
传感器 监控 Java
如何正确理解 CPU 使用率和平均负载的关系?看完你就知道了
CPU(Central Processing Unit)是计算机系统的运算和控制核心,是信息处理、程序运行的最终执行单元,相当于系统的“大脑”。
2539 0
如何正确理解 CPU 使用率和平均负载的关系?看完你就知道了
|
3月前
|
存储 运维 监控
在Linux中,发现CPU负载过大,接下来怎么办?
在Linux中,发现CPU负载过大,接下来怎么办?
|
5月前
|
监控 Java API
使用Java检测当前CPU负载状态的技术博客
使用Java检测当前CPU负载状态的技术博客
85 0
|
6月前
|
监控 测试技术
【亮剑】理解CPU负载对服务器稳定性的重要性,并提供了诊断和解决CPU负载过高问题的步骤
【4月更文挑战第30天】本文阐述了理解CPU负载对服务器稳定性的重要性,并提供了诊断和解决CPU负载过高问题的步骤:1) 使用监控工具分析CPU使用率和系统负载;2) 深入排查运行队列、进程占用、系统调用和硬件状态;3) 根据排查结果进行代码优化、调整进程优先级或限制CPU使用率,必要时升级硬件。建议建立监控体系,定期性能测试,并持续优化以保证服务器高效运行。
212 1
|
6月前
|
Linux
Linux操作系统调优相关工具(一)查看CPU负载相关工具 找出系统中使用CPU最多的进程?
Linux操作系统调优相关工具(一)查看CPU负载相关工具 找出系统中使用CPU最多的进程?
60 0
|
存储 缓存 监控
Java 经典面试解析:服务器卡顿、CPU飙升、接口负载剧增
解决这个问题的关键是要找到Java代码的位置。下面分享一下排查思路,以CentOS为例,总结为4步。 第1步,使用top命令找到占用CPU高的进程。 第2步,使用ps –mp命令找到进程下占用CPU高的线程ID。 第3步,使用printf命令将线程ID转换成十六进制数。 第4步,使用jstack命令输出线程运行状态的日志信息。
278 0
|
Java
精准定位Java应用CPU负载过高问题
trace指令能追踪调用链路,而Springmvc应用都是借助于:javax.servlet.Servlet * 执行的 watch指令能够实时监测指定方法的:返回值,抛出异常,入参,同时支持OGNL操作
102 1
|
缓存 运维 监控
如何通过一系列步骤来诊断和解决服务器CPU负载过高问题?
如何通过一系列步骤来诊断和解决服务器CPU负载过高问题?
897 0
|
Arthas Java 测试技术
59-微服务技术栈(高级):在线检测工具Arthas(精准定位Java应用CPU负载过高)
开发者对于生产问题故障的排查、定位,随着微服务的喷发,也不再像是以前那边依赖纯日志、gc日志进行问题排查与定位了,本节开始介绍一个生产环境使用的排错工具Arthas,帮助大家更高效、便捷地实现生产问题排错。
289 0