云服务器

关于云服务器中linux系统的cpu监控基本知识

2020-05-18 17:07:59 54

cpu基本知识

当我们把应用部署在云服务器的linux系统时,总会关注资源的占用情况,对系统主要指标进行监控。CPU一般都是我们最先观察的资源,本文就来学习下cpu监控的一些知识。在linux服务器上的时候,总会关注资源的占用情况,对系统主要指标进行监控。CPU一般都是我们最先观察的资源,本文就来学习下cpu监控的一些知识。

CPU的主要功能是解释计算机指令以及处理计算机软件中的数据,并执行指令。就是我们编写的程序,经过编译后,最终都会变成一条条的指令,由CPU来进行最终的执行。CPU的主频越高、缓存越大、核心数越多,程序运行越快。

关于CPU,有3个重要的概念:上下文切换(context switchs),运行队列(Run queue)和使用率(utilization)。

 

上下文切换:目前流行的CPU在同一时间内只能运行一个线程,超线程的处理器可以在同一时间运行多个线程。linux内核可以运行很多进程,靠的是一个时间片的概念,每个进程会分配到一个时间片,当进程用完时间片或有更高级别的进程抢占后,它会切换到运行队列中,这就是上下文切换。上下文切换越频繁,系统开销越大。

 

运行队列:每个CPU都会维持一个运行队列。调度器跟不上系统的需求,运行队列会被填满,程序的运行时间会变的更长。每个可运行队列不应该超过3个线程(每处理器),比如:双处理器系统的可运行队列里不应该超过6个线程。

 

使用率:部分常用的cpu使用率指标如下

User Time—执行用户进程的时间百分比;
System Time—执行内核进程和中断的时间百分比;
Wait IO—因为IO等待而使CPU处于idle状态的时间百分比;
Idle—CPU处于Idle状态的时间百分比。Idle—CPU处于Idle状态的时间百分比。
如果cpu利用率达到100%,那么应该大概到达这样一个平衡:
User Time:System Time:Idle Time = (60%-70%):(30%-35%):(0%-5%)

 

cpu常用监控工具

Linux中常用的监控CPU整体性能的工具有以下几个,均通过命令行形式运行:

mpstat: mpstat 不但能查看所有CPU的平均信息,还能查看指定CPU的信息。

vmstat:只能查看所有CPU的平均信息;查看cpu队列信息;

iostat: 只能查看所有CPU的平均信息。

sar: 与mpstat 一样,不但能查看CPU的平均信息,还能查看指定CPU的信息。

top:显示的信息同ps接近,但是top可以了解到CPU消耗,可以根据用户指定的时间来更新显示。

 

mpstat监控工具参数说明

以上介绍的几个工具监控的cpu指标大同小异,在此仅以mpstat作为一个例子,了解下它的常用参数。
mpstat命令格式:

OPTIONS:
-A: 等同于-u -I ALL -P ALL
-I:可以指定SUM CPU SCPU ALL四个参数,SUM表示每个处理器的中断总数,CPU表示每个核的每秒中断数量, SCPU表示每个核每秒的软中断数量,内核版本在2.6.31之后才支持。
-P: 统计的CPU编号,一般用ALL
-u: 输出列的信息
-V: 查看工具版本号

 

没有输入参数,mpstat显示系统启动以来所有信息的平均值;如有internal,第一行的信息自系统启动以来的平均信息,从第二行开始,输出为前一个interval时间段的平均信息,如下所示:

root@ubuntu:~# mpstat 1 5
Linux 4.4.0-116-generic (ubuntu)     12/29/2019     _x86_64_    (2 CPU)

08:43:50 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle 08:43:51 PM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 08:43:52 PM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 08:43:53 PM all 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 100.00 08:43:54 PM all 0.50 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 99.50 08:43:55 PM all 0.00 0.00 0.50 0.00 0.00 0.00 0.00 0.00 0.00 99.50 Average: all 0.10 0.00 0.10 0.00 0.00 0.00 0.00 0.00 0.00 99.80


简要理解以上监控结果:

usr 用户态的CPU时间(%)
nice nice值为负进程的CPU时间(%)
sys 核心时间(%)
iowait 硬盘IO等待时间(%)
irq 软中断时间(%)
soft 软中断时间(%)
idle CPU除去等待磁盘IO操作外的因为任何原因而空闲的时间闲置时间(%)

 

 

最后
总结的说,CPU性能监控包含以下方面:
检查系统的运行队列,确保每一个CPU的运行队列不大于3。
确保CPU使用分布满足70/30原则(用户70%,系统30%)。
如果系统时间过长,可能是因为频繁的调度和改变优先级。

睿江云官网链接:www.eflycloud.com

上一篇: 无

微信关注

获取更多技术咨询