本篇內(nèi)容介紹了“Linux進(jìn)程管理的負(fù)載均衡是什么”的有關(guān)知識,在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
站在用戶的角度思考問題,與客戶深入溝通,找到岑鞏網(wǎng)站設(shè)計(jì)與岑鞏網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都網(wǎng)站建設(shè)、網(wǎng)站制作、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名注冊、網(wǎng)頁空間、企業(yè)郵箱。業(yè)務(wù)覆蓋岑鞏地區(qū)。
經(jīng)過前面的學(xué)習(xí),我們知道一個(gè) task 有如下幾種狀態(tài),但用top時(shí)往往會(huì)以縮寫的形式展現(xiàn),這里我們總結(jié)下。
R (TASK_RUNNING),可運(yùn)行狀態(tài)。Linux中的 Ready 和 Running 對應(yīng)的都是TASK_RUNNING標(biāo)志位,ready 表示進(jìn)程正處在隊(duì)列中,尚未被調(diào)度;running 則表示進(jìn)程正在CPU上運(yùn)行;
D (TASK_UNINTERRUPTIBLE),不可中斷的睡眠狀態(tài)。是正處于內(nèi)核態(tài)關(guān)鍵流程中的進(jìn)程,并且這些流程是不可打斷的,比如最常見的是等待硬件設(shè)備的 I/O 響應(yīng)。處于 TASK_UNINTERRUPTIBLE 狀態(tài)的進(jìn)程不能被信號喚醒,只能由 wakeup 喚醒。既然 TASK_UNINTERRUPTIBLE 不能被信號喚醒,自然也不會(huì)響應(yīng) kill 命令,就算是必殺 kill -9 也不例外。
S (TASK_INTERRUPTIBLE),可中斷的睡眠狀態(tài)。
T (TASK_STOPPED or TASK_TRACED),暫停狀態(tài)或跟蹤狀態(tài)。
Z (TASK_DEAD - EXIT_ZOMBIE),退出狀態(tài),進(jìn)程成為僵尸進(jìn)程。
認(rèn)識一下:
cat /proc/loadavg 0.18 0.94 0.72 1/486 3569
查看當(dāng)前系統(tǒng)的平均負(fù)載,前三個(gè)數(shù)分別是 1分鐘、5分鐘、15分鐘的平均進(jìn)程數(shù)。第四個(gè)的分子是正在運(yùn)行的進(jìn)程數(shù),分母是進(jìn)程總數(shù);最后一個(gè)最近運(yùn)行的進(jìn)程ID號。
也可以:
uptime 22:32:31 up 9 min, 1 user, load average: 0.18, 0.94, 0.72
22:32:31 up 9 min, 1 user, load average: 0.18, 0.94, 0.72
load average: 0.18, 0.94, 0.72 //分別是 1分鐘、5分鐘、15分鐘的平均進(jìn)程數(shù)。
我這里的PC是2個(gè)cpu,所以這里的負(fù)載是比較低的(如果平均負(fù)載高于2.0的話說明過載,平均負(fù)載低于2.0就是比較正常的。)
平均負(fù)載是指單位時(shí)間內(nèi),系統(tǒng)處于可運(yùn)行狀態(tài)和不可中斷狀態(tài)的平均進(jìn)程數(shù)(即上面的R,D兩個(gè)狀態(tài)的平均進(jìn)程數(shù),很容易忽略D狀態(tài)的進(jìn)程),也就是平均活躍進(jìn)程數(shù),它和 CPU 使用率并沒有直接關(guān)系。實(shí)際的計(jì)算比較復(fù)雜,感興趣的同學(xué)可以查看源碼 https://github.com/torvalds/linux/blob/master/kernel/sched/loadavg.c 。
平均負(fù)載不等于CPU使用率
通過上面的介紹我們知道:
平均負(fù)載不僅包括了正在使用 CPU 的進(jìn)程,還包括等待 CPU 和等待 I/O 的進(jìn)程。
CPU使用率,是單位時(shí)間內(nèi) CPU 繁忙情況的統(tǒng)計(jì),跟平均負(fù)載并不一定完全對應(yīng)。
比如:
CPU 密集型進(jìn)程,使用大量 CPU 會(huì)導(dǎo)致平均負(fù)載升高,此時(shí)這兩者是一致的;I/O 密集型進(jìn)程,等待 I/O 也會(huì)導(dǎo)致平均負(fù)載升高,但 CPU 使用率不一定很高;大量等待 CPU 的進(jìn)程調(diào)度也會(huì)導(dǎo)致平均負(fù)載升高,此時(shí)的 CPU 使用率也會(huì)比較高。
所以這就是有時(shí)通過top發(fā)現(xiàn)cpu使用率不是很高,但是cat /proc/loadavg時(shí)負(fù)載又很大的原因。
常用命令
top
可以查看系統(tǒng)CPU的狀態(tài),以百分比的形式顯示出來。
Tasks: 251 total, 1 running, 243 sleeping, 0 stopped, 1 zombie Mem: 2007724k total, 862108k used, 1145616k free, 18560k buffers Swap: 1505788k total, 0k used, 1505788k free, 415260k cached 400%cpu 16%user 0%nice 6%sys 377%idle 0%iow 0%irq 0%sirq 0%host PID USER PR NI VIRT RES SHR S[%CPU] %MEM TIME+ ARGS 5628 root 20 0 5.9M 3.1M 2.7M R 19.3 0.1 0:00.07 top 5614 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kworker/u9:0] 5609 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [kworker/3:2] 5607 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [kworker/u8:2] 5590 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kworker/u9:4] 5585 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [kworker/u8:3] 5577 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 [kworker/u9:2] 5571 root 20 0 0 0 0 S 0.0 0.0 0:00.00 [kworker/3:0] 5537 root 20 0 0 0 0 S 0.0 0.0 0:00.05 [kworker/u8:1] 5448 root 20 0 0 0 0 S 0.0 0.0 0:00.67 [kworker/3:1]
us(user cpu time):用戶態(tài)使用的cpu時(shí)間比。該值較高時(shí),說明用戶進(jìn)程消耗的 CPU 時(shí)間比較多,比如,如果該值長期超過 50%,則需要對程序算法或代碼等進(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的兩倍,則通常說明系統(tǒng)則面臨著 CPU 資源的短缺。
wa(wait):等待使用CPU的時(shí)間。
hi(hardware irq):硬中斷消耗時(shí)間
si(software irq):軟中斷消耗時(shí)間
st(steal time):虛擬機(jī)偷取時(shí)間
vmstat
vmstat用來檢測系統(tǒng)的狀態(tài),包括CPU和內(nèi)存,非常方便系統(tǒng)調(diào)試使用。
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu---- r b swpd free buff cache si so bi bo in cs us sy id wa 1 0 0 1146440 18564 415260 0 0 2 1 0 95 0 0 100 0 0 0 0 1146476 18564 415260 0 0 0 0 0 384 0 0 100 0 0 0 0 1146104 18564 415260 0 0 0 0 0 375 0 0 100 0 0 0 0 1146724 18564 415260 0 0 0 0 0 387 0 0 100 0 0 0 0 1146848 18564 415260 0 0 0 0 0 369 0 0 100 0
“Linux進(jìn)程管理的負(fù)載均衡是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
本文標(biāo)題:Linux進(jìn)程管理的負(fù)載均衡是什么
本文URL:http://aaarwkj.com/article20/ijhcco.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、網(wǎng)站維護(hù)、自適應(yīng)網(wǎng)站、App開發(fā)、品牌網(wǎng)站制作、營銷型網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)