【linux?1】系統性能監視命令匯集(19個)

linux系統性能監視命令,經過百度谷歌,加上各渠道獲得,查找到相關命令匯集,望能學有所收獲 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?--by 王子

匯集命令如下:

內存:top、 free、 vmstat、 mpstat、iostat、 sar

CPU:top、 vmstat、 mpstat、 iostat、 sar

I/O:vmstat、 mpstat、 iostat、 sar

進程:ipcs、 ipcrm、 lsof、 strace、 lstrace

負載:uptime、 mount、 umount、 df、 du、 fsck、 dd、 dumpe2fs、 dump


top

顯示管理執行中的程序。

命令格式:top ?[-] [d] [p] [q] [c] [C] [S][n]

常用參數(詳細內容可以參考MAN 幫助文檔。這里列舉部分內容)

b  使用批處理模式。# top b

c  列出程序時,顯示每個程序的完整指令,包括指令名稱,路徑和參數等相關信息。# top c

d<間隔秒數>  設置top監控程序執行狀況的間隔時間,單位以秒計算。# top d

i  執行top指令時,忽略閑置或是已成為Zombie的程序。# top i

n<執行次數>  設置監控信息的更新次數。# top n

q  持續監控程序執行的狀況。# top q

s  使用保密模式,消除互動模式下的潛在危機。# top s

S  使用累計模式,其效果類似ps指令的"-S"參數。# top S/-S

備注:

一.TOP前五行統計信息:

1、統計信息區前五行是系統整體的統計信息。

2、第二、三行為進程和CPU的信息

3、第四五行為內存信息。

二.列表進程信息

詳細內容請查閱:http://www.jb51.net/LINUXjishu/34604.html


free

顯示內存狀態。

命令格式:free [-bkmotV][-s <間隔秒數>]

常用參數

-b  以Byte為單位顯示內存使用情況。

-k  以KB為單位顯示內存使用情況。

-m  以MB為單位顯示內存使用情況。

-o  不顯示緩沖區調節列。

-s<間隔秒數>  持續觀察內存使用狀況。

-t  顯示內存總和列。

-V  顯示版本信息。

備注:

# free

# free -mMem:表示物理內存統計

-/+ buffers/cached:表示物理內存的緩存統計

Swap:表示硬盤上交換分區的使用情況,

詳細內容請查閱:

http://www.jb51.net/LINUXjishu/57932.html


vmstat

顯示虛擬內存使用情況

命令格式:

vmstat ?[-a] [-n] [-S unit] [delay [ count]]

vmstat [-s] [-n] [-S unit]

vmstat [-m] [-n] [delay [ count]]

vmstat [-d] [-n] [delay [ count]]

vmstat [-p disk partition] [-n]

[delay [ count]]

vmstat [-f]

vmstat [-V]

常用參數

-a:顯示活躍和非活躍內存

-f:顯示從系統啟動至今的fork數量 。

-m:顯示slabinfo

-n:只在開始時顯示一次各字段名稱。

-s:顯示內存相關統計信息及多種系統活動數量。

delay:刷新時間間隔。如果不指定,只顯示一條結果。

count:刷新次數。如果不指定刷新次數,但指定了刷新時間間隔,這時刷新次數為無窮。

-d:顯示磁盤相關統計信息。

-p:顯示指定磁盤分區統計信息

-S:使用指定單位顯示。參數有 k 、K 、m 、M ,分別代表1000、1024、1000000、1048576字節(byte)。默認單位為K(1024 bytes)

-V:顯示vmstat版本信息。

# ?vmstat 5 6

(命令:vmstat 5 6

表示在5秒時間內進行6次采樣。將得到一個數據匯總他能夠反映真正的系統情況。)vmstat命令輸出信息詳細說明:

字段說明:

Procs(進程):

r: 運行隊列中進程數量

b: 等待IO的進程數量

Memory(內存):

swpd: 使用虛擬內存大小

free: 可用內存大小

buff: 用作緩沖的內存大小

cache: 用作緩存的內存大小

