继我们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文件系统中获取,如下:
到这里你应该了解了 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)
(2)
如何规避网络瓶颈:1.需要在同一个局域网里,同一个网段(ip前三位相同)
2.最好使用千兆交换机
曾经使用百兆交换机做性能测试,每次一跑,带宽就跑满了,压力始终上不去。
如何知道带宽跑满了-》ping服务器,查看有没有很大的延迟。
接下来如何分析top输出的结果,请看33节。