这两天公司的服务器好像有问题,听旁边的大神说看看服务器的负载情况,我开始慢慢了解一下服务器负载的知识!
当我们使用top命令查看系统的资源使用情况时会看到load average,它表示系统在1,5,15分钟的平均工作负载。
load average:系统平均负载是CPU的Load,它所包含的信息不是CPU的使用率状况,而是在一段时间内CPU正在处理以及等待CPU处理的进程数之和的统计信息,也就是CPU使用队列的长度的统计信息,这个数字越小越好。
1.CPU负载和CPU的使用率的区别
CPU使用率:显示的是程序在运行期间实时占用的CPU百分比。
CPU负载:显示的是一段时间内正在使用和等待使用CPU的平均任务数。
CPU使用率高,并不意味着负载就一定大。举例来说:如果我有一个程序它需要一直使用CPU的运算功能,那么此时CPU的使用率可能达到100%,但是CPU的工作负载则是趋近于“1”,因为CPU仅负责一个工作嘛!如果同时执行这样的程序两个呢?CPU的使用率还是100%,但是工作负载则变成2了。所以也就是说,当CPU的工作负载越大,代表CPU必须要在不同的工作之间进行频繁的工作切换。
所以说,CPU的负载和CPU的使用率之间并没有直接的关系。
2.理想的负载情况
一般在评估CPU的负载的时候,是以5分钟为基本的单位进行统计,如果每隔5分钟统计的时候,发现任务队列长度都是1,那么CPU负载就为1。假如我们只有一个单核的CPU,负载一直为1,意味着没有任务在排队,还不错。
内核的个数去统计的,有一个说法,“有多少内核,即有多少负载”。
但是每个内核的负载为1,并不能算是一种理想状态!这意味着我们的CPU一直很忙,不得清闲。网上有说理想的状态是每个内核的负载为0.7左右,所以服务器的理想负载是:0.7乘以内核的个数.