監控程序狀態
程式在執行後,我們需要了解程序的執行狀態。檢視程序的狀態分為: 靜態和動態兩種方式
1.使用ps命令檢視當前的程序狀態(靜態)
1)示例、ps -aux常用組合,檢視程序 使用者、pid、占用cpu百分比、占用記憶體百分比、狀態、執行的命令等
[root@rongbiz002 1798.rongbiz.net]# ps aux
user pid %cpu %mem vsz rss tty stat start time command
root 1 0.0 0.0 43812 3892 ? ss 2020 118:32 /usr/lib/systemd/systemd --system --deserialize 23
root 2 0.0 0.0 0 0 ? s 2020 0:12 [kthreadd]
root 4 0.0 0.0 0 0 ? s< 2020 0:00 [kworker/0:0h]
root 6 0.0 0.0 0 0 ? s 2020 3:19 [ksoftirqd/0]
root 7 0.0 0.0 0 0 ? s 2020 2:24 [migration/0]
狀態 描述
user 啟動程序的使用者
pid 程序執行的id號
%cpu 程序占用cpu百分比
%mem 程序占用記憶體百分比
vsz 程序占用虛擬記憶體大小 (單位kb)
rss 程序占用物理記憶體實際大小 (單位kb)
tty 程序是由哪個終端執行啟動的tty1、pts/0等 ?表示核心程式與終端無關
stat 程序執行過程中的狀態 man ps (/state)
start 程序的啟動時間
time 程序占用 cpu 的總時間(為0表示還沒超過秒)
command 程式的執行指令,[ 方括號 ] 屬於核心態的程序。 沒有 [ ] 的是使用者態程序。
2.stat狀態的s、ss、s+、r、r、s+等等,都是什麼意思?
stat基本狀態
描述stat狀態+符號描述r
程序執行
s程序是控制程序, ss程序的領導者,父程序
s可中斷睡眠
<
程序執行在高優先順序上,s《優先順序較高的程序
t程序被暫停
n程序執行在低優先順序上,sn優先順序較低的程序
d不可中斷睡眠
+當前程序執行在前台,r+該表示程序在前台執行
z殭屍程序
l程序是多執行緒的,sl表示程序是以執行緒方式執行
案例一、ps命令檢視程序狀態切換
#1.在終端1上執行vim
[root@xuliangwei ~]# vim oldboy
#2.在終端2上執行ps命令檢視狀態
[root@xuliangwei ~]# ps aux|grep oldboy #s表示睡眠模式,+表示前台執行
root 58118 0.4 0.2 151788 5320 pts/1 s+ 22:11 0:00 oldboy
root 58120 0.0 0.0 112720 996 pts/0 r+ 22:12 0:00 grep --color=auto oldboy
#在終端1上掛起vim命令,按下:ctrl+z
[root@xuliangwei ~]# ps aux|grep oldboy #t表示停止狀態
root 58118 0.1 0.2 151788 5320 pts/1 t 22:11 0:00 vim oldboy
root 58125 0.0 0.0 112720 996 pts/0 r+ 22:12 0:00 grep --color=auto oldboy
案例二、ps命令檢視不可中斷狀態程序
#1.使用tar打包檔案時,可以通過終端不斷檢視狀態,由s+,r+變為d+
[root@xuliangwei ~]# tar -czf etc.tar.gz /etc/ /usr/ /var/
[root@xuliangwei ~]# ps aux|grep tar|grep -v grep
root 58467 5.5 0.2 127924 5456 pts/1 r+ 22:22 0:04 tar -czf etc.tar.gz /etc/
[root@xuliangwei ~]# ps aux|grep tar|grep -v grep
root 58467 5.5 0.2 127088 4708 pts/1 s+ 22:22 0:03 tar -czf etc.tar.gz /etc/
[root@xuliangwei ~]# ps aux|grep tar|grep -v grep
root 58467 5.6 0.2 127232 4708 pts/1 d+ 22:22 0:03 tar -czf etc.tar.gz /etc/
2.使用top命令檢視當前的程序狀態(動態)
任務 含義
tasks: 129 total 當然程序的總數
1 running 正在執行的程序數
128 sleeping 睡眠的程序數
0 stopped 停止的程序數
0 zombie 殭屍程序數
%cpu(s): 0.7 us 系統使用者程序使用cpu百分比
0.7 sy 核心中的程序占用cpu百分比,通常核心是於硬體進行互動
98.7 id 空閒cpu的百分比
0.0 wa cpu等待io完成的時間
0.0 hi 硬中斷,佔的cpu百分比
0.0 si 軟中斷,佔的cpu百分比
0.0 st 比如虛擬機器占用物理cpu的時間
ps: 如何理解中斷這個東西
top 常見指令
字母 含義
h 檢視幫出
1 數字1,顯示所有cpu核心的負載
z 以高亮顯示資料
b 高亮顯示處於r狀態的程序
m 按記憶體使用百分比排序輸出
p 按cpu使用百分比排序輸出
q 退出top
RedisLive監控Redis程序狀態
redislive就是一款免費開源的基於python tornado的的reids的監控工具,以web的形式展現出redis中的記憶體 key,例項資料等資訊 redislive是基於python的,一般的linux系統已經內建了python,版本最好高於2.7 redislive是web監控介面,...
linux 程序監控
1 ps命令 直接在linux系統中輸入 ps 結果如下 預設情況下,ps命令指揮顯示執行在當前控制台下的屬於當前使用者的程序。pid 程式的程序號 tty 程式執行的終端 time 程式執行的時間 引數 在linux系統中,程序的狀態有五種 1.執行 正在執行或在執行佇列中等待 2.中斷 休眠中,...
linux 程序監控
supervise是daemontools的乙個工具,可以用來監控管理unix下的應用程式運 況,在應用程式出現異常時,supervise可以重新啟動指定程式。使用 mkdir test cd test vim run 寫入希望執行的操作 supervise test 注意這裡是的引數是run檔案上...