美国服务器的CPU存在的意义是为了给程序提供服务,因此用户进程等调度单元可以了解到进程的CPU利用率,而通过美国服务器的CPU利用率可以反映出整机的繁忙程度,以及从整体上了解美国服务器CPU的使用情况,本文美联科技小编就来介绍下美国服务器的CPU利用率。
关于美国服务器CPU的利用率可以分为3个粒度来考虑:单个CPU核心的利用率、整机CPU利用率以及进程的CPU利用率。这3种CPU利用率有各自的算法,美国服务器操作系统是以时间片来为系统记时的,这是最本质的时间单位,其它能看到的更人性化的时间格式都是通过其转换过来的。
美国服务器的CPU利用率指一段时间内CPU消耗的度量,强调的是经过一段时间内测出来的,其概念是单位时间内移动的距离,这也解释了top命令会有个默认是2秒的时间间隔。总的来说CPU利用率的实现原理是:在单位时间内连续两次采样CPU的时间片数,由于其是累积量,因此要取其差以获取增量,然后再经过后续处理得到不同级别的CPU利用率。
1:单个CPU核心的利用率
通过一定的时间间隔,周期地对某个CPU核心上的idle线程运行的时间片数,和该CPU运行的时间片数进行两次采样,分别将两次采样值各自取其差,然后进行环比,最后再将比值乘以100%,所得的百分比便是该CPU的空闲率。如果CPU很繁忙,idle线程一直未被调度运行,CPU的空闲率便是0%,即利用率是100%。
2:整机CPU利用率
通过一定的时间间隔周期对所有美国服务器CPU上idle线程运行的时间片数,和所有CPU运行的时间片数进行两次采样,分别将两次采样值各自取其差,然后进行环比,也就是用这段采样周期内所有CPU核心上idle线程运行的时间片数之和,比上这段采样周期内所有CPU运行的时间片数之和,最后再将比值乘以100%,所得的百分比便是所有idle线程在所有CPU上的利用率,也就是系统的整体空闲率。
以上这两类CPU利用率主要是看CPU是否运行idle线程,属于CPU级别的。由于运行任务是由美国服务器操作系统的任务调度器决定的,也就只有当操作系统发现没有任务可运行时才会去执行idle线程,因此只要idle在运行就表示CPU有多余的空闲资源。
3:进程的CPU利用率
美国服务器进程的CPU利用率同样是需要两次采样才能得到,但却与前两种CPU利用率有很大不同,进程在任意时刻只会在一个CPU上运行,当美国服务器上有多个CPU时,保不准进程会在多个CPU之间来回转移,比如当前CPU负载很高,利用率已接近100%,当下一次该进程重新运行在CPU上时,调度器会根据实际CPU负载情况,将其换到另一个负载轻的CPU上执行。
因此无法获知在两次采样期间,进程被换了多少个CPU运行,多个CPU是并行的,它们各自独立运行了一定的时间片数,虽然可以获取进程运行的时间片数,但没办法知道进程经过了哪些CPU,仅能知道最后一次是在哪个CPU上执行,所以不知道去获取哪些CPU在这段采样周期内运行的时间片数。
基于这个原因,进程CPU利用率的计算原理采用了时间比,也就是进程的执行时间比上次采样周期时间,所得的比值再乘以100%。但美国服务器操作系统为用户进程记录的是进程的时间片数,因此要将时间片数转换为时间。
以上内容就是关于美国服务器CPU利用率的相关介绍,当然如果是以秒这种粗粒度的时间去比较,可能会造成一定的误差,因此也常常换算为以毫秒为单位的时间比,如果要以微秒为单位采样也是可以的。