美國服務(wù)器的CPU存在的意義是為了給程序提供服務(wù),因此用戶(hù)進(jìn)程等調度單元可以了解到進(jìn)程的CPU利用率,而通過(guò)美國服務(wù)器的CPU利用率可以反映出整機的繁忙程度,以及從整體上了解美國服務(wù)器CPU的使用情況,本文美聯(lián)科技小編就來(lái)介紹下美國服務(wù)器的CPU利用率。
關(guān)于美國服務(wù)器CPU的利用率可以分為3個(gè)粒度來(lái)考慮:?jiǎn)蝹€(gè)CPU核心的利用率、整機CPU利用率以及進(jìn)程的CPU利用率。這3種CPU利用率有各自的算法,美國服務(wù)器操作系統是以時(shí)間片來(lái)為系統記時(shí)的,這是最本質(zhì)的時(shí)間單位,其它能看到的更人性化的時(shí)間格式都是通過(guò)其轉換過(guò)來(lái)的。
美國服務(wù)器的CPU利用率指一段時(shí)間內CPU消耗的度量,強調的是經(jīng)過(guò)一段時(shí)間內測出來(lái)的,其概念是單位時(shí)間內移動(dòng)的距離,這也解釋了top命令會(huì )有個(gè)默認是2秒的時(shí)間間隔??偟膩?lái)說(shuō)CPU利用率的實(shí)現原理是:在單位時(shí)間內連續兩次采樣CPU的時(shí)間片數,由于其是累積量,因此要取其差以獲取增量,然后再經(jīng)過(guò)后續處理得到不同級別的CPU利用率。
1:?jiǎn)蝹€(gè)CPU核心的利用率
通過(guò)一定的時(shí)間間隔,周期地對某個(gè)CPU核心上的idle線(xiàn)程運行的時(shí)間片數,和該CPU運行的時(shí)間片數進(jìn)行兩次采樣,分別將兩次采樣值各自取其差,然后進(jìn)行環(huán)比,最后再將比值乘以100%,所得的百分比便是該CPU的空閑率。如果CPU很繁忙,idle線(xiàn)程一直未被調度運行,CPU的空閑率便是0%,即利用率是100%。
2:整機CPU利用率
通過(guò)一定的時(shí)間間隔周期對所有美國服務(wù)器CPU上idle線(xiàn)程運行的時(shí)間片數,和所有CPU運行的時(shí)間片數進(jìn)行兩次采樣,分別將兩次采樣值各自取其差,然后進(jìn)行環(huán)比,也就是用這段采樣周期內所有CPU核心上idle線(xiàn)程運行的時(shí)間片數之和,比上這段采樣周期內所有CPU運行的時(shí)間片數之和,最后再將比值乘以100%,所得的百分比便是所有idle線(xiàn)程在所有CPU上的利用率,也就是系統的整體空閑率。
以上這兩類(lèi)CPU利用率主要是看CPU是否運行idle線(xiàn)程,屬于CPU級別的。由于運行任務(wù)是由美國服務(wù)器操作系統的任務(wù)調度器決定的,也就只有當操作系統發(fā)現沒(méi)有任務(wù)可運行時(shí)才會(huì )去執行idle線(xiàn)程,因此只要idle在運行就表示CPU有多余的空閑資源。
3:進(jìn)程的CPU利用率
美國服務(wù)器進(jìn)程的CPU利用率同樣是需要兩次采樣才能得到,但卻與前兩種CPU利用率有很大不同,進(jìn)程在任意時(shí)刻只會(huì )在一個(gè)CPU上運行,當美國服務(wù)器上有多個(gè)CPU時(shí),保不準進(jìn)程會(huì )在多個(gè)CPU之間來(lái)回轉移,比如當前CPU負載很高,利用率已接近100%,當下一次該進(jìn)程重新運行在CPU上時(shí),調度器會(huì )根據實(shí)際CPU負載情況,將其換到另一個(gè)負載輕的CPU上執行。
因此無(wú)法獲知在兩次采樣期間,進(jìn)程被換了多少個(gè)CPU運行,多個(gè)CPU是并行的,它們各自獨立運行了一定的時(shí)間片數,雖然可以獲取進(jìn)程運行的時(shí)間片數,但沒(méi)辦法知道進(jìn)程經(jīng)過(guò)了哪些CPU,僅能知道最后一次是在哪個(gè)CPU上執行,所以不知道去獲取哪些CPU在這段采樣周期內運行的時(shí)間片數。
基于這個(gè)原因,進(jìn)程CPU利用率的計算原理采用了時(shí)間比,也就是進(jìn)程的執行時(shí)間比上次采樣周期時(shí)間,所得的比值再乘以100%。但美國服務(wù)器操作系統為用戶(hù)進(jìn)程記錄的是進(jìn)程的時(shí)間片數,因此要將時(shí)間片數轉換為時(shí)間。
以上內容就是關(guān)于美國服務(wù)器CPU利用率的相關(guān)介紹,當然如果是以秒這種粗粒度的時(shí)間去比較,可能會(huì )造成一定的誤差,因此也常常換算為以毫秒為單位的時(shí)間比,如果要以微秒為單位采樣也是可以的。