32节 2020-09-25 CPU使用率(一)上

继我们31章节,我们继续来学习新的知识:CPU使用率。
今天的内容,希望大家学习了之后,可以学会如何查看cpu使用率,以及怎么定位cpu使用率过高的问题。
提问:常用什么指标来描述系统的cpu性能?
cpu使用率最底层的数据都是从哪里获取的?

cpu性能最直观的指标就是cpu使用率,而这些数据又是从/proc中获取的。下面来学习下.

什么是cpu使用率

CPU使用率是指运行程序占用的CPU资源。
举例说明:
比如A进程占用10ms,然后B进程占用30ms,然后空闲60ms,再又是A进程占10ms,B进程占30ms,空闲60ms;如果在一段时间内都是如此,那么这段时间内的占用率为40%。
40%如何计算的呢?
计算公式:cpu使用时间/cpu占用总时间=80/200*100=40%

cpu占用时间底层数据哪里来

cpu占用时间从/proc/stat文件系统中获取,如下:

image.png

image.png

到这里你应该了解了 cat /proc/stat 输出项的含义,那么cpu使用率到底是怎么计算出来的呢?

从面输出结果可以看到:第一行的每一列数据都是cpu0+cpu1+cpu2+cpu3相加的结果。
如use%占用总cpu时间(104245)=cpu0+cpu1+cpu2+cpu3。
所以:总的cpu时间totalCPUTime=第一行所有列的数据相加

下面来看单个cpu的使用率计算。比如:以cpu0为例:

cpu0使用率计算

(1)查看cpu0数据: cat /proc/stat | grep cpu0

[root@localhost ~]# cat  /proc/stat  |  grep  cpu0
cpu0 1036 11 1776 249517 1498 426 216 0 0 0

总时间1: CPU0TotalTime1=user+nice+system+idle+iowait+irq+softirq+(后面数据为0的三项)

                  CPU0TotalTime 这个时间是系统启动以来到当前时间的总时间

占用时间1: CPU0UsedTime1=user+nice+system+idle+iowait+irq+softirq

时间过去一段时间了,再来查看cpu0的数据。

(2)查看cpu0数据: cat /proc/stat | grep cpu0


[root@localhost ~]# cat  /proc/stat  |  grep  cpu0
cpu0 1036 11 1776 249517 1498 426 216 0 0 0

[root@localhost ~]# cat  /proc/stat  |  grep  cpu0
cpu0 1052 11 1866 301982 1501 486 241 0 0 0
[root@localhost ~]# ^C


总时间2: CPU0TotalTime2=user+nice+system+idle+iowait+irq+softirq+(后面数据为0的三项)
CPU0TotalTime 这个时间是系统启动以来到当前时间的总时间

占用时间2: CPU0UsedTime2=user+nice+system+idle+iowait+irq+softirq

得到CPU0在N秒内的单核利用率:
(CPU0UsedTime2-CPU0UsedTime1)*100%/ (CPU0TotalTime2-CPU0TotalTime1)

总结:cpu使用率=(1-空闲时间)/总cpu时间。这个不需要我们计算,我们只需要知道cpu使用率是怎么计算出来的即可。

知道了cpu使用率计算,下面需要来学习一下如何查看cpu使用率?

查看cpu使用率

(1)


image.png

(2)


image.png
image.png

如何规避网络瓶颈:1.需要在同一个局域网里,同一个网段(ip前三位相同)
2.最好使用千兆交换机
曾经使用百兆交换机做性能测试,每次一跑,带宽就跑满了,压力始终上不去。
如何知道带宽跑满了-》ping服务器,查看有没有很大的延迟。

image.png
image.png

接下来如何分析top输出的结果,请看33节。

推荐阅读更多精彩内容

  • 通过/proc/stat计算CPU使用率介绍 linux通过/proc虚拟文件系统,想用户提供了系统内部状态信息,...
    崔天浩阅读 757评论 0 0
  • [TOC]源自极客时间教程的学习记录:通过前两节对平均负载和 CPU 上下文切换的学习,我相信你对 CPU 的性能...
    tracy_668阅读 823评论 0 3
  • cpu 使用率 Linux 作为一个多任务操作系统,将每个 CPU 的时间划分为很短的时间片,再通过调度器轮流分配...
    wayyyy阅读 318评论 0 0
  • Linux 作为一个多任务操作系统,将每个 CPU 的时间划分为很短的时间片,再通过调度器轮流分配给各个任务使用,...
    taj3991阅读 311评论 0 0
  • Linux CPU、内存、磁盘、使用率计算 原创作品,转载请标明出处。 命令方式查看: cpu使用率: 如果发现多...
    PublicBook阅读 11,628评论 2 7