Linux系統(tǒng)進程管理

ps組合命令 ps -aux?

在linux中可以使用ps命令查看進程配合grep命令可以快速的查找到服務的進程

常見的組合有ps -ef 、ps -aux

常見參數(shù)為:

a: 顯示跟當前終端關(guān)聯(lián)的所有進程

u: 基于用戶的格式顯示(U: 顯示某用戶ID所有的進程)

x: 顯示所有進程,不以終端機來區(qū)分

[root@desktop-dcct8ee ~]# ps -aux

USER? ? ? ? PID %CPU %MEM? ? VSZ? RSS TTY? ? ? STAT START? TIME COMMAND

root? ? ? ? ? 1? 0.0? 0.1 190984? 3920 ?? ? ? ? Ss? 9月11? 0:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 22

root? ? ? ? ? 2? 0.0? 0.0? ? ? 0? ? 0 ?? ? ? ? S? ? 9月11? 0:00 [kthreadd]

roo? ?521? 0.0? 0.0 190328? 1344 ?? ? ? ? Ss? 9月11? 0:00 /usr/sbin/lvmetad -f

root? ? ? ? 524? 0.0? 0.1? 45648? 3204 ?? ? ? ? Ss? 9月11? 0:00 /usr/lib/systemd/systemd-udevd

注:最后一列[xxxx] 使用方括號括起來的進程是內(nèi)核態(tài)的進程。 沒有括起來的是用戶態(tài)進程。

上面的參數(shù)輸出每列含意:

USER: 啟動這些進程的用戶

PID: 進程的ID

%CPU 進程占用的CPU百分比;?%MEM 占用內(nèi)存的百分比;?

VSZ:進程占用的虛擬內(nèi)存大?。▎挝唬篕B)?RSS:進程占用的物理內(nèi)存大?。▎挝唬篕B)?

STAT:該程序目前的狀態(tài),Linux進程有5種基本狀態(tài):

R :該程序目前正在運作,或者是可被運作;

S :該程序目前正在睡眠當中 (可說是 idle 狀態(tài)啦!),但可被某些訊號(signal) 喚醒。

T :該程序目前正在偵測或者是停止了;

Z?:該程序應該已經(jīng)終止,但是其父程序卻無法正常的終止他,造成 zombie (疆尸) 程序的狀態(tài)

D ?不可中斷狀態(tài).??

5個基本狀態(tài)后,還可以加一些字母,比如:Ss、R+,如下:

它們含意如下::

? ??<: 表示進程運行在高優(yōu)先級上

? ??N: 表示進程運行在低優(yōu)先級上

? ??L: 表示進程有頁面鎖定在內(nèi)存中

? ??s: 表示進程是控制進程

? ??l: 表示進程是多線程的

? ??+: 表示當前進程運行在前臺

START:該 process 被觸發(fā)啟動的時間;

TIME?:該 process 實際使用 CPU?運作的時間。

COMMAND:該程序的實際指令

ps組合命令 ps -ef

ps常用的參數(shù): ps -ef

??-e ?顯示所有進程

??-f ?顯示完整格式輸出

[root@desktop-dcct8ee ~]# ps -ef |more

UID? ? ? ? PID? PPID? C STIME TTY? ? ? ? ? TIME CMD

root? ? ? ? ? 1? ? ? 0? 0 9月11 ?? ? ? 00:00:02 /usr/lib/systemd/systemd --switched-root --system --deserialize 22

root? ? ? ? ? 2? ? ? 0? 0 9月11 ?? ? ? 00:00:00 [kthreadd]

root? ? ? ? ? 3? ? ? 2? 0 9月11 ?? ? ? 00:00:00 [ksoftirqd/0]

root? ? ? ? ? 5? ? ? 2? 0 9月11 ?? ? ? 00:00:00 [kworker/0:0H]

root? ? ? ? ? 7? ? ? 2? 0 9月11 ?? ? ? 00:00:00 [migration/0]

root? ? ? ? ? 8? ? ? 2? 0 9月11 ?? ? ? 00:00:00 [rcu_bh]

包含的信息如下

UID: 啟動這些進程的用戶

