Linux性能相关工具
-
進程管理相關命令:
-
pstree : 樹狀顯示進程
- 選項:
-p : 顯示PID,可以指定查看某個用戶
- 選項:
-
ps : 查看進程狀態
-
三種選項風格:
UNIX : 帶 -
BSD : 不帶 -
GUN : -- -
選項:
a : 所有與終端有關的進程
x : 所有與終端無關的進程
u : 顯示進程所有者信息
f : 顯示進程樹,相當于--forest
k | --sort : 對某列屬性排序(默認升序,屬性前加-表示降序)
o : 定制要顯示屬性信息:PID,CMD,%cpu,%mem
L : 顯示支持的屬性列表
-C : 指定要顯示的命令,多個命令用,分隔
-L : 顯示線程
-e : 顯示所有進程,相當于-A
-f : 顯示完整格式程序信息
-F : 顯示更完整格式的進程信息
-H : 以進程層級格式顯示進程相關信息
-u userlist : 指定有效的用戶ID或名稱
-U userlist : 指定真正的用戶ID或名稱
-g gid或groupname : 指定有效的gid或組名稱
-G gid或groupname : 指定真正的gid或組名稱
-p pid : 顯示指pid的進程
--ppid pid : 顯示屬于pid的子進程 -
ps輸出的屬性:
- STAT : 進程狀態
R :running
S : interruptable sleeping 可中斷休眠
D : uninterruptable sleeping 不可中斷的休眠
T : stopped 停止
Z : zombie 僵死
+ : 前臺進程
l : 多線程進程
L :內存分頁并帶鎖
N :低優先級進程
< : 高優先級進程
s : session leader,會話(子進程)發起者 - VSZ: Virtual memory SiZe,虛擬內存集,線性內存
- RSS: ReSident Size, 常駐內存集
- ni:nice 值
- pri:priority 優先級
- psr:processor CPU編號
- rtprio: 實時優先級
- STAT : 進程狀態
-
查找占用最多內存和CPU的進程:
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head #查看內存
ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%cpu | head #查看CPU - 使用watch實用程序執行重復的輸出以實現對就程進行實時的監視:
watch -n 1 'ps -eo pid,ppid,cmd,%mem,%cpu --sort=-%mem | head'
-
-
pgrep : 搜索進程
- 使用ps [option] | grep等方式實現也可
- pgrep使用擴展正則表達式搜索
pgrep [option] pattern
-u uid : 生效者
-U uid : 真實發起者
-l : 顯示進程名
-a : 顯示完整格式的進程名
-t terminal : 與指定終端相關的進程
-P pid : 顯示指定進程的子進程
-
top : 實時監測
- 選項:
-d : 指定刷新時間,默認3秒
-b : 顯示全部進程(不分頁)
-n : 指定刷新次數,達到次數后退出 -
top顯示的信息:
第一行: top - :當前系統時間 up : 系統運行時間 user : 在線用戶數 load average : 系統平均負載
第二行: total : 總進程數 running : 運行中進程 sleeping : 休眠進程數 stopped : 停止進程數 zombie : 僵死進程數
第三行: us : 用戶空間占用CPU百分比 sy : 系統空間占用CPU百分比 ni : 用戶進程空間內改變過優先級的進程占用CPU百分比 id : 空閑CPU百分比 wa : 等待IO的CPU百分比 hi : 硬中斷 si : 軟中斷 st : 虛擬機偷走的百分比
第四行: Men :內存信息行
第五行: Swap :交換空間信息行
第六行: PID : 進程號 USER : 用戶 PR : 優先級 NI : NICE值 VIRT : 虛擬內存集 RES : 常駐內存 SHR : 共享內存 S : 進程狀態 %CPU : 占用CPU百分比 %MEN : 占用內存百分比 TIME+ : 運行時間 COMMAND : 命令行 - top內按鍵命令:
M : 按內存占用百分比大小排序
P :按cpu占用百分比大小排序,默認
T :按累計占有時長進行排序
l : 是否顯示負載信息
t :是否顯示cpu和進程的統計信息
m :是否顯示內存和交互分區的信息
q :退出
k :kill,殺掉進程
s :改變top刷新頻率**
- 選項:
-
kill : 向進程發送控制信號,以實現對進程管理,每個信號對應一個數字,信號名稱以SIG開頭(可省略),不區分大小寫
- 顯示當前系統可用信號: kill -l ; trap -l
- 常用信號: man 7 signal
1 | SIGHUP: 無須關閉進程而讓其重讀配置文件
2 | SIGINT: 中止正在運行的進程;相當于Ctrl+c
3 | SIGQUIT:相當于ctrl+\
9 | SIGKILL: 強制殺死正在運行的進程
15 | SIGTERM:終止正在運行的進程(默認)
18 | SIGCONT:繼續運行
19 | SIGSTOP:后臺休眠 -
指定信號的方法:
(1)信號的數字標識:1, 2, 9
(2)信號完整名稱:SIGHUP
(3)信號的簡寫名稱:HUP - kill進程用法:
- 按PID:
kill [-SIGNAL] pid …
kill –n SIGNAL pid
kill –s SIGNAL pid - 按名稱:
killall [-SIGNAL] comm… - 按模式:
pkill [options] pattern
-SIGNAL
-u uid: effective user,生效者
-U uid: real user,真正發起運行命令者
-t terminal: 與指定終端相關的進程
-l: 顯示進程名(pgrep可用)
-a: 顯示完整格式的進程名(pgrep可用)
-P pid: 顯示指定進程的子進程
- 按PID:
-
I/O監控工具:
-
vmstat : 服務器I/O狀態
vmstat [options] [delay [count]] vmstat 1 10 #1秒刷新一次,刷新10次后退出- 選項:
-s : 顯示內存的統計數據 - 顯示的信息:
procs:
r: 可運行(運行中或等待運行)進程的個數
b: 處于不可中斷睡眠態的進程個數(被阻塞的隊列的長度)
memory:
swpd: 交換內存的使用總量
free:空閑物理內存總量
buffer:用于buffer的內存總量
cache:用于cache的內存總量
swap:
si:從磁盤交換進內存的數據速率(kb/s)
so:從內存交換至磁盤的數據速率(kb/s)
io:
bi:從塊設備讀入數據到內存中的速率(kb/s)
bo: 保存數據至塊設備的速率
system:
in: interrupts 中斷速率,包括時鐘
cs: context switch 進程切換速率
cpu:
us : 用戶CPU時間,
sy : 系統CPU時間,太高表示系統調用時間長,例如IO操作頻繁
id : 空閑的CPU時間
wt : 等待IO的時間
st : 虛擬機占用的CPU時間 - 選項:
-
iotop : 類似top的監視IO使用狀況的工具
-
選項:
-o : 只顯示正在產生IO的進程或線程,可以在iotop運行中按o生效
-a : 顯示累計IO量
-k : 使用kB為單位
-P : 僅顯示進程,默認顯示進程和線程
-n NUM : 設置監測次數,默認無限次
-d SEC : 設置監測間隔,默認為1秒
-p PID : 指定監測的進程/線程
-u USER : 指定監測某個用戶
-b : 非交互模式,用于記錄日志
-t : 加上時間戳,非交互模式
-q : 禁止顯示開頭幾行,非交互模式
-q : 只在第一次監測時顯示列名
-qq : 永遠不顯示列名
-qqq : 永遠不現實IO匯總 - iotop輸出的信息:
第一行 : Read和Weite的速率總計
第二行 : 實際的速率
第三行:
TID : 線程ID(按p切換為進程ID)
PRIO : 優先級
USER : 用戶
DISK READ : 磁盤讀速率
DISK WRITE : 磁盤寫速率
SWAPIN : swap交換百分比
IO> : IO等待的百分
COMMAND : 線程/進程命令 -
-
iostat : 統計CPU和設備IOS信息
iostat 1 10 #1秒刷新一次,刷新10次后退出 -
pmap : 進程對應的內存映射
- 用法:pmap [options] pid [...]
- 選項:
-x: 顯示詳細格式的信息
例:pmap 1 #查看進程PID為1的進程內存映射
-
dastat : 系統資源統計,代替vmstat,iostat
- 用法:dstat [-afv] [options..] [delay [count]]
-
選項:
-c:顯示CPU系統占用,用戶占用,空閑,等待,中斷,軟件中斷等信息
-C:當有多個CPU時候,此參數可按需分別顯示cpu狀態,例:-C 0,1 顯示cpu0和cpu1的信息
-d:顯示磁盤讀寫數據大小
-n:顯示網絡狀態
-N eth1:指定要顯示的網卡,有多塊網卡時以,分隔
-l:顯示系統負載情況
-m:顯示內存使用情況
-g:顯示頁面使用情況
-p:顯示進程狀態
-s:顯示交換分區使用情況。
-r:I/O請求情況
-y:系統狀態
--ipc:顯示ipc消息隊列,信號等信息
--socket:用來顯示tcp udp端口狀態
-a:此為默認選項,等同于-cdngy
-v:等同于 -pmgdsc -D total
--output file : 把狀態信息以csv的格式重定向到指定的文件中,例:dstat --output
--top-cpu:顯示最占用CPU的進程
--top-io: 顯示最占用io的進程
--top-mem: 顯示最占用內存的進程
--top-latency: 顯示延遲最大的進程
-
EPEL源上的監控工具:
-
htop : 升級版的top
-
glances : 監控系統資源利用情況
- glances 會用一下幾種顏色來代表狀態:
綠色:OK(一切正常)
藍色:CAREFUL(需要注意)
紫色:WARNING(警告)
紅色:CRITICAL(嚴重) -
選項:
-b: 以Byte為單位顯示網卡數據速率
-d: 關閉磁盤I/O模塊
-m: 禁用mount模塊
-n: 禁用網絡模塊
-1:每個CPU的相關數據單獨顯示
-t #: 延遲時間間隔
-o {HTML|CSV}:輸出格式
-f /path/to/somefile: 設定輸入文件位置 -
glances內按鍵命令:
a : 對進程自動排序
c : 按 CPU 百分比對進程排序
m : 按內存百分比對進程排序
p : 按進程名字母順序對進程排序
i : 按讀寫頻率(I/O)對進程排序
d : 顯示/隱藏磁盤 I/O 統計信息
f : 顯示/隱藏文件系統統計信息
n : 顯示/隱藏網絡接口統計信息
s : 顯示/隱藏傳感器統計信息
y : 顯示/隱藏硬盤溫度統計信息
l : 顯示/隱藏日志(log)
b : 切換網絡 I/O 單位(Bytes/bits)
w : 刪除警告日志
x : 刪除警告和嚴重日志
1 : 切換全局 CPU 使用情況和每個 CPU 的使用情況
h : 顯示/隱藏這個幫助畫面
t : 以組合形式瀏覽網絡 I/O
u : 以累計形式瀏覽網絡 I/O
q : 退出(‘ESC‘ 和 ‘Ctrl&C‘ 也可以) - glances監測遠程系統:
- 服務器模式:
glances -s -B IPADDR
IPADDR : 指明監聽本機哪個地址(默認為所有地址) - 客戶端模式:
glances -c IPADDR
IPADDR : 要監測的遠程服務端地址
- glances 會用一下幾種顏色來代表狀態:
轉載于:https://blog.51cto.com/bigboss/2051339
總結
以上是生活随笔為你收集整理的Linux性能相关工具的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 微信、陌陌等著名IM软件设计架构详解【转
- 下一篇: mac connect to host