linux中负载值为多少正常_linux 查看负载和使用情况 top
top命令是看當(dāng)前進(jìn)程的cpu和內(nèi)存等的占用情況
參數(shù)解析
top - 20:54:37 up 228 days, 11:03, 3 users, load average: 0.54, 0.33, 0.32
Tasks: 266 total, 1 running, 265 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.4 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 65806688 total, 3267880 free, 51877252 used, 10661556 buff/cache
KiB Swap: 0 total, 0 free, 0 used. 12528752 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4048 hadoop 20 0 24.9g 1.5g 11372 S 2.7 2.4 1168:24 java
10359 root 20 0 122712 19332 2612 S 2.3 0.0 12:48.32 flux_app
6006 hadoop 20 0 14.7g 1.8g 10964 S 2.0 2.8 5915:47 presto-server
5735 root 20 0 2767844 621184 9808 S 0.7 0.9 3197:27 360entclient
對(duì)上面第三行的解釋:
us(user cpu time):用戶態(tài)使用的cpu時(shí)間比。該值較高時(shí),說(shuō)明用戶進(jìn)程消耗的 CPU 時(shí)間比較多,比如,如果該值長(zhǎng)期超過(guò) 50%,則需要對(duì)程序算法或代碼等進(jìn)行優(yōu)化。
sy(system cpu time):系統(tǒng)態(tài)使用的cpu時(shí)間比。
ni(user nice cpu time):用做nice加權(quán)的進(jìn)程分配的用戶態(tài)cpu時(shí)間比
id(idle cpu time):空閑的cpu時(shí)間比。如果該值持續(xù)為0,同時(shí)sy是us的兩倍,則通常說(shuō)明系統(tǒng)則面臨著 CPU 資源的短缺。
wa(io wait cpu time):cpu等待磁盤寫(xiě)入完成時(shí)間。該值較高時(shí),說(shuō)明IO等待比較嚴(yán)重,這可能磁盤大量作隨機(jī)訪問(wèn)造成的,也可能是磁盤性能出現(xiàn)了瓶頸。
hi(hardware irq):硬中斷消耗時(shí)間
si(software irq):軟中斷消耗時(shí)間
st(steal time):虛擬機(jī)偷取時(shí)間
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
4048 hadoop 20 0 24.9g 1.5g 11372 S 2.7 2.4 1168:24 java
10359 root 20 0 122712 19332 2612 S 2.3 0.0 12:48.32 flux_app
6006 hadoop 20 0 14.7g 1.8g 10964 S 2.0 2.8 5915:47 presto-server
5735 root 20 0 2767844 621184 9808 S 0.7 0.9 3197:27 360entclient
以上圖來(lái)說(shuō)幾個(gè)重要的參數(shù)情況
PID 進(jìn)程號(hào)
USER 運(yùn)行用戶
VIRT 進(jìn)程使用的虛擬內(nèi)存總量
RES 物理內(nèi)存用量
SHR 共享內(nèi)存用量
%CPU 該進(jìn)程自最近一次刷新以來(lái)所占用的CPU時(shí)間和總時(shí)間的百分比
%CPU顯示的是進(jìn)程占用一個(gè)核的百分比,而不是整個(gè)cpu(12核)的百分比,有時(shí)候可能大于100,那是因?yàn)樵撨M(jìn)程啟用了多線程占用了多個(gè)核心,所以有時(shí)候我們看該值得時(shí)候會(huì)超過(guò)100%,但不會(huì)超過(guò)總核數(shù)*100
(%CPU>100的情況 這里顯示的所有的cpu加起來(lái)的使用率,說(shuō)明你的CPU是多核 你運(yùn)行top后按大鍵盤1看看,可以顯示每個(gè)cpu的使用率,top里顯示的是把所有使用率加起來(lái)。 )
%MEM 該進(jìn)程占用的物理內(nèi)存占總內(nèi)存的百分比
COMMAND 該進(jìn)程的命令名稱,如果一行顯示不下,則會(huì)進(jìn)行截取。內(nèi)存中的進(jìn)程會(huì)有一個(gè)完整的命令行
load average 淺析
上述top命令中的load average: 0.54, 0.33, 0.32 表示了load average的一分鐘,五分鐘,十五分鐘的平均CPU負(fù)載
所謂的CPU負(fù)載指的是一段時(shí)間內(nèi)任務(wù)隊(duì)列的長(zhǎng)度,通俗的講,就是一段時(shí)間內(nèi)一共有多少任務(wù)在使用或等待使用CPU。(當(dāng)前的"負(fù)載值除以cpu核數(shù)"就是cpu的利用率)
當(dāng)CPU完全空閑的時(shí)候,平均負(fù)荷為0(即load average的值為0);當(dāng)CPU工作量飽和的時(shí)候,平均負(fù)荷為1。
這里需要注意的是:
load average這個(gè)輸出值,這三個(gè)值的大小一般不能大于系統(tǒng)邏輯CPU的個(gè)數(shù)
比如一臺(tái)服務(wù)器有4個(gè)邏輯CPU,如果load average的三個(gè)值長(zhǎng)期大于4時(shí),說(shuō)明CPU很繁忙,負(fù)載很高,可能會(huì)影響系統(tǒng)性能;
但是偶爾大于4時(shí),倒不用擔(dān)心,一般不會(huì)影響系統(tǒng)性能。
load average舉例理解
判斷系統(tǒng)負(fù)荷是否過(guò)重,必須理解load average的真正含義。假設(shè)當(dāng)前我的一臺(tái)服務(wù)器只有一個(gè)CPU,所有的運(yùn)算都必須由這個(gè)CPU來(lái)完成。
不妨把這個(gè)CPU想象成一座大橋,橋上只有一根車道,所有車輛都必須從這根車道上通過(guò)(很顯然,這座橋只能單向通行)。
1)系統(tǒng)負(fù)荷為0,意味著大橋上一輛車也沒(méi)有。
2)系統(tǒng)負(fù)荷為0.5,意味著大橋一半的路段有車。
3)系統(tǒng)負(fù)荷為1.0,意味著大橋的所有路段都有車,也就是說(shuō)大橋已經(jīng)"滿"了。但是必須注意的是,直到此時(shí)大橋還是能順暢通行的。
4)系統(tǒng)負(fù)荷為1.7,意味著車輛太多了,大橋已經(jīng)被占滿了(100%),后面等著上橋的車輛為橋面車輛的70%。
以此類推,系統(tǒng)負(fù)荷2.0,意味著等待上橋的車輛與橋面的車輛一樣多;
系統(tǒng)負(fù)荷3.0,意味著等待上橋的車輛是橋面車輛的2倍。
總之,當(dāng)系統(tǒng)負(fù)荷大于1,后面的車輛就必須等待了;系統(tǒng)負(fù)荷越大,過(guò)橋就必須等得越久。
CPU的系統(tǒng)負(fù)荷,基本上等同于上面的類比。大橋的通行能力,就是CPU的最大工作量;橋梁上的車輛,就是一個(gè)個(gè)等待CPU處理的進(jìn)程(process)。
如果CPU每分鐘最多處理100個(gè)進(jìn)程,那么:
系統(tǒng)負(fù)荷0.2,意味著CPU在這1分鐘里只處理20個(gè)進(jìn)程;
系統(tǒng)負(fù)荷1.0,意味著CPU在這1分鐘 里正好處理100個(gè)進(jìn)程;
系統(tǒng)負(fù)荷1.7,意味著除了CPU正在處理的100個(gè)進(jìn)程以外,還有70個(gè)進(jìn)程正排隊(duì)等著CPU處理。
上面,假設(shè)我的這臺(tái)服務(wù)器只有1個(gè)CPU。如果它裝了2個(gè)CPU,就意味著服務(wù)器的處理能力翻了一倍,能夠同時(shí)處理的進(jìn)程數(shù)量也翻了一倍。
還是用大橋來(lái)類比,兩個(gè)CPU就意味著大橋有兩根車道了,通車能力翻倍了。
所以,2個(gè)CPU表明系統(tǒng)負(fù)荷可以達(dá)到2.0,此時(shí)每個(gè)CPU都達(dá)到100%的工作量。推廣開(kāi)來(lái),n個(gè)CPU的服務(wù)器,可接受的系統(tǒng)負(fù)荷最大為n。
至于load average是多少才算理想,這個(gè)有爭(zhēng)議,各有各的說(shuō)法
個(gè)人比較贊同CPU負(fù)載小于等于"內(nèi)核數(shù)乘以0.5-0.7"算是一種理想狀態(tài)。
load average返回三個(gè)平均值應(yīng)該參考哪個(gè)值
如果只有1分鐘的系統(tǒng)負(fù)荷大于1.0,其他兩個(gè)時(shí)間段都小于1.0,這表明只是暫時(shí)現(xiàn)象,問(wèn)題不大。
如果15分鐘內(nèi),平均系統(tǒng)負(fù)荷大于1.0(調(diào)整CPU核心數(shù)之后),表明問(wèn)題持續(xù)存在,不是暫時(shí)現(xiàn)象。
所以應(yīng)該主要觀察"15分鐘系統(tǒng)負(fù)荷",將它作為服務(wù)器正常運(yùn)行的指標(biāo)。
除去CPU性能上的差異,CPU負(fù)載是基于內(nèi)核數(shù)來(lái)計(jì)算的。有一個(gè)說(shuō)法是"有多少內(nèi)核,即有多少負(fù)載"。
總結(jié)
以上是生活随笔為你收集整理的linux中负载值为多少正常_linux 查看负载和使用情况 top的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java课程 数独 文库_数独java
- 下一篇: 5中打开safari_iOS13版Saf