Swap:

si: 每秒從交換區寫到內存的大小

so: 每秒寫入交換區的內存大小

IO:(現在的Linux版本塊的大小為1024bytes)

bi: 每秒讀取的塊數

bo: 每秒寫入的塊數

系統:

in: 每秒中斷數,包括時鐘中斷。

cs: 每秒上下文切換數。

CPU(以百分比表示):

us: 用戶進程執行時間(user time)

sy: 系統進程執行時間(system time)

id: 空閑時間(包括IO等待時間),中央處理器的空閑時間 ?。以百分比表示。

wa: 等待IO時間

備注: 如果 r經常大于 4 ,且id經常少于40,表示cpu的負荷很重。如果pi,po 長期不等于0,表示內存不足。如果disk 經常不等于0, 且在 b中的隊列 大于3, 表示 io性能不好。Linux在具有高穩定性、可靠性的同時,具有很好的可伸縮性和擴展性,能夠針對不同的應用和硬件環境調整,優化出滿足當前應用需要的最佳性能。因此企業在維護Linux系統、進行系統調優時,了解系統性能分析工具是至關重要的。

詳細查閱:

http://www.jb51.net/LINUXjishu/152024.html


mpstat

實時系統監控工具。

命令格式:mpstat [-P {|ALL}] [internal [count]]

常用參數

(當沒有參數時,mpstat則顯示系統啟動以后所有信息的平均值。有interval時,第一行的信息自系統啟動以來的平均信息。從第二行開始,輸出為前一個interval時間段的平均信息。)

-P ?{|ALL} 表示監控哪個CPU, cpu在[0,cpu個數-1]中取值

internal 相鄰的兩次采樣的間隔時間、

count 采樣的次數,count只能和delay一起使用

備注:

mpstat -P ALL 2屬性說明:

%user在internal時間段里,用戶態的CPU時間(%),不包含nice值為負進程(usr/total)*100

%nice在internal時間段里,nice值為負進程的CPU時間(%)(nice/total)*100

%sys在internal時間段里,內核時間(%)(system/total)*100

%iowait在internal時間段里,硬盤IO等待時間(%) ?(iowait/total)*100

%irq在internal時間段里,硬中斷時間(%)(irq/total)*100

%soft在internal時間段里,軟中斷時間(%)(softirq/total)*100

%idle在internal時間段里,CPU除去等待磁盤IO操作外的因為任何原因而空閑的時間閑置時間(%) (idle/total)*100

計算公式: ?

total_cur=user+system+nice+idle+iowait+irq+softirq

total_pre=pre_user+ pre_system+ pre_nice+ pre_idle+ pre_iowait+ pre_irq+ pre_softirq

user=user_cur – user_pre

total=total_cur-total_pre

其中_cur 表示當前值,_pre表示interval時間前的值。上表中的所有值可取到兩位小數點。

詳細查閱:http://www.cnblogs.com/stephen-liu74/archive/2011/12/05/2257887.html


iostat

(輸入/輸出統計)對系統的磁盤操作活動進行監視。

命令格式:iostat[參數][時間][次數]

常用參數

-C 顯示CPU使用情況cpu

-d 顯示磁盤使用情況

-k 以 KB 為單位顯示

-m 以 M 為單位顯示

-N 顯示磁盤陣列(LVM) 信息

-n 顯示NFS 使用情況

-p[磁盤] 顯示磁盤和分區的情況

-t 顯示終端和CPU的信息

-x 顯示詳細信息

-V 顯示版本信息

disk屬性:

屬性值說明:

rrqm/s: ?每秒進行 merge 的讀操作數目。即 rmerge/s

wrqm/s: ?每秒進行 merge 的寫操作數目。即 wmerge/s

r/s: ?每秒完成的讀 I/O 設備次數。即 rio/s

w/s: ?每秒完成的寫 I/O 設備次數。即 wio/s

rsec/s: ?每秒讀扇區數。即 rsect/s

wsec/s: ?每秒寫扇區數。即 wsect/s

