1. 程式人生 > >linux基礎(九)----linux效能監測

linux基礎(九)----linux效能監測

Linux下檢視記憶體,CPU資訊

記憶體資訊

使用free檢視記憶體資訊:

$ free -m
                total       used       free     shared    buffers     cached
Mem:              222         136         86          0         29       60
-/+ buffers/cache:             47        175
Swap:             1905          0       1905
  • total:總共的記憶體大小
  • used:已經被使用的記憶體
  • free:空閒的記憶體
  • shared:共享的記憶體大小
  • buffers:用來做緩衝的記憶體
  • cached:用來做cache的記憶體

Mem這行是以作業系統的角度去看待記憶體的使用,可以看到我們總共的記憶體是222M(total1),使用了136M(used1),有86M的空閒(free1),29M的緩衝(buffers1),60M的快取(cached1)。

-/+ buffers/cache這行是以應用程式的角度去看待記憶體的使用,對於應用來說bufferscached的記憶體是就是空閒的記憶體,在需要的時候是 可以直接拿來用的,所以:

used = used1 – buffers1 – shared1 = 136 – 29 – 60 = 47,
free = free1 + buffers1 + shared1 = 86 + 29 + 60 = 175。

Swap這行是交換區的使用情況,如果used很大的話,說明記憶體不夠用了。

PS:跑的虛擬機器,記憶體有些小

CPU資訊

Linux系統中的CPU資訊存在於/proc/cpuinfo檔案中,如果想了解全部的資訊,可以直接檢視這個檔案。

有多少個物理CPU?

cat /proc/cpuinfo | grep 'physical id' | sort | uniq |wc -l


有多少個虛擬CPU?

cat /proc/cpuinfo | grep ^processor | sort | uniq |wc -l

CPU是幾個核心的?

cat /proc/cpuinfo | grep 'cpu cores' | uniq

如何檢視每個CPU的使用情況?執行top指令,然後按1就可以看到CPU的使用情況了。

用TOP來作效能監控


在系統維護的過程中,隨時可能有需要檢視 CPU 使用率,並根據相應資訊分析系統狀況的需要。在 CentOS 中,可以通過 top 命令來檢視 CPU 使用狀況。執行 top 命令後,CPU 使用狀態會以全屏的方式顯示,並且會處在對話的模式 -- 用基於 top 的命令,可以控制顯示方式等等。退出 top 的命令為 q (在 top 執行中敲 q 鍵一次)。

操作例項:

  在命令列中輸入 “top”

  即可啟動 top

  top 的全屏對話模式可分為3部分:系統資訊欄、命令輸入欄、程序列表欄。

最上部的系統資訊欄

第一行(top)

“09:51:45”為系統當前時刻;
“up 14 days,17:53”為系統啟動後到現在的運作時間;
“1 users”為當前登入到系統的使用者,更確切的說是登入到使用者的終端數 -- 同一個使用者同一時間對系統多個終端的連線將被視為多個使用者連線到系統,這裡的使用者數也將表現為終端的數目;
“load average”為當前系統負載的平均值,後面的三個值分別為1分鐘前、5分鐘前、15分鐘前程序的平均數,一般的可以認為這個數值超過 CPU 數目時,CPU 將比較吃力的負載當前系統所包含的程序;

第二行(Tasks)

“482 total”為當前系統程序總數;
“1 running”為當前執行中的程序數;
“481 sleeping”為當前處於等待狀態中的程序數;
“0 stoped”為被停止的系統程序數;
“0 zombie”為被複原的程序數;

第三行(Cpus)

分別表示了 CPU 當前的使用率;

第四行(Mem)

分別表示了記憶體總量、當前使用量、空閒記憶體量、以及緩衝使用中的記憶體量;

第五行(Swap)

表示類別同第四行(Mem),但此處反映著交換分割槽(Swap)的使用情況。通常,交換分割槽(Swap)被頻繁使用的情況,將被視作實體記憶體不足而造成的。

第二部分中間部分的內部命令提示欄

top 執行中可以通過 top 的內部命令對程序的顯示方式進行控制。內部命令如下表:

  s - 改變畫面更新頻率

  l - 關閉或開啟第一部分第一行 top 資訊的表示

  t - 關閉或開啟第一部分第二行 Tasks 和第三行 Cpus 資訊的表示

  m - 關閉或開啟第一部分第四行 Mem 和 第五行 Swap 資訊的表示

  N - 以 PID 的大小的順序排列表示程序列表(第三部分後述)

  P - 以 CPU 佔用率大小的順序排列程序列表 (第三部分後述)

  M - 以記憶體佔用率大小的順序排列程序列表 (第三部分後述)

  h - 顯示幫助

  n - 設定在程序列表所顯示程序的數量

  q - 退出 top

