Linux進程管理的負載均衡是什么

本篇內容介紹了“Linux進程管理的負載均衡是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

站在用戶的角度思考問題,與客戶深入溝通,找到岑鞏網站設計與岑鞏網站推廣的解決方案,憑借多年的經驗,讓設計與互聯(lián)網技術結合,創(chuàng)造個性化、用戶體驗好的作品,建站類型包括:成都網站建設、網站制作、企業(yè)官網、英文網站、手機端網站、網站推廣、域名注冊、網頁空間、企業(yè)郵箱。業(yè)務覆蓋岑鞏地區(qū)。

經過前面的學習,我們知道一個 task 有如下幾種狀態(tài),但用top時往往會以縮寫的形式展現(xiàn),這里我們總結下。

Linux進程管理的負載均衡是什么

Linux進程管理的負載均衡是什么

  • R (TASK_RUNNING),可運行狀態(tài)。Linux中的 Ready 和 Running 對應的都是TASK_RUNNING標志位,ready  表示進程正處在隊列中,尚未被調度;running 則表示進程正在CPU上運行;

  • D  (TASK_UNINTERRUPTIBLE),不可中斷的睡眠狀態(tài)。是正處于內核態(tài)關鍵流程中的進程,并且這些流程是不可打斷的,比如最常見的是等待硬件設備的 I/O  響應。處于 TASK_UNINTERRUPTIBLE 狀態(tài)的進程不能被信號喚醒,只能由 wakeup 喚醒。既然 TASK_UNINTERRUPTIBLE  不能被信號喚醒,自然也不會響應 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),進程成為僵尸進程。

什么是平均負載?

認識一下:

cat /proc/loadavg  0.18 0.94 0.72 1/486 3569

查看當前系統(tǒng)的平均負載,前三個數(shù)分別是  1分鐘、5分鐘、15分鐘的平均進程數(shù)。第四個的分子是正在運行的進程數(shù),分母是進程總數(shù);最后一個最近運行的進程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分鐘的平均進程數(shù)。

我這里的PC是2個cpu,所以這里的負載是比較低的(如果平均負載高于2.0的話說明過載,平均負載低于2.0就是比較正常的。)

平均負載是指單位時間內,系統(tǒng)處于可運行狀態(tài)和不可中斷狀態(tài)的平均進程數(shù)(即上面的R,D兩個狀態(tài)的平均進程數(shù),很容易忽略D狀態(tài)的進程),也就是平均活躍進程數(shù),它和  CPU 使用率并沒有直接關系。實際的計算比較復雜,感興趣的同學可以查看源碼  https://github.com/torvalds/linux/blob/master/kernel/sched/loadavg.c 。

平均負載不等于CPU使用率

通過上面的介紹我們知道:

平均負載不僅包括了正在使用 CPU 的進程,還包括等待 CPU 和等待 I/O 的進程。

CPU使用率,是單位時間內 CPU 繁忙情況的統(tǒng)計,跟平均負載并不一定完全對應。

比如:

CPU 密集型進程,使用大量 CPU 會導致平均負載升高,此時這兩者是一致的;I/O 密集型進程,等待 I/O 也會導致平均負載升高,但 CPU  使用率不一定很高;大量等待 CPU 的進程調度也會導致平均負載升高,此時的 CPU 使用率也會比較高。

所以這就是有時通過top發(fā)現(xiàn)cpu使用率不是很高,但是cat /proc/loadavg時負載又很大的原因。

常用命令

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時間比。該值較高時,說明用戶進程消耗的 CPU 時間比較多,比如,如果該值長期超過  50%,則需要對程序算法或代碼等進行優(yōu)化。

  • sy(system cpu time):系統(tǒng)態(tài)使用的cpu時間比。

  • ni(user nice cpu time):用做nice加權的進程分配的用戶態(tài)cpu時間比

  • id(idle cpu time):空閑的cpu時間比。如果該值持續(xù)為0,同時sy是us的兩倍,則通常說明系統(tǒng)則面臨著 CPU 資源的短缺。

  • wa(wait):等待使用CPU的時間。

  • hi(hardware irq):硬中斷消耗時間

  • si(software irq):軟中斷消耗時間

  • st(steal time):虛擬機偷取時間

vmstat

vmstat用來檢測系統(tǒng)的狀態(tài),包括CPU和內存,非常方便系統(tǒng)調試使用。

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進程管理的負載均衡是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識可以關注創(chuàng)新互聯(lián)網站,小編將為大家輸出更多高質量的實用文章!

本文標題:Linux進程管理的負載均衡是什么
本文URL:http://bm7419.com/article20/ijhcco.html

成都網站建設公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)網站維護自適應網站App開發(fā)、品牌網站制作營銷型網站建設

廣告

聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

h5響應式網站建設