Linux檢視機器負載
負載(load)是linux機器的一個重要指標,直觀了反應了機器當前的狀態。如果機器負載過高,那麼對機器的操作將難以進行。
Linux的負載高,主要是由於CPU使用、記憶體使用、IO消耗三部分構成。任意一項使用過多,都將導致伺服器負載的急劇攀升。
檢視伺服器負載有多種命令,w或者uptime都可以直接展示負載,
$ uptime 12:20:30 up 44 days, 21:46, 2 users, load average: 8.99, 7.55, 5.40
$ w 12:22:02 up 44 days, 21:48, 2 users, load average: 3.96, 6.28, 5.16
load average分別對應於過去1分鐘,5分鐘,15分鐘的負載平均值。
什麼是Load?什麼是Load Average?
Load 就是對計算機幹活多少的度量(WikiPedia:the system Load is a measure of the amount of work that a compute system is doing)簡單的說是程式佇列的長度。Load Average 就是一段時間(1分鐘、5分鐘、15分鐘)內平均Load
如何判斷系統是否已經Over Load
對一般的系統來說,根據cpu數量去判斷。如果平均負載始終在1.2以下,而你有2顆cup的機器。那麼基本不會出現cpu不夠用的情況。也就是Load平均要小於Cpu的數量,一般是會根據15分鐘那個load 平均值為首先。
這兩個命令只是單純的反映出負載,linux提供了更為強大,也更為實用的top命令來檢視伺服器負載。
$top
Tasks行展示了目前的程式總數及所處狀態,要注意zombie,表示殭屍程式,不為0則表示有程式出現問題。
Cpu(s)行展示了當前CPU的狀態,us表示使用者程式佔用CPU比例,sy表示核心程式佔用CPU比例,id表示空閒CPU百分比,wa表示IO等待所佔用的CPU時間的百分比。wa佔用超過30%則表示IO壓力很大。
Mem行展示了當前記憶體的狀態,total是總的記憶體大小,userd是已使用的,free是剩餘的,buffers是目錄快取。
Swap行同Mem行,cached表示快取,使用者已開啟的檔案。如果Swap的used很高,則表示系統記憶體不足。
在top命令下,按1,則可以展示出伺服器有多少CPU,及每個CPU的使用情況
一般而言,伺服器的合理負載是CPU核數*2。也就是說對於8核的CPU,負載在16以內表明機器執行很穩定流暢。如果負載超過16了,就說明伺服器的執行有一定的壓力了。
在top命令下,按shift + "c",則將程式按照CPU使用率從大到小排序,按shift+"p",則將程式按照記憶體使用率從大到小排序,很容易能夠定位出哪些服務佔用了較高的CPU和記憶體。
僅僅有top命令是不夠的,因為它僅能展示CPU和記憶體的使用情況,對於負載升高的另一重要原因——IO沒有清晰明確的展示。linux提供了iostat命令,可以瞭解io的開銷。
輸入iostat -x 1 10命令,表示開始監控輸入輸出狀態,-x表示顯示所有引數資訊,1表示每隔1秒監控一次,10表示共監控10次。
其中rsec/s表示讀入,wsec/s表示每秒寫入,這兩個引數某一個特別高的時候就表示磁碟IO有很大壓力,util表示IO使用率,如果接近100%,說明IO滿負荷運轉。
檢視系統負載vmstat
$vmstat procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 689568 121068 1397252 0 0 77 8 110 745 4 1 93 1 0
r 列表示執行和等待cpu時間片的程式數,如果長期大於1,說明cpu不足,需要增加cpu。
b 列表示在等待資源的程式數,比如正在等待I/O、或者記憶體交換等。 cpu 表示cpu的使用狀態
us 列顯示了使用者方式下所花費 CPU 時間的百分比。us的值比較高時,說明使用者程式消耗的cpu時間多,但是如果長期大於50%,需要考慮優化使用者的程式。
sy 列顯示了核心程式所花費的cpu時間的百分比。這裡us + sy的參考值為80%,如果us+sy 大於 80%說明可能存在CPU不足。
wa 列顯示了IO等待所佔用的CPU時間的百分比。這裡wa的參考值為30%,如果wa超過30%,說明IO等待嚴重,這可能是磁碟大量隨機訪問造成的,也可能磁碟或者磁碟訪問控制器的頻寬瓶頸造成的(主要是塊操作)。
id 列顯示了cpu處在空閒狀態的時間百分比 system 顯示採集間隔內發生的中斷數
in 列表示在某一時間間隔中觀測到的每秒裝置中斷數。 cs列表示每秒產生的上下文切換次數,如當 cs 比磁碟 I/O 和網路資訊包速率高得多,都應進行進一步調查。
memory
swpd 切換到記憶體交換區的記憶體數量(k表示)。如果swpd的值不為0,或者比較大,比如超過了100m,只要si、so的值長期為0,系統效能還是正常
free 當前的空閒頁面列表中記憶體數量(k表示) buff 作為buffer cache的記憶體數量,一般對塊裝置的讀寫才需要緩衝。 cache: 作為page cache的記憶體數量,一般作為檔案系統的cache,如果cache較大,說明用到cache的檔案較多,如果此時IO中bi比較小,說明檔案系統效率比較好。 swap
si 由記憶體進入記憶體交換區數量。 so由記憶體交換區進入記憶體數量。 IO
bi 從塊裝置讀入資料的總量(讀磁碟)(每秒kb)。 bo 塊裝置寫入資料的總量(寫磁碟)(每秒kb)
這裡我們設定的bi+bo參考值為1000,如果超過1000,而且wa值較大應該考慮均衡磁碟負載,可以結合iostat輸出來分析
相關文章
- Linux 如何檢視系統負載Linux負載
- vmstat檢視分析Linux系統負載效能Linux負載
- Linux程序排程器-CPU負載Linux負載
- linux 檢視修改主機名Linux
- Linux平均負載Linux負載
- 探索Android檢視載入器LayoutInflaterAndroid
- Linux LVS 負載均衡Linux負載
- linux檢視伺服器配置資訊Linux伺服器
- ORACLE 檢視IP,解析機器名Oracle
- Linux磁碟分割槽、掛載、檢視檔案大小Linux
- Linux 伺服器硬碟使用情況檢視Linux伺服器硬碟
- linux檢視伺服器狀態命令--lsloadLinux伺服器
- linux 檢視伺服器的連線數Linux伺服器
- Nginx負載均衡之健康檢查Nginx負載
- Linux效能優化-平均負載Linux優化負載
- uptime命令檢視Linux伺服器健康狀態Linux伺服器
- Linux 檢視日誌Linux
- 檢視Linux核心版本Linux
- 伺服器負載均衡伺服器負載
- 伺服器負載分析伺服器負載
- opencv——機器視覺檢測和計數OpenCV視覺
- 華納雲:如何在CentOS中檢視當前系統的負載情況CentOS負載
- Linux 系統檢視命令Linux
- Linux 安全資訊檢視Linux
- linux程式和埠檢視Linux
- linux檢視裝置命令Linux
- 檢視 Linux 殭屍程式Linux
- Linux 檢視埠占用並Linux
- Linux 檢視程式情況Linux
- Linux檢視埠詳情Linux
- linux 檢視程式 kill程式Linux
- 邊緣計算工作負載:虛擬機器,容器還是裸機?負載虛擬機
- 在Linux中,如何實現負載均衡?Linux負載
- Linux環境下Nginx及負載均衡LinuxNginx負載
- Linux ps命令詳解,Linux檢視程序。Linux
- day04-檢視和檢視解析器
- 檢視控制器
- 【機器視覺】機器人及視覺檢測系統在螺絲檢測包裝生產線上的應用視覺機器人
- RStack上開通檢視免費KVM VPS如何檢視虛擬機器實時流量虛擬機