Linux下查看CPU等基本命令,Linux查看CPU和内存使用情况的常用命令
1、top
top 的全屏對話模式可分為3部分:系統信息欄、命令輸入欄、進程列表欄。
第一部分 -- 最上部的 系統信息欄 :
第一行(top):
“00:11:04”為系統當前時刻;
“3:35”為系統啟動后到現在的運作時間;
“2 users”為當前登錄到系統的用戶,更確切的說是登錄到用戶的終端數 -- 同一個用戶同一時間對系統多個終端的連接將被視為多個用戶連接到系統,這里的用戶數也將表現為終端的數目;
“load average”為當前系統負載的平均值,后面的三個值分別為1分鐘前、5分鐘前、15分鐘前進程的平均數,一般的可以認為這個數值超過 CPU 數目時,CPU 將比較吃力的負載當前系統所包含的進程;
第二行(Tasks):
“59 total”為當前系統進程總數;
“1 running”為當前運行中的進程數;
“58 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 區分的進程列表將根據所設定的畫面更新時間定期的更新。通過 top 內部命令可以控制此處的顯示方式PID?USER??????PR??NI??VIRT??RES??SHR?S?%CPU?%MEM????TIME+??COMMAND
32497?jacky?????20???0??669m?222m??31m?R???10??5.6???????29:27.62?firefox
進程信息區統計信息區域的下方顯示了各個進程的詳細信息。首先來認識一下各列的含義。序號??列名??含義
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 鍵可以將當前的排序倒轉。
2、free
a.作用
free命令用來顯示內存的使用情況,使用權限是所有用戶。
b.格式
free [-b -k -m] [-o] [-s delay] [-t] [-V]
c.主要參數
-b -k -m:分別以字節(KB、MB)為單位顯示內存使用情況。
-s delay:顯示每隔多少秒數來顯示一次內存使用情況。
-t:顯示內存總和列。
-o:不顯示緩沖區調節列。
d.應用實例
free命令是用來查看內存使用情況的主要命令。和top命令相比,它的優點是使用簡單,并且只占用很少的系統資源。通過-S參數可以使用free命令不間斷地監視有多少內存在使用,這樣可以把它當作一個方便實時監控器。#free?-b?-s5
使用這個命令后終端會連續不斷地報告內存使用情況(以字節為單位),每5秒更新一次。
用 'top -i' 看看有多少進程處于 Running 狀態,可能系統存在內存或 I/O 瓶頸,用 free 看看系統內存使用情況,swap 是否被占用很多,用 iostat 看看 I/O 負載情況...
還有一種辦法是 ps -ef | sort -k7 ,將進程按運行時間排序,看哪個進程消耗的cpu時間最多。
內存free命令:[root@scs-2?tmp]#?free
total???????used???????free?????shared????buffers?????cached
Mem:??????3266180????3250004??????16176??????????0?????110652????2668236
-/+?buffers/cache:?????471116????2795064
Swap:??????2048276??????80160????1968116
第一行::
total:總計物理內存的大小。
used:已使用多大。
free:可用有多少。
Shared:多個進程共享的內存總額。
Buffers/cached:磁盤緩存的大小。
第三行:(-/+ buffers/cached):
used:已使用多大。
free:可用有多少。
區 別:
第二行(mem)的used/free與第三行(-/+ buffers/cache) used/free的區別。 這兩個的區別在于使用的角度來看,第一行是從OS的角度來看,因為對于OS,buffers/cached 都是屬于被使用,所以他的可用內存是16176KB,已用內存是3250004KB,其中包括,內核(OS)使用+Application(X, oracle,etc)使用的+buffers+cached.
第三行所指的是從應用程序角度來看,對于應用程序來說,buffers/cached 是等于可用的,因為buffer/cached是為了提高文件讀取的性能,當應用程序需在用到內存的時候,buffer/cached會很快地被回收。
所以從應用程序的角度來說,可用內存=系統free memory+buffers+cached。
如上例:2795064=16176+110652+2668236
什么時候內存會被交換,以及按什么方交換:
當可用內存少于額定值的時候,就會開會進行交換。
如何看內存額定值:[root@scs-2?tmp]#?cat?/proc/meminfo
或是查看/proc/kcore文件的大小(內存鏡像):[root@scs-2?tmp]#?ll?-h?/proc/kcore
-r--------?1?root?root?4.1G?Jun?12?12:04?/proc/kcore
備注:占用內存的測量
測量一個進程占用了多少內存:
linux為我們提供了一個很方便的方法,/proc目錄為我們提供了所有的信息,實際上top等工具也通過這里來獲取相應的信息。/proc/meminfo?機器的內存使用信息
/proc/pid/maps?pid為進程號,顯示當前進程所占用的虛擬地址。
/proc/pid/statm?進程所占用的內存
輸出解釋:
CPU 以及CPU0。。。的每行的每個參數意思(以第一行為例)為:
參數 解釋 /proc/status
Size (pages) 任務虛擬地址空間的大小 VmSize/4
Resident(pages) 應用程序正在使用的物理內存的大小 VmRSS/4
Shared(pages) 共享頁數 0
Trs(pages) 程序所擁有的可執行虛擬內存的大小 VmExe/4
Lrs(pages) 被映像到任務的虛擬內存空間的庫的大小 VmLib/4
Drs(pages) 程序數據段和用戶態的棧的大小 (VmData+ VmStk )4
3、uptime
18:59:15 up 25 min, 2 users, load average: 1.23, 1.32, 1.21
現在的時間
系統開機運轉到現在經過的時間
連線的使用者數量
最近一分鐘,五分鐘和十五分鐘的系統負載
參數: -V 顯示版本資訊。
4、vmstat
procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu----
r b swpd free buff cache si so bi bo in cs us sy id wa
0 1 24980 10792 8296 47316 5 19 205 52 1161 698 26 3 1 70
1、觀察磁盤活動情況:
磁盤活動情況主要從以下幾個指標了解:
bi:表示從磁盤每秒讀取的塊數(blocks/s)。數字越大,表示讀磁盤的活動越多。
bo:表示每秒寫到磁盤的塊數(blocks/s)。數字越大,表示寫磁盤的活動越多。
wa:cpu等待磁盤I/O(未決的磁盤IO)的時間比例。數字越大,表示文件系統活動阻礙cpu的情況越嚴重,因為cpu在等待慢速的磁盤系統提供數據。wa為0是最理想的。如果wa經常大于10,可能文件系統就需要進行性能調整了。
2 觀察cpu活動情況
vmstat比top更能反映出cpu的使用情況:
us:用戶程序使用cpu的時間比例。這個數字越大,表示用戶進程越繁忙。
sy: 系統調用使用cpu的時間比例。注意,NFS由于是在內核里面運行的,所以NFS活動所占用的cpu時間反映在sy里面。這個數字經常很大的話,就需要注 意是否某個內核進程,比如NFS任務比較繁重。如果us和sy同時都比較大的話,就需要考慮將某些用戶程序分離到另外的服務器上面,以免互相影響。
id:cpu空閑的時間比例。
wa:cpu等待未決的磁盤IO的時間比例。
5、iostat
用于統計CPU的使用情況及tty設備、硬盤和CD-ROM的I/0量
參數:
-c 只顯示CPU行
-d 顯示磁盤行
-k 以千字節為單位顯示磁盤輸出
-t 在輸出中包括時間戳
-x 在輸出中包括擴展的磁盤指標avg-cpu:?%user?%nice?%sys?%iowait?%idle
20.25?0.18?2.61?76.39?0.57
%iowait 等待本地I/O時CPU空閑時間的百分比
%idle 未等待本地I/O時CPU空閑時間的百分比Device:?tps?Blk_read/s?Blk_wrtn/s?Blk_read?Blk_wrtn
hda?9.86?284.34?84.48?685407?2036
每秒傳輸數(tps)、每秒512字節塊讀取數(Blk_read/s)、每秒512字節塊寫入數(Blk_wrtn/s)和512字節塊讀取(Blk_read)和寫入(Blk_wrtn)的總數量。
總結
以上是生活随笔為你收集整理的Linux下查看CPU等基本命令,Linux查看CPU和内存使用情况的常用命令的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php zend gua,PHP安装使用
- 下一篇: linux踩内存内存越界,Linux如何