rkB/s: ?每秒讀K字節數。是 rsect/s 的一半,因為每扇區大小為512字節。

wkB/s: ?每秒寫K字節數。是 wsect/s 的一半。

avgrq-sz: ?平均每次設備I/O操作的數據大小 (扇區)。

avgqu-sz: ?平均I/O隊列長度。

await: ?平均每次設備I/O操作的等待時間 (毫秒)。

svctm: 平均每次設備I/O操作的服務時間 (毫秒)。

%util: ?一秒中有百分之多少的時間用于 I/O 操作,即被io消耗的cpu百分比

備注:如果 %util 接近 100%,說明產生的I/O請求太多,I/O系統已經滿負荷,該磁盤可能存在瓶頸。如果 svctm 比較接近 await,說明 I/O 幾乎沒有等待時間;如果 await 遠大于 svctm,說明I/O 隊列太長,io響應太慢,則需要進行必要優化。如果avgqu-sz比較大,也表示有當量io在等待。

示例:

iostat -d 2 2

[root@localhost ~]# iostat -d 2 2

Linux 3.10.0-327.el7.x86_64 (localhost.localdomain) ?02/13/2017 ?_x86_64_ ?(4 CPU)

Device: ? ? ? ?tps ? ?kB_read/s ? ?kB_wrtn/s ? ?kB_read ? ?kB_wrtn

sda ? ? ? ? ? 2.28 ? ? ? 105.65 ? ? ? ? 3.61 ? ?1043443 ? ? ?35692

Device: ? ? ? ?tps ? ?kB_read/s ? ?kB_wrtn/s ? ?kB_read ? ?kB_wrtn

sda ? ? ? ? ? 0.50 ? ? ? ? 4.00 ? ? ? ? 0.00 ? ? ? ? ?8 ? ? ? ? ?0


iostat -d -k 1 1

[root@localhost ~]# iostat -d -k 1 1

Linux 3.10.0-327.el7.x86_64 (localhost.localdomain) ?02/13/2017 ?_x86_64_ ?(4 CPU)

Device: ? ? ? ?tps ? ?kB_read/s ? ?kB_wrtn/s ? ?kB_read ? ?kB_wrtn

sda ? ? ? ? ? 2.08 ? ? ? ?95.97 ? ? ? ? 3.30 ? ?1043619 ? ? ?35939

屬性值說明:

%user 顯示了在用戶級(應用程序)執行時產生的 CPU 使用率百分比。

%system 顯示了在系統級(內核)執行時產生的 CPU 使用率百分比。

%idle 顯示了在 CPU 空閑并且系統沒有未完成的磁盤 I/O 請求時的時間百分比。

%iowait 顯示了 CPU 空閑期間系統有未完成的磁盤 I/O 請求時的時間百分比。

%nicenice 操作(改變進程優先序列操作)操作使用的CPU百分比

%steal 管理程序維護另一個虛擬處理器時候,虛擬CPU的無意識等待時間百分比


sar

對系統的活動進行報告命令。

包括:文件的讀寫情況、系統調用的使用情況、磁盤I/O、CPU效率、內存使用狀況、進程活動及IPC有關的活動等。

命令格式:sar [options] [-A] [-o file] t [n](t為采樣間隔,n為采樣次數,默認值是1;)

常用參數

-A:所有報告的總和

-P:設定CPU

-u:輸出CPU使用情況的統計信息

-v:輸出inode、文件和其他內核表的統計信息

-d:輸出每一個塊設備的活動信息

-n:匯報網絡情況

-q:匯報隊列長度和負載信息

-r:輸出內存和交換空間的統計信息

-b:顯示I/O和傳送速率的統計信息

-a:文件讀寫情況

-c:輸出進程統計信息,每秒創建的進程數

-R:輸出內存頁面的統計信息

-y:終端設備活動情況

-w:輸出系統交換活動信息

示例:

1、例如,每10秒采樣一次,連續采樣3次,觀察CPU的使用情況,并將采樣結果以二進制形式存入當前目錄下的文件sys_info中,需鍵入如下命令:

