天天看點

『學了就忘』Linux系統管理 — 86、檢視系統資源相關指令

目錄

1、vmstat指令

2、dmesg指令

3、free指令

4、檢視CPU資訊

5、檢視本機登陸使用者資訊

(1)w指令

(2)who指令

6、uptime指令

7、檢視系統與核心相關資訊

<code>vmstat</code>指令是一個監控(檢視)系統資源的指令。

示例:

提示: 因為我們這是Linux虛拟機,<code>vmstat</code>指令的輸出項中很多資料都是0,真實環境的生産伺服器并不是這樣的。

輸出項說明:

<code>procs</code>:程序資訊字段。

輸出項

說明

<code>r</code>

等待運作的程序數,數量越大,系統越繁忙。

<code>b</code>

不可被喚醒的程序數量,數量越大,系統越繁忙。

<code>memory</code>:記憶體資訊字段。

<code>swpd</code>

虛拟記憶體的使用情況,機關KB。

<code>free</code>

空閑的記憶體容量,機關KB。

<code>buff</code>

緩沖的記憶體容量,機關KB。(加速資料的寫入)

<code>cache</code>

緩存的記憶體容量,機關KB。(加速資料的讀取)

<code>swap</code>:交換分區的資訊字段。

<code>si</code>

從磁盤中交換到記憶體中資料的數量,機關KB。

<code>so</code>

從記憶體中交換到磁盤中資料的數量,機關KB。

此兩個數越大,證明資料需要經常在磁盤和記憶體之間交換,系統性能越差。

<code>io</code>:磁盤讀寫資訊段。

<code>bi</code>

從塊裝置讀入資料的總量,機關是塊。

<code>bo</code>

寫到塊裝置的資料的總量,機關是塊。

此兩個數越大,代表系統的I/0越繁忙。

<code>system</code>:系統資訊字段。

<code>in</code>

每秒被中斷的程序次數。

<code>cs</code>

每秒鐘進行的事件切換次數。

此兩個數越大,代表系統與接口裝置的通信非常繁忙。

CPU:CPU資訊字段。

這裡的資訊和<code>top</code>指令中看到的資訊類似。

<code>us</code>

非核心程序消耗CPU運算時間的百分比。

<code>sy</code>

核心程序消耗CPU運算時間的百分比。

<code>id</code>

空閑CPU的百分比。

<code>wa</code>

等待I/0所消耗的CPU百分比。

<code>st</code>

被虛拟機所盜用的CPU占比。

<code>dmesg</code>顯示開機時核心檢測資訊。

在Linux系統開機的時候,Linux核心會有一些自檢資訊,這些資訊可以通過<code>dmesg</code>指令重複的調用。

<code>free</code>指令檢視Linux系統的記憶體使用狀态。

輸出項解釋:

第一行:

<code>total</code>是總記憶體數。

<code>used</code>是已經使用的記憶體數。

<code>free</code>是空閑的記憶體數。

<code>shared</code>是多個程序共享的記憶體總數。

<code>buffers</code>是緩沖記憶體數,預設機關是KB(加速資料的寫入)。

<code>cached</code>是緩存記憶體數,預設機關是KB(加速資料的讀取)。

第二行:

<code>-/+ buffers/cache: 138M 1.7G</code>,其中138M是<code>- /buffers/cache</code>,1.78GB是<code>+ /buffers/cache</code>。

<code>- /buffers/cache</code>的記憶體數,相當于第一行的<code>used - buffers - cached</code>。

也就是說系統運作占用了240M的内容,但是<code>buffers</code>和<code>cached</code>兩個緩存占用的空間是36M和65M。

而<code>buffers</code>和<code>cached</code>兩個緩存是能被使用的,是以不應該算入系統占用記憶體中,是以計算機記憶體實際占用的數值為,記憶體占用總數減去兩個緩存數,就是被系統實際占用的記憶體數。

<code>+ /buffers/cache</code>的記憶體數,相當于第一行的<code>free + buffers + cached</code>。

和上面同理,系統實際的空閑記憶體空間為,空閑空間free加上兩個緩存空間的數值,就是系統實際空閑空間的記憶體數。

第三行:

<code>total</code>是swap的總數。

<code>used</code>是已經使用的swap數。

<code>free</code>是空閑的swap數。

以上數值預設機關是KB。

說明: Swap(臨時記憶體空間)在目前虛拟機中,因為通路量人數是極少的,在這種情況下,Swap都不會被占用,因為記憶體消耗很小。 但是在實際的生成環境中,Swap是非常重要的,可以給伺服器性能的提升帶來很大的幫助。

CPU的主要資訊儲存在<code>/proc/cpuinfo</code>這個檔案當中,我們隻要檢視這個檔案,就可以知道CPU的相關資訊。

指令如下:

拓展:

在<code>proc</code>目錄中其實是有一組可以檢視硬體資訊的檔案。

如下圖所示:

『學了就忘』Linux系統管理 — 86、檢視系統資源相關指令

如我們上邊練習檢視的CPU相關資訊在<code>cpuinfo</code>檔案中,

如果你需要檢視系統中記憶體的資訊,在<code>meminfo</code>檔案中檢視,

以後你想要檢視相關硬體資訊,都可以來<code>proc</code>目錄中檢視。

如果我們想要知道Linux伺服器上目前已經登入的使用者資訊,可以使用<code>w</code>或<code>who</code>指令來進行查詢。

<code>w</code>指令格式如下:

<code>w</code>指令輸出項說明:

第一行

其實和<code>top</code>指令的第一行非常類似,主要顯示了:

<code>08:09:36</code>:系統目前時間。

<code>up 1:55</code>:開機多久(up)。

<code>3 users</code>:有多少使用者登陸(users)。

<code>load average: 0.33, 0.19, 0.22</code>:1分鐘、5分鐘、15分鐘前的平均負載(load average)。

第二行

是項目的說明:

<code>USER</code>:登陸的使用者名。

<code>TTY</code>:登陸終端。

<code>FROM</code>:從哪個IP位址登陸。

<code>LOGIN@</code>:登陸時間。

<code>IDLE</code>:使用者閑置時間。

<code>JCPU</code>:指的是和該終端連接配接的所有程序占用的CPU運算時間。這個時間裡并不包括過去的背景作業時間,但卻包括目前正在運作的背景作業所占用的時間。

<code>PCPU</code>:是指目前程序所占用的CPU運算時間。

<code>WHAT</code>:目前正在運作的指令。

第三行開始每行代表一個使用者。

<code>who</code>指令比<code>w</code>指令稍微簡單一點,也可以用來檢視系統中已經登入的使用者。

<code>who</code>指令格式如下:

<code>uptime</code>指令的作用就是顯示系統的啟動時間和平均負載,也就是<code>top</code>指令的第一行。

其實<code>w</code>指令也能看到這一行的資料,具體原意使用哪個指令看個人習慣。

指令格式如下:

<code>top</code>指令其實是很耗資源的,如果我隻想看其中一部分資訊的時候,就比如說<code>top</code>指令的第一行資訊,我們就可以使用<code>w</code>指令或者<code>uptime</code>指令代替。

我們使用<code>uname</code>指令檢視核心的相關資訊,

如果我們想要判斷目前系統的位數,可以通過<code>file</code>指令來判斷系統檔案(主要是系統指令)的位數,來推斷系統的位數。

如果我們想要查詢目前Linux系統的發行版本,可以使用<code>lsb_release -a</code>指令檢視。