linux 監控程序狀態

2022-06-26 20:09:13 字數 3344 閱讀 4944

監控程序狀態

程式在執行後,我們需要了解程序的執行狀態。檢視程序的狀態分為: 靜態和動態兩種方式

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檔案上...