# sar -u -o sys_info 10 3

2、# sar -f sys_info(用-f設定要讀取的信息存儲文件)

3、# sar -P ALL 1 1(-P查看cpu)

4、例如,每10秒采樣一次,連續采樣3次,觀察核心表的狀態,需鍵入如下命令:

# sar -v 10 3輸出項說明:

CPU:all表示統計信息為所有CPU的平均值。

%user:顯示在用戶級別(application)運行使用CPU總時間的百分比。

%nice:顯示在用戶級別,用于nice操作,所占用CPU總時間的百分比。

%system:在核心級別(kernel)運行所使用CPU總時間的百分比。

%iowait:顯示用于等待I/O操作占用CPU總時間的百分比。

%steal:管理程序(hypervisor)為另一個虛擬進程提供服務而等待虛擬CPU的百分比。

%idle:顯示CPU空閑時間占用CPU總時間的百分比。

注意說明:

(1).若%iowait的值過高,表示硬盤存在I/O瓶頸

(2).若%idle的值高但系統響應慢時,有可能是CPU等待分配內存,此時應加大內存容量

(3).若%idle的值持續低于1,則系統的CPU處理能力相對較低,表明系統中最需要解決的資源是CPU。

詳細查閱:http://www.jb51.net/LINUXjishu/396293.html


ipcs(與ipcrm相關聯)

報告進程間通信設施狀態。

命令格式:ipcs [-mqs] [-abcopt] [-C core] [-N namelist]

參數用法

ipcs -a ?是默認的輸出信息 打印出當前系統中所有的進程間通信方式的信息

ipcs -m ?打印出使用共享內存進行進程間通信的信息

ipcs -q ? 打印出使用消息隊列進行進程間通信的信息

ipcs -s ?打印出使用信號進行進程間通信的信息

ipcs -t ? 輸出信息的詳細變化時間

ipcs -p ?輸出ipc方式的進程ID

ipcs -c ?輸出ipc方式的創建者/擁有者

ipcs -u ?輸出當前系統下ipc各種方式的狀態信息(共享內存,消息隊列,信號)

示例:

1、ipcs -ql

2、ipcrm -刪除ipc(清除共享內存信息)引用它的語法:

ipcrm -m|-q|-s shm_id-ql(查看消息隊列的限制信息)

說明:

-qt(顯示消息隊列的創建時間,發送和接收最后一條消息的時間)

-qp(顯示往消息隊列中放消息和從消息隊列中取消息的進程ID)

-q ?-i msgid:顯示該消息隊列結構體中的消息信息

詳細查閱:http://www.jb51.net/article/40805.htm


ipcrm

移除一個消息對象。或者共享內存段,或者一個信號集,同時會將與ipc對象相關鏈的數據也一起移除。當然,只有超級管理員,或者ipc對象的創建者才有這項權利。

參數用法

ipcrm ?-M shmkey移除用shmkey創建的共享內存段

ipcrm -m shmid ? ?移除用shmid標識的共享內存段

ipcrm -Q msgkey ?移除用msqkey創建的消息隊列

ipcrm -q msqid ?移除用msqid標識的消息隊列

ipcrm -S semkey ?移除用semkey創建的信號

ipcrm -s semid ?移除用semid標識的信號


lsof

以列表的形式顯示打開的文件和進程。在linux環境下,任何事物都以文件的形式存在,通過文件不僅僅可以訪問常規數據,還可以訪問網絡連接和硬件。

命令格式:lsof[options]filename

常用參數

lsof filename 顯示打開指定文件的所有進程

lsof -a 表示兩個參數都必須滿足時才顯示結果

lsof -c string

顯示COMMAND列中包含指定字符的進程所有打開的文件

lsof -u username 顯示所屬user進程打開的文件

lsof -g gid 顯示歸屬gid的進程情況

lsof +d /DIR/ 顯示目錄下被進程打開的文件

lsof +D /DIR/ 同上,但是會搜索目錄下的所有目錄,時間相對較長