PID: 進程的ID

PPID: 父進程的進程號

C: 進程生命周期中的CPU利用率

STIME: 進程啟動時的系統(tǒng)時間

TTY: 表明進程在哪個終端設(shè)備上運行。如果顯示???表示與終端無關(guān),這種進程一般是內(nèi)核態(tài)進程。另外,tty1-tty6 是本機上面的登入者程序,若為 pts/0?等,則表示運行在虛擬終端上的進程。

TIME: 運行進程一共累計占用的CPU時間

CMD: 啟動的程序名稱

例1:測試CPU使用時間。

dd if=/dev/zero of=/a.txt count=10 bs=100M

[root@localhost ~]# ps -axu | grep dd

注:

ps aux 是用BSD的格式來顯示進程。

ps -ef 是用標準的格式顯示進程

uptime查看系統(tǒng)負載

[root@desktop-dcct8ee ~]# uptime

00:45:16 up? 4:55,? 2 users,? load average: 0.00, 0.01, 0.05

彈出消息含意如下:

00:45:16?當前時間

up? 4:55?系統(tǒng)運行時間 ,說明此服務器連續(xù)運行20天了

2?user當前登錄用戶數(shù)

load average: 0.00, 0.01, 0.05系統(tǒng)負載,即任務隊列的平均長度。?三個數(shù)值分別為??1分鐘、5分鐘、15分鐘前到現(xiàn)在的平均值。

如果服務器的CPU為1核心,則load average中的數(shù)字>=3 ?負載過高,如果服務器的CPU為4核心,則load average中的數(shù)字>=12 ?負載過高。

經(jīng)驗:單核心,1分鐘的系統(tǒng)平均負載不要超過3,就可以,這是個經(jīng)驗值。

top命令動態(tài)查看


進程和CPU的信息(?第二、三行)

Tasks: 481 total進程總數(shù)

1 running正在運行的進程數(shù)

480 sleeping睡眠的進程數(shù)

0 stopped停止的進程數(shù)

0 zombie僵尸進程數(shù)

Cpu(s): 0.0% us系統(tǒng)用戶進程使用CPU百分比。

0.0% sy內(nèi)核中的進程占用CPU百分比

0.0% ni用戶進程空間內(nèi)改變過優(yōu)先級的進程占用CPU百分比

98.7% id空閑CPU百分比

0.0% wacpu等待I/0完成的時間總量。

內(nèi)存信息(第四五行)

Mem:?2033552k total物理內(nèi)存總量

340392k used使用的物理內(nèi)存總量

1376636k free空閑內(nèi)存總量

316524k buff/cache用作內(nèi)核緩存的內(nèi)存量。

和free -k 一個意思

Swap:?2017948k total交換區(qū)總量

0k used使用的交換區(qū)總量

192772k free空閑交換區(qū)總量

1518148 avail Mem總的可利用內(nèi)存是多少

第7行進程信息

PID進程id

USER進程所有者的用戶名

PR優(yōu)先級(由內(nèi)核動態(tài)調(diào)整),用戶不能

NI進程優(yōu)先級。 nice值。負值表示高優(yōu)先級,正值表示低優(yōu)先級,用戶可以自己調(diào)整

VIRT(virtual memory usage)虛擬內(nèi)存,是進程正在使用的所有內(nèi)存(ps中標為VSZ)

VIRT:virtual memory usage 虛擬內(nèi)存

1、進程“需要的”虛擬內(nèi)存大小,包括進程使用的庫、代碼、數(shù)據(jù)等

2、假如進程申請100m的內(nèi)存,但實際只使用了10m,那么它會增長100m,而不是實際的使用量

RES(resident memory usage)是進程所使用的物理內(nèi)存。實際實用內(nèi)存(ps中標為RSS)

RES:resident memory usage 常駐內(nèi)存

1、進程當前使用的內(nèi)存大小,但不包括swap out

2、包含其他進程的共享

3、如果申請100m的內(nèi)存,實際使用10m,它只增長10m,與VIRT相反

4、關(guān)于庫占用內(nèi)存的情況,它只統(tǒng)計加載的庫文件所占內(nèi)存大小