第三部分最下部分的程序列表欄

以 PID 區分的程序列表將根據所設定的畫面更新時間定期的更新。

程序資訊區統計資訊區域的下方顯示了各個程序的詳細資訊。首先來認識一下各列的含義。

序號  列名  含義  
a  PID  程序id  
b  PPID  父程序id  
c  RUSER  Real user name  
d  UID  程序所有者的使用者id  
e  USER  程序所有者的使用者名稱  
f  GROUP  程序所有者的組名  
g  TTY  啟動程序的終端名。不是從終端啟動的程序則顯示為 ?  
h  PR  優先順序  
i  NI  nice值。負值表示高優先順序,正值表示低優先順序  
j  P  最後使用的CPU,僅在多CPU環境 下有意義  
k  %CPU  上次更新到現在的CPU時間佔用百分比  
l  TIME  程序使用的CPU時間總計,單位秒  
m  TIME+  程序使用的CPU時間總計,單位1/100秒  
n  %MEM  程序使用的實體記憶體 百分比  
o  VIRT  程序使用的虛擬記憶體總量,單位kb。VIRT=SWAP+RES  
p  SWAP  程序使用的虛擬記憶體中,被換出的大小,單位kb。  
q  RES  程序使用的、未被換出的實體記憶體大小,單位kb。RES=CODE+DATA  
r  CODE  可執行程式碼佔用的物理 記憶體大小,單位kb  
s  DATA  可執行程式碼以外的部分(資料 段+棧)佔用的物理 記憶體大小,單位kb  
t  SHR  共享記憶體大小,單位kb  
u  nFLT  頁面錯誤次數  
v  nDRT  最後一次寫入到現在,被修改過的頁面數。  
w  S  程序狀態。
            D =不可中斷的睡眠狀態
            R =執行
            S =睡眠
            T =跟蹤/停止
            Z =殭屍程序  
x  COMMAND  命令名/命令列  
y  WCHAN  若該程序在睡眠,則顯示睡眠中的系統函式名  
z  Flags  任務標誌,參考 sched.h 

預設情況下僅顯示比較重要的  PID、USER、PR、NI、VIRT、RES、SHR、S、%CPU、%MEM、TIME+、COMMAND  列。

可以通過下面的快捷鍵來更改顯示內容。
更改顯示內容通過 f 鍵可以選擇顯示的內容。按 f 鍵之後會顯示列的列表,按 a-z  即可顯示或隱藏對應的列,最後按回車鍵確定。
按 o 鍵可以改變列的顯示順序。按小寫的 a-z 可以將相應的列向右移動,而大寫的 A-Z  可以將相應的列向左移動。最後按回車鍵確定。
按大寫的 F 或 O 鍵,然後按 a-z 可以將程序按照相應的列進行排序。而大寫的  R 鍵可以將當前的排序倒轉。 

快捷鍵

top命令使用過程中,還可以使用一些互動的命令來完成其它引數的功能。這些命令是通過快捷鍵啟動的。
<空格>:立刻重新整理。
P:根據CPU使用大小進行排序。
T:根據時間、累計時間排序。
q:退出top命令。
m:切換顯示記憶體資訊。
t:切換顯示程序和CPU狀態資訊。
c:切換顯示命令名稱和完整命令列。
M:根據使用記憶體大小進行排序。
W:將當前設定寫入~/.toprc檔案中。這是寫top配置檔案的推薦方法。

可以看到,top命令是一個功能十分強大的監控系統的工具,對於系統管理員而言尤其重要。但是,它的缺點是會消耗很多系統資源。

應用例項 

使用top命令可以監視指定使用者,預設情況是監視所有使用者的程序。如果想檢視指定使用者的情況,在終端中按“U”鍵,然後輸入使用者名稱,系統就會切換為指定使用者的程序執行介面。

作用

free命令用來顯示記憶體的使用情況,使用許可權是所有使用者。

格式

free [-b -k -m] [-o] [-s delay] [-t] [-V]
主要引數
-b -k -m:分別以位元組(KB、MB)為單位顯示記憶體使用情況。
-s delay:顯示每隔多少秒數來顯示一次記憶體使用情況。
-t:顯示記憶體總和列。
-o:不顯示緩衝區調節列。

應用例項

free命令是用來檢視記憶體使用情況的主要命令。和top命令相比,它的優點是使用簡單,並且只佔用很少的系統資源。通過-S引數可以使用free命令不間斷地監視有多少記憶體在使用,這樣可以把它當作一個方便實時監控器。
#free -b -s5
使用這個命令後終端會連續不斷地報告記憶體使用情況(以位元組為單位),每5秒更新一次。