cpu 指標(biāo)
壓測(cè)過(guò)程中很重要的一點(diǎn)是觀察cpu的各項(xiàng)指標(biāo)啦租,比如說(shuō)cpu idel至朗、user、cpu.load等析恋,這些指標(biāo)也間接反映了一個(gè)系統(tǒng)的抗壓能力(容量)良哲。
在linux內(nèi)核中,每個(gè)進(jìn)程都會(huì)被分配一個(gè)固定的時(shí)間片助隧,默認(rèn)是10ms臂外,在這10ms中,該進(jìn)程享有cpu的使用權(quán)喇颁,如果該進(jìn)程用完了10ms,或者有其他優(yōu)先級(jí)高的進(jìn)程發(fā)出請(qǐng)求漏健,系統(tǒng)會(huì)觸發(fā)一個(gè)中斷,內(nèi)核重新接管cpu橘霎,內(nèi)核分配cpu給其他進(jìn)程蔫浆。
cpu的使用時(shí)主要分為用戶態(tài)、內(nèi)核態(tài)姐叁,對(duì)于使用率來(lái)說(shuō)主要分為用戶態(tài)瓦盛、系統(tǒng)態(tài)、空閑態(tài)外潜。
user
user 選項(xiàng)表示cpu一種花了占比多少的時(shí)間運(yùn)營(yíng)在用戶態(tài)空間原环,我們查用的web程序、shell腳本处窥、數(shù)據(jù)庫(kù)應(yīng)用(mysql嘱吗、redis)等都是工作在用戶態(tài)的。
Nice
Nice表示用戶空間內(nèi)進(jìn)程的cpu調(diào)度優(yōu)先級(jí)滔驾,范圍是[-20,19]
System
system選項(xiàng)表示cpu花了多少比例的時(shí)間在內(nèi)核空間運(yùn)行谒麦,典型的內(nèi)核態(tài)操作主要是分配內(nèi)存、IO操作(很多時(shí)候太多io操作時(shí)System的值會(huì)很高)哆致、fork進(jìn)程等绕德。
Wait
很多時(shí)候cpu發(fā)起io操作后,因?yàn)樗俣壬系牟町愄В枰却龜?shù)據(jù)載入內(nèi)存耻蛇,這段時(shí)間cpu通常無(wú)事可做,這部分等待時(shí)間由wait參數(shù)來(lái)衡量胞此。
idel
idel是指空閑時(shí)間的占比臣咖,user + system + idel 大致等于cpu的總時(shí)間,也就是100%豌鹤,idel是基于/proc/stat計(jì)算出來(lái)的亡哄。
idel是壓測(cè)時(shí)最常用指標(biāo),通常來(lái)說(shuō)我們cpu idel壓到50%基本就是該系統(tǒng)的極限了布疙。
load
cpu.load指的是系統(tǒng)平均負(fù)載蚊惯,定義是在特定時(shí)間間隔內(nèi)運(yùn)行隊(duì)列中的平均進(jìn)程數(shù)愿卸。沒(méi)有在等待I/O操作的結(jié)果、沒(méi)有主動(dòng)進(jìn)入等待狀態(tài)截型、沒(méi)有被停止則認(rèn)為處于運(yùn)行隊(duì)列中趴荸。
load指標(biāo)是通過(guò)/proc/loadavg得到的.
cpu配置
cpu的配置信息存放于/proc/cpuinfo中,可以通過(guò)cat /proc/cpuinfo查看:
processor指的是cpu宦焦,有幾個(gè)就代表有幾個(gè)cpu发钝,cores代表的是cpu核心線程數(shù),還有其他幾項(xiàng)信息波闹,意思都很明了了酝豪。
物理CPU個(gè)數(shù): cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc -l
每個(gè)CPU物理核數(shù): cat /proc/cpuinfo |grep "cpu cores"|uniq
每個(gè)CPU邏輯核數(shù): cat /proc/cpuinfo |grep "siblings"|uniq
總CPU邏輯核數(shù): cat /proc/cpuinfo |grep -c "processor"