SHR共享內(nèi)存大小,單位kb

SHR:shared memory 共享內(nèi)存

1、除M了自身進程的共享內(nèi)存,也包括其他進程的共享內(nèi)存

2、雖然進程只使用了幾個共享庫的函數(shù),但它包含了整個共享庫的大小

3、計算某個進程所占的物理內(nèi)存大小公式:RES – SHR

4、swap out后,它將會降下來

S進程狀態(tài)。? ?? ?? ?? ?D=不可中斷的睡眠狀態(tài)? ?? ?? ?? ?R=運行中或可運行? ?? ?? ?? ?S=睡眠中? ?? ?? ?? ?T=已跟蹤/已停止? ?? ?? ?? ?Z=僵停

%CPU上次更新到現(xiàn)在的CPU時間占用百分比

%MEM進程使用的物理內(nèi)存百分比

TIME+進程使用的CPU時間總計,單位1/100秒

COMMAND命令名/命令行

top快捷鍵:

默認3s刷新一次,按s修改刷新時間

按空格:立即刷新。

q退出

P:按CPU排序

M:按內(nèi)存排序

T按時間排序

p: 進程IP,查看某個進程狀態(tài)

數(shù)字鍵1:顯示每個內(nèi)核的CPU使用率

u/U:指定顯示的用戶

h:幫助

lsof命令

lsof命令用于查看你進程打開的文件,打開文件的進程,進程打開的端口(TCP、UDP)

-i<條件>:列出符合條件的進程。(4、6、協(xié)議、:端口、@ip )

-p<進程號>:列出指定進程號所打開的文件;

[root@desktop-dcct8ee ~]# lsof -p 3178

COMMAND? PID USER? FD? TYPE? ? ? ? ? ? DEVICE? SIZE/OFF? ? NODE NAME

screen? 3178 root? cwd? ? DIR? ? ? ? ? ? ? 253,0? ? ? 208 33574977 /root

screen? 3178 root? rtd? ? DIR? ? ? ? ? ? ? 253,0? ? ? 224? ? ? 64 /

screen? 3178 root? ? 2w? CHR? ? ? ? ? ? ? ? 1,3? ? ? 0t0? ? 1028 /dev/null

screen? 3178 root? ? 4u? unix 0xffff9278b654f800? ? ? 0t0? ? 49598 /var/run/screen/S-root/3178.pts-2.desktop-dcct8ee

screen? 3178 root? ? 5u? REG? ? ? ? ? ? ? 0,20? ? ? 3072? ? 17681 /run/utmp

screen? 3178 root? ? 7u? CHR? ? ? ? ? ? ? 136,2? ? ? 0t0? ? ? ? 5 /dev/pts/2

[root@desktop-dcct8ee ~]# lsof -i :22

COMMAND? PID USER? FD? TYPE DEVICE SIZE/OFF NODE NAME

sshd? ? 961 root? ? 3u? IPv4? 17250? ? ? 0t0? TCP *:ssh (LISTEN)

sshd? ? 961 root? ? 4u? IPv6? 17252? ? ? 0t0? TCP *:ssh (LISTEN)

pstree工具使用

pstree工具是用于以樹形的形式查看進程

常用參數(shù)? -p? 指定顯示進程端口PID

[root@desktop-dcct8ee ~]# pstree

systemd─┬─NetworkManager───2*[{NetworkManager}]

? ? ? ? ├─VGAuthService

? ? ? ? ├─auditd───{auditd}

? ? ? ? ├─chronyd

? ? ? ? ├─systemd-udevd

? ? ? ? ├─tuned───4*[{tuned}]

? ? ? ? └─vmtoolsd───{vmtoolsd}

進程的優(yōu)先級

優(yōu)先級取值范圍為(-20,19),越小優(yōu)先級越高, 默認優(yōu)先級是0

命令1:nice ?指定程序的運行優(yōu)先級

格式:nice n command

命令2:renice ??改變程序的運行優(yōu)先級

格式:renice -n pid

例1:指定運行vim的優(yōu)先級為5

[root@desktop-dcct8ee ~]# nice -n 5 vim a.txt

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內(nèi)容