1. 程式人生 > >Linux檢視機器負載 ,記憶體,磁碟

Linux檢視機器負載 ,記憶體,磁碟

一、檢視機器負載

1. 檢視伺服器負載有多種命令,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命令來檢視伺服器負載。

2. top

在這裡插入圖片描述

Tasks行展示了目前的程序總數及所處狀態,要注意zombie,表示殭屍程序,不為0則表示有程序出現問題。

Cpu(s)行展示了當前CPU的狀態,us表示使用者程序佔用CPU比例,sy表示核心程序佔用CPU比例,id表示空閒CPU百分比,wa表示IO等待所佔用的CPU時間的百分比。wa佔用超過30%則表示IO壓力很大

Mem行展示了當前記憶體的狀態,total是總的記憶體大小,userd是已使用的,free是剩餘的,buff/cache是目錄快取。

Swap行同Mem行,avail Mem表示可用於程序下一次分配的實體記憶體數量。如果Swap的used很高,則表示系統記憶體不足。

在top命令下,按1,則可以展示出伺服器有多少CPU,及每個CPU的使用情況
在這裡插入圖片描述

一般而言,伺服器的合理負載是CPU核數*2。也就是說對於8核的CPU,負載在16以內表明機器執行很穩定流暢。如果負載超過16了(上邊提到的15分鐘之內的load average),就說明伺服器的執行有一定的壓力了。

在top命令下,按shift + “c”,則將程序按照CPU使用率從大到小排序,按shift+“p”,則將程序按照記憶體使用率從大到小排序,很容易能夠定位出哪些服務佔用了較高的CPU和記憶體。

僅僅有top命令是不夠的,因為它僅能展示CPU和記憶體的使用情況,對於負載升高的另一重要原因——IO沒有清晰明確的展示。linux提供了iostat命令,可以瞭解io的開銷。

3. iostat

輸入iostat -x 1 10命令,表示開始監控輸入輸出狀態,-x表示顯示所有引數資訊,1表示每隔1秒監控一次,10表示共監控10次。

在這裡插入圖片描述
其中rrqm/s表示讀入,wrqm/s表示每秒寫入,這兩個引數某一個特別高的時候就表示磁碟IO有很大壓力,util表示IO使用率,如果接近100%,說明IO滿負荷運轉。