雖然cgroup管控了該cgroup下所有進程的CPU使用情況,但從操作系統(tǒng)的角度上,不論進程是否隸屬于某個子cgroup下,仍然是共用宿主機的CPU。所以監(jiān)控宿主機上該進程的CPU就能得到進程的CPU監(jiān)控指標。
Linux上常用的CPU監(jiān)控命令是top。top對CPU監(jiān)控的原理是在time1時刻獲取CPU從啟動時的累計總時間countAll1和busy總時間countBusy1,再到time2時刻獲取CPU總時間countAll2和busy總時間countBusy2,最后用busy的時間差值減去總時間的差值得到了在time1到time2這個時間段內(nèi)機器CPU的占用情況。也就是:
CPU占用率(%) = (countBusy2 - countBusy1)/(countAll2 - countAll1) 100進程同理,在兩個時刻分別得到每個進程的busy總時間countProcBusy1和countProcBusy2,則得到進程CPU占用率:
進程CPU占用率(%) = (countProcBusy2 - countProcBusy1)/(countProcAll2 - countProcAll1)100第一行是總的CPU使用情況,具體參數(shù)的意思:
所以,選擇當前為time1,3秒后為time2,countAll = user + nice + system + idle + iowait + irq + softirq + stealstolean + guest + guest_nice。countBusy為countAll減去idle的值,這樣上面第一個公式的所有需要的值就齊了,可以直接計算。
第二行、第三行是每個邏輯CPU的使用情況,這里記下有兩個邏輯CPU,CPU的邏輯核數(shù)與CPU顯示模式irix和solaris有關。
另外有需要云服務器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務器、裸金屬服務器、高防服務器、香港服務器、美國服務器、虛擬主機、免備案服務器”等云主機租用服務以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應用場景需求。