linux 系统负载
生活随笔
收集整理的這篇文章主要介紹了
linux 系统负载
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天早上查看服務器,發現負載過高
10:06:03 up 33 days, 23:33, ?3 users, ?load average: 9.78, 9.88, 10.10
一、警報信息的三個參數到底是什么意思?9.78, 9.88, 10.10分別代表前一分鐘,五分鐘,十五分鐘的平均CPU負載,最重要的指標是最后一個數字,即前15分鐘的平均CPU負載,這個數字越小越好。所謂CPU負載指的是一段時間內任務隊列的長度,通俗的講,就是一段時間內一共有多少任務在使用或等待使用CPU。
二、除了Nagios,還有哪些工具可以查看CPU負載?可以使用top命令、uptime命令,特別是top命令,功能強大,不僅僅可以用來查看CPU負載。三、CPU負載怎么理解?是不是CPU利用率?這里要區別CPU負載和CPU利用率,它們是不同的兩個概念,但它們的信息可以在同一個top命令中進行顯示。CPU利用率顯示的是程序在運行期間實時占用的CPU百分比,而CPU負載顯示的是一段時間內正在使用和等待使用CPU的平均任務數。CPU利用率高,并不意味著負載就一定大。網上有篇文章舉了一個有趣比喻,拿打電話來說明兩者的區別,我按自己的理解闡述一下。某公用電話亭,有一個人在打電話,四個人在等待,每人限定使用電話一分鐘,若有人一分鐘之內沒有打完電話,只能掛掉電話去排隊,等待下一輪。電話在這里就相當于CPU,而正在或等待打電話的人就相當于任務數。在電話亭使用過程中,肯定會有人打完電話走掉,有人沒有打完電話而選擇重新排隊,更會有新增的人在這兒排隊,這個人數的變化就相當于任務數的增減。為了統計平均負載情況,我們5秒鐘統計一次人數,并在第1、5、15分鐘的時候對統計情況取平均值,從而形成第1、5、15分鐘的平均負載。有的人拿起電話就打,一直打完1分鐘,而有的人可能前三十秒在找電話號碼,或者在猶豫要不要打,后三十秒才真正在打電話。如果把電話看作CPU,人數看作任務,我們就說前一個人(任務)的CPU利用率高,后一個人(任務)的CPU利用率低。當然, CPU并不會在前三十秒工作,后三十秒歇著,只是說,有的程序涉及到大量的計算,所以CPU利用率就高,而有的程序牽涉到計算的部分很少,CPU利用率自然就低。但無論CPU的利用率是高是低,跟后面有多少任務在排隊沒有必然關系。四、了解了CPU負載的含義,我們如何來降低服務器的CPU負載呢?最簡單辦法的是更換性能更好的服務器,不要想著僅僅提高CPU的性能,那沒有用,CPU要發揮出它最好的性能還需要其它軟硬件的配合。在服務器其它方面配置合理的情況下,CPU數量和CPU核心數(即內核數)都會影響到CPU負載,因為任務最終是要分配到CPU核心去處理的。兩塊CPU要比一塊CPU好,雙核要比單核好。因此,我們需要記住,除去CPU性能上的差異,CPU負載是基于內核數來計算的!有一個說法,“有多少內核,即有多少負載”。五、那么,本文開頭的CPU負載分擔到每個CPU上的負載是多少呢?那就要看我這臺服務器有一共有多少個內核了。Linux里有一個/proc目錄,存放的是當前運行系統的虛擬映射,其中有一個文件為cpuinfo,這個文件里存放著CPU的信息。我們可以直接打開查看,或者過濾關鍵字進行查看,因為文件內容比較多,所以一般我們需要過濾關鍵字。/proc/cpuinfo文件按邏輯CPU而非真實CPU分段落顯示信息,每個邏輯CPU的信息占用一個段落,第一個邏輯CPU標識從0開始。我們首先要明白這一點,至于什么是邏輯CPU,下面會提到。要理解該文件中的CPU信息,有幾個相關的概念要知道:processor:邏輯CPU的標識model name:真實CPU的型號信息physical id:真實CPU和標識cpu cores:真實CPU的內核數
$>grep ‘model name’ /proc/cpuinfo |uniq
model name : Intel(R) Xeon(R) CPU ?E7400 ?@ 1.86GHz
$>grep ‘cpu cores’ /proc/cpuinfo |uniq
2
轉載于:https://blog.51cto.com/wangyh/1250363
總結
以上是生活随笔為你收集整理的linux 系统负载的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Nginx读取Memcached实现页面
- 下一篇: 【转载】Android数据库(SqlLi