lsof -d FD 顯示指定文件描述符的進程

lsof -n 不將IP轉換為hostname,缺省是不加上-n參數

lsof -i 用以顯示符合條件的進程情況

lsof -i[46]

[protocol][@hostname|hostaddr][:service|port]

46 --> IPv4 or IPv6

protocol --> TCP or UDP

hostname --> Internet host name

hostaddr --> IPv4地址

service --> /etc/service中的 service name

(可以不只一個)

port --> 端口號 (可以不只一個)

屬性名稱:

COMMAND:進程的名稱

PID:進程標識符

USER:進程所有者

FD:文件描述符,應用程序通過文件描述符識別該文件。如cwd、txt等

TYPE:文件類型,如DIR、REG等

DEVICE:指定磁盤的名稱

SIZE:文件的大小

NODE:索引節點(文件在磁盤上的標識)

NAME:打開文件的確切名稱

詳細查閱:http://www.jb51.net/LINUXjishu/83948.html


strace

跟蹤程式執行時的系統調用和所接收的信號

命令格式:strace ?[ -dffhiqrtttTvxx ] [ -acolumn ] [ -eexpr ] ...

[ -ofile ] [ -ppid ] ... [ -sstrsize ] [ -uusername ] [ command [ arg ... ] ?]

strace -c [ -eexpr ] ... [ -Ooverhead ] [ -Ssortby ] [ command [ arg ... ] ?]

參數詳細查閱:http://www.jb51.net/os/RedHat/1156.html

http://man.linuxde.net/strace


lstrace暫無相關信息


uptime

獲取主機運行時間和linux系統負載

直接輸入uptime

參數 ?-V獲取版本信息

相關:

ps-ef查看進程

-e : 在命令執行后顯示環境

-f : 完整顯示輸出

1) 進程用戶ID(UID)

2) 進程ID (PID)

3) 父進程ID (PPID)

4) CPU 調度情況 (C)

5) 進程啟動的時間 (STIME)

6) 進程共占用CPU的時間(TIME)

7) 啟動進程的命令 (CMD)

cat /proc/uptime 查看系統啟動時間和空閑時間

第一個數值代表系統總的啟動時間,第二個數值則代表系統空閑的時間,都是用秒來表示的。如果系統里第二個數字比第一個數字還要大,則說明你的cpu是多核的,cpu0上閑了一秒, cpu1上閑了兩秒,加起就是三秒。

詳細查閱:http://www.jb51.net/article/40813.htm


df

顯示磁盤的相關信息(df可顯示磁盤的文件系統與使用情形。)

命令格式:df [-ahHiklmPT][--block-size=<區塊大小>][-t <文件系統類型>][-x

<文件系統類型>][--help][--no-sync][--sync][--version][文件或設備]

-a或--all ? 包含全部的文件系統。

--block-size=<區塊大小> ? 以指定的區塊大小來顯示區塊數目。

-h或--human-readable ? 以可讀性較高的方式來顯示信息。

-H或--si ? 與-h參數相同,但在計算時是以1000 Bytes為換算單位而非1024 Bytes。

-i或--inodes ? 顯示inode的信息。

-k或--kilobytes ? 指定區塊大小為1024字節。

-l或--local ?僅顯示本地端的文件系統。

-m或--megabytes ? 指定區塊大小為1048576字節。

--no-sync ? 在取得磁盤使用信息前,不要執行sync指令,此為預設值。

-P或--portability ? 使用POSIX的輸出格式。

--sync ? 在取得磁盤使用信息前,先執行sync指令。

-t<文件系統類型>或--type=<文件系統類型> ? 僅顯示指定文件系統類型的磁盤信息。

-T或--print-type ?顯示文件系統的類型。

-x<文件系統類型>或--exclude-type=<文件系統類型>不要顯示指定文件系統類型的磁盤信息。

--help ? 顯示幫助。

--version ? 顯示版本信息。

[文件或設備] ? 指定磁盤設備。

示例:

$ ?df

$ df -ia (列出各文件系統的i節點使用情況)

