網(wǎng)站首頁(yè) 編程語(yǔ)言 正文
目錄
一、Mpstat命令
Mpstat語(yǔ)法:
直接使用mpstat命令:
指定參數(shù)查看:
單獨(dú)查看 一個(gè)cpu
stress壓力測(cè)試
工具安裝:
常用參數(shù):
壓力測(cè)試:
二、iostat命令
iostat命令語(yǔ)法
?編輯
cpu屬性說(shuō)明:
磁盤屬性說(shuō)明:
-x 詳細(xì)顯示說(shuō)明:
只顯示磁盤設(shè)備 -d
三、iotop
命令使用方法:
?四、pidstat
Pidstat使用方法:
示例一、查看所有進(jìn)程的 CPU 使用情況( -u -p ALL)
示例二: 內(nèi)存使用情況統(tǒng)計(jì)(-r)
示例三:顯示各個(gè)進(jìn)程的IO使用情況(-d)
示例四:顯示每個(gè)進(jìn)程的上下文切換情況(-w)
示例五:顯示選擇任務(wù)的線程的統(tǒng)計(jì)信息外的額外信息 (-t)
五、lsof
語(yǔ)法:
lsof輸出各列信息的意義如下
FD文件描述符列表
文件類型:
一、Mpstat命令
實(shí)時(shí)系統(tǒng)監(jiān)控工具,此命令會(huì)展現(xiàn)cpu、的一些統(tǒng)計(jì)信息,這些信息存放在/proc/stat文件中,在多cpu系統(tǒng)里,其不但能查看所有cpu的平均狀況信息,而且能夠查看特定cpu信息。
Mpstat語(yǔ)法:
mpstat [-P {|ALL}] [internal [count]]
-P :指定要監(jiān)控那個(gè)CPU,范圍是[0~n-1],ALL表示監(jiān)控所有CPU
internal:相鄰兩次采樣的間隔時(shí)間
count:采樣次數(shù)
直接使用mpstat命令:
各列的含義:
- Cpu:處理器id
- Usr:在internet時(shí)間段里,cpu一共花了多少比例的時(shí)間運(yùn)行在用戶態(tài)空間或者說(shuō)是用戶進(jìn)程。
- Nice:用戶空間進(jìn)程的cpu‘的調(diào)度優(yōu)先級(jí)
- Sys:核心時(shí)間,CPU花了多少比例的時(shí)間在內(nèi)核空間運(yùn)行。分配內(nèi)存、IO操作、創(chuàng)建子進(jìn)程……都是內(nèi)核操作。這也表明,當(dāng)IO操作頻繁時(shí),System參數(shù)會(huì)很高。
- Iowait:硬盤io等待時(shí)間,在計(jì)算機(jī)中,讀寫磁盤的操作遠(yuǎn)比cpu運(yùn)行的速度要慢,cpu負(fù)載處理數(shù)據(jù),而數(shù)據(jù)一般在磁盤上需要讀到內(nèi)存中才能處理
- Irq:硬中斷時(shí)間,硬中斷是由外部事件引起的具有隨機(jī)性和突發(fā)性
- Soft:軟中斷時(shí)間,軟中斷是執(zhí)行中斷指令產(chǎn)生的
- Steal:顯示虛擬機(jī)管理器在服務(wù)另一個(gè)虛擬處理器時(shí)虛擬cpu處在非資源等待下花費(fèi)時(shí)間的百分比即虛擬機(jī)強(qiáng)制cpu等待的時(shí)間的百分比
- Gnice:CPU運(yùn)行niced guest虛擬機(jī)所花費(fèi)的時(shí)間百分比
- Guest:顯示運(yùn)行虛擬處理器時(shí)花費(fèi)時(shí)間的百分比
- Idle:cpu出去等待磁盤io操作外的因?yàn)槿魏卧蚨臻e的時(shí)間閑置時(shí)間即cpu空閑時(shí)間百分比
指定參數(shù)查看:
mpstat -P ALL 3 3 :查看所有cpu,每三秒查看一次,查看3次。
單獨(dú)查看 一個(gè)cpu
mpstat -P 0 1 2
單獨(dú)指向一個(gè)cpu,需要注意的cpu序號(hào)是從0開(kāi)始的
stress壓力測(cè)試
stress 是Unix類系統(tǒng)下的工作量和壓力測(cè)試工具。它可對(duì)用戶指定的CPU數(shù)量的I/O,內(nèi)存和硬盤進(jìn)行負(fù)載并報(bào)告它檢測(cè)到任何錯(cuò)誤。
工具安裝:
如果采用YUM安裝方式,則需要首先安裝epel的擴(kuò)展源,然后安裝stress即可,相關(guān)命令如下:
yum install -y epel-release
yum install -y stress
常用參數(shù):
-c | cpu | 產(chǎn)生n個(gè)進(jìn)程,每個(gè)進(jìn)程都反復(fù)不停的計(jì)算隨機(jī)數(shù)的平方根 |
-i | io | 產(chǎn)生n個(gè)進(jìn)程,每個(gè)進(jìn)程反復(fù)調(diào)用 將內(nèi)存上的內(nèi)容寫到硬盤上 |
-m | vm | 產(chǎn)生n個(gè)進(jìn)程,每個(gè)進(jìn)程不斷分配和釋放內(nèi)存 |
-t | timout | 在n秒后結(jié)束進(jìn)程 |
-d | hdd | 產(chǎn)生n個(gè)不斷執(zhí)行 write 和unlink函數(shù)的進(jìn)程(創(chuàng)建文件、寫入內(nèi)容、刪除文件 |
壓力測(cè)試:
?
二、iostat命令
iostat主要用于輸出磁盤io和cpu的統(tǒng)計(jì)信息
iostat命令語(yǔ)法
iostat 【選項(xiàng)】【時(shí)間間隔】【次數(shù)】
-c: 顯示CPU使用情況
-d: 顯示磁盤使用情況
-N: 顯示磁盤陣列(LVM) 信息
-n: 顯示NFS 使用情況
-k: 以 KB 為單位顯示
-m: 以 M 為單位顯示
-t: 報(bào)告每秒向終端讀取和寫入的字符數(shù)和CPU的信息
-V: 顯示版本信息
-x: 顯示詳細(xì)信息
-p:[磁盤] 顯示磁盤和分區(qū)的情況
cpu屬性說(shuō)明:
- user:CPU處在用戶模式下的時(shí)間百分比。
- nice:CPU處在帶NICE值的用戶模式下的時(shí)間百分比。
- system:CPU處在系統(tǒng)模式下的時(shí)間百分比。
- iowait:CPU等待輸入輸出完成時(shí)間的百分比。
- steal:管理程序維護(hù)另一個(gè)虛擬處理器時(shí),虛擬CPU的無(wú)意識(shí)等待時(shí)間百分比。
- idle:CPU空閑時(shí)間百分比。
磁盤屬性說(shuō)明:
- device:磁盤名稱
- tps:每秒鐘發(fā)送到的I/O請(qǐng)求數(shù).
- Blk_read/s:每秒讀取的block數(shù).
- Blk_wrtn/s:每秒寫入的block數(shù).
- Blk_read:讀入的block總數(shù).
- Blk_wrtn:寫入的block總數(shù).
-x 詳細(xì)顯示說(shuō)明:
rrqm/s:? ? ? ? ? ?每秒進(jìn)行 merge 的讀操作數(shù)目。即 rmerge/s
wrqm/s: ????????每秒進(jìn)行 merge 的寫操作數(shù)目。即 wmerge/s
r/s: ????????????????每秒完成的讀 I/O 設(shè)備次數(shù)。即 rio/s
w/s:? ? ? ? ? ? ? ? 每秒完成的寫 I/O 設(shè)備次數(shù)。即 wio/s
rkB/s:? ? ? ? ? ? ?每秒讀K字節(jié)數(shù)。是 rsect/s 的一半,因?yàn)槊可葏^(qū)大小為512字節(jié)。
wkB/s:? ? ? ? ? ? 每秒寫K字節(jié)數(shù)。是 wsect/s 的一半。
avgrq-sz:? ? ? ? 平均每次設(shè)備I/O操作的數(shù)據(jù)大小 (扇區(qū))。
avgqu-sz:? ? ? ?平均I/O隊(duì)列長(zhǎng)度。
r_await:? ? ? ? ? 每個(gè)讀操作平均所需的時(shí)間不僅包括硬盤設(shè)備讀操作的時(shí)間,還包括了在kernel隊(duì)列中等待的時(shí)間。
w_await:? ? ? ? ?每個(gè)寫操作平均所需的時(shí)間不僅包括硬盤設(shè)備寫操作的時(shí)間,還包括了在kernel隊(duì)列中等待的時(shí)間。
await:? ? ? ? ? ? ? 平均每次設(shè)備I/O操作的等待時(shí)間 (毫秒)。
svctm:? ? ? ? ? ? ?平均每次設(shè)備I/O操作的服務(wù)時(shí)間 (毫秒)。
%util:? ? ? ? ? ? ? 一秒中有百分之多少的時(shí)間用于 I/O 操作,即被io消耗的cpu百分比
只顯示磁盤設(shè)備 -d
三、iotop
iotop命令是一個(gè)用來(lái)監(jiān)視磁盤io使用狀況的top類工具。iotop具有與top相似的UI,其中包括PID、用戶、O、進(jìn)程等相關(guān)信息。Linux下的IO統(tǒng)計(jì)工具如iostat,nmon等大多數(shù)是只能統(tǒng)計(jì)到per設(shè)備的讀寫情況,如果你想知道每個(gè)進(jìn)程是如何使用IO的就比較麻煩,使用iotop命令可以很方便的查看。
如果命令未安裝可以從yum倉(cāng)庫(kù)進(jìn)行安裝
命令使用方法:
Iotop(選項(xiàng))
- -o:????????只顯示有io操作的進(jìn)程
- b:????????批量顯示,無(wú)交互,主要用作記錄到文件。
- -n ????????NUM:顯示NUM次,主要用于非交互式模式。
- -d ????????SEC:間隔SEC秒顯示一次。
- -p ????????PID:監(jiān)控的進(jìn)程pid。
- -u ????????USER:監(jiān)控的進(jìn)程用戶。
iotop常用快捷鍵:
- 1.左右箭頭:????????改變排序方式,默認(rèn)是按lO排序。
- 2.r:????????改變排序順序。
- 3.o:????????只顯示有IO輸出的進(jìn)程。
- 4.p:????????進(jìn)程/線程的顯示方式的切換。
- 5.a:????????顯示累積使用量。
- 6.q:????????退出。
命令效果:
?
?四、pidstat
pidstat是sysstat工具的一個(gè)命令,用于監(jiān)控全部或指定進(jìn)程的cpu、內(nèi)存一、線程、設(shè)備IO等系統(tǒng)資源的占用情況。pidstat首次運(yùn)行時(shí)顯示自系統(tǒng)啟動(dòng)開(kāi)始的各項(xiàng)統(tǒng)計(jì)信息,之后運(yùn)行pidstat將顯示自上次運(yùn)行該命令以后的統(tǒng)計(jì)信息。用戶可以通過(guò)指定統(tǒng)計(jì)的次數(shù)和時(shí)間來(lái)獲得所需的統(tǒng)計(jì)信息。
Pidstat使用方法:
Pidstat 【選項(xiàng)】 【時(shí)間間隔】【次數(shù)】
常用參數(shù):
- -u:默認(rèn)的參數(shù),顯示各個(gè)進(jìn)程的cpu使用統(tǒng)計(jì)
- -r:顯示各個(gè)進(jìn)程的內(nèi)存使用統(tǒng)計(jì)
- -d:顯示各個(gè)進(jìn)程的IO使用情況
- -p:指定進(jìn)程號(hào)
- -w:顯示每個(gè)進(jìn)程的上下文切換情況
- -t:顯示選擇任務(wù)的線程的統(tǒng)計(jì)信息外的額外信息
- -T { TASK | CHILD | ALL }
這個(gè)選項(xiàng)指定了pidstat監(jiān)控的。TASK表示報(bào)告獨(dú)立的task,CHILD關(guān)鍵字表示報(bào)告進(jìn)程下所有線程統(tǒng)計(jì)信息。ALL表示報(bào)告獨(dú)立的task和task下面的所有線程。
注意:task和子線程的全局的統(tǒng)計(jì)信息和pidstat選項(xiàng)無(wú)關(guān)。這些統(tǒng)計(jì)信息不會(huì)對(duì)應(yīng)到當(dāng)前的統(tǒng)計(jì)間隔,這些統(tǒng)計(jì)信息只有在子線程kill或者完成的時(shí)候才會(huì)被收集。 - -V:版本號(hào)
- -h:在一行上顯示了所有活動(dòng),這樣其他程序可以容易解析。
- -I:在SMP環(huán)境,表示任務(wù)的CPU使用率/內(nèi)核數(shù)量
- -l:顯示命令名和所有參數(shù)
示例一、查看所有進(jìn)程的 CPU 使用情況( -u -p ALL)
詳細(xì)說(shuō)明?
- PID:進(jìn)程ID
- %usr:進(jìn)程在用戶空間占用cpu的百分比
- %system:進(jìn)程在內(nèi)核空間占用cpu的百分比
- %guest:進(jìn)程在虛擬機(jī)占用cpu的百分比
- %CPU:進(jìn)程占用cpu的百分比
- CPU:處理進(jìn)程的cpu編號(hào)
- Command:當(dāng)前進(jìn)程對(duì)應(yīng)的命令
示例二: 內(nèi)存使用情況統(tǒng)計(jì)(-r)
使用-r選項(xiàng),pidstat將顯示各活動(dòng)進(jìn)程的內(nèi)存使用統(tǒng)計(jì):
- PID:進(jìn)程標(biāo)識(shí)符
- Minflt/s:任務(wù)每秒發(fā)生的次要錯(cuò)誤,不需要從磁盤中加載頁(yè)
- Majflt/s:任務(wù)每秒發(fā)生的主要錯(cuò)誤,需要從磁盤中加載頁(yè)
- VSZ:虛擬地址大小,虛擬內(nèi)存的使用KB
- RSS:常駐集合大小,非交換區(qū)五里內(nèi)存使用KB
- Command:task命令名
示例三:顯示各個(gè)進(jìn)程的IO使用情況(-d)
報(bào)告IO統(tǒng)計(jì)顯示以下信息:
- PID:進(jìn)程id
- kB_rd/s:每秒從磁盤讀取的KB
- kB_wr/s:每秒寫入磁盤KB
- kB_ccwr/s:任務(wù)取消的寫入磁盤的KB。當(dāng)任務(wù)截?cái)嗯K的pagecache的時(shí)候會(huì)發(fā)生。
- COMMAND:task的命令名
示例四:顯示每個(gè)進(jìn)程的上下文切換情況(-w)
- PID:進(jìn)程id
- Cswch/s:每秒主動(dòng)任務(wù)上下文切換數(shù)量
- Nvcswch/s:每秒被動(dòng)任務(wù)上下文切換數(shù)量
- Command:命令名
示例五:顯示選擇任務(wù)的線程的統(tǒng)計(jì)信息外的額外信息 (-t)
- TGID:主線程的表示
- TID:線程id
- %usr:進(jìn)程在用戶空間占用cpu的百分比
- %system:進(jìn)程在內(nèi)核空間占用cpu的百分比
- %guest:進(jìn)程在虛擬機(jī)占用cpu的百分比
- %CPU:進(jìn)程占用cpu的百分比
- CPU:處理進(jìn)程的cpu編號(hào)
- Command:當(dāng)前進(jìn)程對(duì)應(yīng)的命令
五、lsof
lsof命令用于查看你進(jìn)程開(kāi)打的文件,打開(kāi)文件的進(jìn)程,進(jìn)程打開(kāi)的端口(TCP、UDP)。找回/恢復(fù)刪除的文件。是十分方便的系統(tǒng)監(jiān)視工具,因?yàn)閘sof命令需要訪問(wèn)核心內(nèi)存和各種文件,所以需要root用戶執(zhí)行。
在linux環(huán)境下,任何事物都以文件的形式存在,通過(guò)文件不僅僅可以訪問(wèn)常規(guī)數(shù)據(jù),還可以訪問(wèn)網(wǎng)絡(luò)連接和硬件。所以如傳輸控制協(xié)議 (TCP) 和用戶數(shù)據(jù)報(bào)協(xié)議 (UDP) 套接字等,系統(tǒng)在后臺(tái)都為該應(yīng)用程序分配了一個(gè)文件描述符,無(wú)論這個(gè)文件的本質(zhì)如何,該文件描述符為應(yīng)用程序與基礎(chǔ)操作系統(tǒng)之間的交互提供了通用接口。因?yàn)閼?yīng)用程序打開(kāi)文件的描述符列表提供了大量關(guān)于這個(gè)應(yīng)用程序本身的信息,因此通過(guò)lsof工具能夠查看這個(gè)列表對(duì)系統(tǒng)監(jiān)測(cè)以及排錯(cuò)將是很有幫助的。
語(yǔ)法:
lsof(選項(xiàng))
選項(xiàng) | 描述 |
---|---|
-a | 列出打開(kāi)文件存在的進(jìn)程; |
-c<進(jìn)程名> | 列出指定進(jìn)程所打開(kāi)的文件; |
-g | 列出GID號(hào)進(jìn)程詳情; |
-d<文件號(hào)> | 列出占用該文件號(hào)的進(jìn)程; |
+d<目錄> | 列出目錄下被打開(kāi)的文件; |
+D<目錄> | 遞歸列出目錄下被打開(kāi)的文件; |
-n<目錄> | 列出使用NFS的文件; |
-i<條件> | 列出符合條件的進(jìn)程。(4、6、協(xié)議、:端口、 @ip ) |
-p<進(jìn)程號(hào)> | 列出指定進(jìn)程號(hào)所打開(kāi)的文件; |
-u | 列出UID號(hào)進(jìn)程詳情; |
-h | 顯示幫助信息 |
-v | 顯示版本信息 |
[root@localhost~]# lsof
command PID USER FD type DEVICE SIZE NODE NAME
lsof輸出各列信息的意義如下
- COMMAND:進(jìn)程的名稱
- PID:進(jìn)程標(biāo)識(shí)符
- PPID:父進(jìn)程標(biāo)識(shí)符(需要指定-R參數(shù))
- USER:進(jìn)程所有者
- PGID:進(jìn)程所屬組
- FD:文件描述符,應(yīng)用程序通過(guò)文件描述符識(shí)別該文件。
- DEVICE:指定磁盤的名稱
- SIZE:文件的大小
- NODE:索引節(jié)點(diǎn)(文件在磁盤上的標(biāo)識(shí))
- NAME:打開(kāi)文件的確切名稱
FD文件描述符列表
- cwd:表示current work dirctory,即:應(yīng)用程序的當(dāng)前工作目錄,這是該應(yīng)用程序啟動(dòng)的目錄,除非它本身對(duì)這個(gè)目錄進(jìn)行更改
- txt:該類型的文件是程序代碼,如應(yīng)用程序二進(jìn)制文件本身或共享庫(kù),如上列表中顯示的 /sbin/init 程序
- lnn:library references (AIX)(庫(kù)引用);
- er:FD information error (see NAME column)(fd信息錯(cuò)誤);
- jld:jail directory (FreeBSD)(監(jiān)控目錄);
- ltx:shared library text (code and data)(共享庫(kù)文本);
- mxx :hex memory-mapped type number xx(十六進(jìn)制內(nèi)存映射類型號(hào)xx);
- m86:DOS Merge mapped file(DOS合并映射文件);
- mem:memory-mapped file(內(nèi)存映射文件);
- mmap:memory-mapped device(內(nèi)存映射設(shè)備);
- pd:parent directory(父目錄);
- rtd:root directory(跟目錄);
- tr:kernel trace file (OpenBSD)(內(nèi)核跟蹤文件);
- v86 VP/ix mapped file(VP/IX映射文件);
- 0:表示標(biāo)準(zhǔn)輸出
- 1:表示標(biāo)準(zhǔn)輸入
- 2:表示標(biāo)準(zhǔn)錯(cuò)誤
文件類型:
- DIR:表示目錄。
- CHR:表示字符類型。
- BLK:塊設(shè)備類型。
- UNIX: UNIX 域套接字。
- FIFO:先進(jìn)先出 (FIFO) 隊(duì)列。
- IPv4:網(wǎng)際協(xié)議 (IP) 套接字。
- DEVICE:指定磁盤的名稱
- SIZE:文件的大小
- NODE:索引節(jié)點(diǎn)(文件在磁盤上的標(biāo)識(shí))
- NAME:打開(kāi)文件的確切名稱
?
原文鏈接:https://blog.csdn.net/GaLiCHaoFan1/article/details/125836579
相關(guān)推薦
- 2022-08-03 C++和C的混合編譯的項(xiàng)目實(shí)踐_C 語(yǔ)言
- 2023-05-06 React組件渲染后對(duì)DOM的操作方式_React
- 2022-03-31 用C語(yǔ)言實(shí)現(xiàn)排雷游戲_C 語(yǔ)言
- 2022-10-26 go并發(fā)編程sync.Cond使用場(chǎng)景及實(shí)現(xiàn)原理_Golang
- 2022-11-06 MobLink?Android端業(yè)務(wù)場(chǎng)景簡(jiǎn)單說(shuō)明_Android
- 2022-03-14 flutter ‘package:flutter/src/widgets/container.dar
- 2022-09-29 Kotlin協(xié)程啟動(dòng)createCoroutine及創(chuàng)建startCoroutine原理_Andro
- 2022-06-28 C++實(shí)現(xiàn)String與UF8互轉(zhuǎn)_C 語(yǔ)言
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細(xì)win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運(yùn)行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲(chǔ)小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運(yùn)算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認(rèn)證信息的處理
- Spring Security之認(rèn)證過(guò)濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯(cuò)誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實(shí)現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡(jiǎn)單動(dòng)態(tài)字符串(SD
- arthas操作spring被代理目標(biāo)對(duì)象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊(duì)列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠(yuǎn)程分支