列出文件系統的類型。

$ df -T

Filesystem Type 1K-blocks Used Available use% Mounted on

/dev/hda2 ext2 1361587 1246405 44824 97% /

(本例中的文件系統是ext2類型的)

# df -a

詳細查閱:http://www.jb51.net/LINUXjishu/64953.html


du

評估磁盤的使用情況

命令格式:du [OPTION]… [FILE]…

詳細查閱:http://www.jb51.net/LINUXjishu/34649.html


mount

掛接

命令格式:mount [-t vfstype] [-o options] device dir

詳細查閱:http://www.jb51.net/article/40808.htm


umount

卸除文件系統。

命令格式:umount [-ahnrvV][-t <文件系統類型>][文件系統]

參數

-a ? 卸除/etc/mtab中記錄的所有文件系統。

-h ? 顯示幫助。

-n ? 卸除時不要將信息存入/etc/mtab文件中。

-r ? 若無法成功卸除,則嘗試以只讀的方式重新掛入文件系統。

-t<文件系統類型> ? 僅卸除選項中所指定的文件系統。

-v ? 執行時顯示詳細的信息。

-V ? 顯示版本信息。

[文件系統] ? 除了直接指定文件系統外,也可以用設備名稱或掛入點來表示文件系統。

詳細查閱:http://www.jb51.net/linux/umount.htm


fsck

命令格式:fsck.minix [-aflmrsv][外圍設備代號]

命令格式:fsck.ext2 [-acdfFnprsStvVy][-b <分區第一個磁區地址>][-B <區塊大小>][-C <反敘述器>][-I][-l/L <損壞區塊文件>][-P <處理inode大小>][外圍設備代號]

詳細查閱:http://www.jb51.net/linux/fsck.htm

http://www.jb51.net/linux/fsck.ext2.htm


dd

用指定大小的塊拷貝一個文件,并在拷貝的同時進行指定的轉換。

命令格式:dd(選項) ? ? 來自: http://man.linuxde.net/dd

參數:

bs=<字節數>:將ibs(輸入)與歐巴桑(輸出)設成指定的字節數;

cbs=<字節數>:轉換時,每次只轉換指定的字節數;

conv=<關鍵字>:指定文件轉換的方式;

count=<區塊數>:僅讀取指定的區塊數;

ibs=<字節數>:每次讀取的字節數;

obs=<字節數>:每次輸出的字節數;

of=<文件>:輸出到文件;

seek=<區塊數>:一開始輸出時,跳過指定的區塊數;

skip=<區塊數>:一開始讀取時,跳過指定的區塊數;

--help:幫助;

--version:顯示版本信息。

示例:

[root@localhost text]# dd if=/dev/zero ?of=sun.txt bs=1M count=1 1+0 records in 1+0 records out 1048576 bytes (1.0 ?MB) copied, 0.006107 seconds, 172 MB/s [root@localhost text]# du -sh sun.txt ?1.1M sun.txt

該命令創建了一個1M大小的文件sun.txt,其中參數解釋: if ?代表輸入文件。如果不指定if,默認就會從stdin中讀取輸入。 of 代表輸出文件。如果不指定of,默認就會將stdout作為默認輸出。 bs ?代表字節為單位的塊大小。 count 代表被復制的塊數。 /dev/zero 是一個字符設備,會不斷返回0值字節(\0)。

詳細查閱:http://www.jb51.net/LINUXjishu/391419.html ? ?

http://man.linuxde.net/dd


dumpe2fs

顯示ext2/ext3/ext4文件系統信息。

命令格式:dumpe2fs [ -bfhixV ] [ -o superblock=superblock ] [ -o blocksize=blocksize ] device

詳細查閱:http://www.cnblogs.com/Andy-Lv/p/5299095.html


dump

命令格式:dump(選項)(參數)

備份ext2或者ext3文件系統。可將目錄或整個文件系統備份至指定的設備,或備份成一個大文件。http://man.linuxde.net/dump

來自: http://man.linuxde.net/dump

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容