Linux 系統(tǒng)管理——進(jìn)程管理

進(jìn)程是正在執(zhí)行的一個(gè)程序或命令,每一個(gè)進(jìn)程都是一個(gè)運(yùn)行的實(shí)體,都有自己的地址空間,并占用一定的系統(tǒng)資源。

進(jìn)程管理的作用

  • 判斷服務(wù)器健康狀態(tài)
  • 查看系統(tǒng)中所有進(jìn)程
  • 殺死進(jìn)程

進(jìn)程的查看--ps和pstree命令

ps

# 查看系統(tǒng)中所有進(jìn)程,使用BSD操作系統(tǒng)格式
ps aux
選項(xiàng):
a:顯示一個(gè)終端的所有進(jìn)程,除了會(huì)話引線
u:顯示進(jìn)程的歸屬用戶及內(nèi)存的使用情況
x:顯示沒(méi)有控制終端的進(jìn)程

# 查看系統(tǒng)中所有進(jìn)程,使用Linux標(biāo)準(zhǔn)命令格式
ps -le
選項(xiàng):
-l:長(zhǎng)格式顯示。顯示更加詳細(xì)的信息
-e:顯示所有進(jìn)程,和-a作用一致

ps命令的輸出

USER:該進(jìn)程是由哪個(gè)用戶產(chǎn)生的;
PID:進(jìn)程的ID號(hào);
%CPU:該進(jìn)程占用CPU資源的百分比,占用越高,進(jìn)程越耗費(fèi)資源;
%MEM:該進(jìn)程占用物理內(nèi)存的百分比,占用越高,進(jìn)程越耗費(fèi)資源;
VSZ:該進(jìn)程占用虛擬內(nèi)存的大小,單位KB;
RSS:該進(jìn)程占用實(shí)際物理內(nèi)存的大小,單位KB;
TTY:該進(jìn)程是在哪個(gè)終端中運(yùn)行的。其中tty1-tty7代表本地控制臺(tái)終端,tty1-tty6是本地的字符界面終端,tty7是圖形終端。pts/0-255代表虛擬終端(現(xiàn)在不止256個(gè))。?表示內(nèi)核啟動(dòng)的
STAT:進(jìn)程狀態(tài)。常見(jiàn)的狀態(tài)有R運(yùn)行,S睡眠,T停止?fàn)顟B(tài),s包含子進(jìn)程,+位于后臺(tái)
START:該進(jìn)程的啟動(dòng)時(shí)間
TIME:該進(jìn)程占用CPU的運(yùn)算時(shí)間,注意不是系統(tǒng)時(shí)間
COMMAND:產(chǎn)生此進(jìn)程的命令名

pstree

# 查看進(jìn)程樹(shù)
pstree [選項(xiàng)]
選項(xiàng):
-p 顯示進(jìn)程的PID
-u 顯示進(jìn)程的所屬用戶

查看系統(tǒng)健康狀態(tài)--top命令

top [選項(xiàng)]
選項(xiàng):
-d 秒數(shù):指定topminglmeige幾秒更新。默認(rèn)是3秒
-b 使用批處理模式輸出,一般和-n選項(xiàng)合用
-n 次數(shù):指定top命令執(zhí)行的次數(shù)。一般和-b選項(xiàng)合用

在top命令的交互模式當(dāng)中可以執(zhí)行的命令:
?或h 顯示交互模式的幫助
P 以CPU使用率排序,默認(rèn)就是此項(xiàng)
M 以內(nèi)存的使用率排序
N 以PID排序
q 退出top

顯示的前五行:

top - 13:51:04 up  4:26,  1 user,  load average: 0.00, 0.01, 0.05
Tasks: 360 total,   1 running, 359 sleeping,   0 stopped,   0 zombie
%Cpu(s):  0.2 us,  0.2 sy,  0.0 ni, 99.7 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :  1001360 total,   578868 free,   210904 used,   211588 buff/cache
KiB Swap:  2098172 total,  2098172 free,        0 used.   615456 avail Mem 

第一行信息為任務(wù)隊(duì)列信息

內(nèi)容 說(shuō)明
13:51:04 系統(tǒng)當(dāng)前時(shí)間
up 4:26 系統(tǒng)的運(yùn)行時(shí)間,本機(jī)一運(yùn)行4小時(shí)26分
1 user 當(dāng)前登陸了一個(gè)用戶
load average:0.00,0.01,0.05 系統(tǒng)在之前1分鐘,5分鐘,15分鐘的平均負(fù)載。一般認(rèn)為小于1*核數(shù)(單核1雙核2四核4)時(shí),負(fù)載較小。

第二行信息為進(jìn)程信息

內(nèi)容 說(shuō)明
Tasks: 360 total 系統(tǒng)中的進(jìn)程總數(shù)
1 running 正在運(yùn)行的進(jìn)程樹(shù)
359 sleeping 睡眠的進(jìn)程
0 stopped 正在停止的進(jìn)程
0 zombie 僵尸進(jìn)程。如果不是0,需要手工檢查僵尸進(jìn)程

第三行信息為CPU信息

內(nèi)容 說(shuō)明
0.2 us 用戶模式占用的CPU百分比
0.2 sy 系統(tǒng)模式占用的CPU百分比
0.0 ni 改變過(guò)優(yōu)先級(jí)的用戶進(jìn)程占用的CPU百分比
99.7 id 空閑CPU的CPU百分比
0.0 wa 等待輸入/輸出的進(jìn)程的占用CPU百分比
0.0 hi 硬終端請(qǐng)求服務(wù)占用的CPU百分比
0.0 si 軟終端請(qǐng)求服務(wù)占用的CPU百分比
0.0 st Steak time虛擬時(shí)間百分比。就是當(dāng)有虛擬機(jī)是,虛擬CPU等待實(shí)際CPU的時(shí)間輩分比。

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

內(nèi)容 說(shuō)明
1001360 total 物理內(nèi)存的總量
578868 free 空閑的物理內(nèi)存數(shù)量
210904 used 已經(jīng)使用的物理內(nèi)存適量
211588 buff/cache 作為緩沖緩存的內(nèi)存數(shù)量

第五行信息為交換分區(qū)swap信息

內(nèi)容 說(shuō)明
2098172 total 交換分區(qū)的總大小
2098172 free 空閑交換分區(qū)的大小
0 used 已經(jīng)使用的交換分區(qū)的大小

補(bǔ)充緩沖buffer用來(lái)加速數(shù)據(jù)從硬盤(pán)中“讀取”,緩存cache用來(lái)數(shù)據(jù)“寫(xiě)入”硬盤(pán)

# 使用top查看所有進(jìn)程
top -b -n 1 > /root/top/log

殺死進(jìn)程

kill

# 殺死進(jìn)程
kill [信號(hào)] 進(jìn)程號(hào) (默認(rèn)信號(hào)為15)
# 平滑重啟進(jìn)程
kill -HUP 進(jìn)程號(hào) (或者kill -1 進(jìn)程號(hào)) # 只能殺死重啟一個(gè)進(jìn)程
# 強(qiáng)制殺死進(jìn)程
kill -9 進(jìn)程號(hào)
# 查看可用的進(jìn)程信號(hào)
kill -l

列表如下:

kill -l

常用信號(hào):

常用信號(hào)

killall

# 按照進(jìn)程名殺死進(jìn)程
killall [選項(xiàng)] [信號(hào)] 進(jìn)程名
選項(xiàng):
-i 交互式,詢問(wèn)是否要?dú)⑺滥硞€(gè)進(jìn)程
-I 忽略進(jìn)程名的大小寫(xiě)

pkill命令

# 按照進(jìn)程名殺死進(jìn)程
pkill [選項(xiàng)] [信號(hào)] 進(jìn)程名
選項(xiàng):
-t 終端號(hào)    按照終端號(hào)踢出用戶

示例:
# 強(qiáng)制殺死從xxx終端登錄的進(jìn)程
pkill -9 -t tty1
pkill -9 -t pts/1

修改進(jìn)程優(yōu)先級(jí)

Linux操作系統(tǒng)是一個(gè)多用戶、多任務(wù)的操作系統(tǒng),Linux系統(tǒng)中同時(shí)運(yùn)行著非常多的進(jìn)程。但是CPU在同一個(gè)時(shí)鐘周期內(nèi)只能運(yùn)算一個(gè)指令。進(jìn)程優(yōu)先級(jí)決定了每個(gè)進(jìn)程處理的先后順序。

ps -le中的 PRI代表Priority,NI代表Nice。這兩個(gè)值都是優(yōu)先級(jí),數(shù)字越小代表該進(jìn)程優(yōu)先級(jí)越高。用戶只能修改NI值,不能修改PRI值。

修改NI值時(shí)的注意事項(xiàng):

  • NI的值范圍是-20到19
  • 普通喻戶調(diào)整NI值的范圍是0-19,而且只能調(diào)整自己的進(jìn)程
  • 普通用戶只能調(diào)高NI值,而不能降低,如原本NI值為0,則只能調(diào)整為大于0
  • root用戶才能設(shè)定進(jìn)程N(yùn)I值為負(fù)值,而且可以調(diào)整任何用戶的進(jìn)程。
  • PRI(最終值)=PRI(原始值)+NI
  • 用戶只能修改NI的值,不能直接修改PRI

nice

# nice命令可以給新執(zhí)行的命令直接賦予NI值,但是不能修改已經(jīng)存在的進(jìn)程的NI值
nice [選項(xiàng)] 命令
選項(xiàng):
-n NI值,給命令賦予NI值
例:nice -n -5 service httpd start

renice

# 修改已經(jīng)存在進(jìn)程的NI值的命令
renice [優(yōu)先級(jí)] PID
例:renice -10 2125
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一個(gè)程序被加載到內(nèi)存當(dāng)中運(yùn)行,那么在內(nèi)存內(nèi)的那個(gè)數(shù)據(jù)就被稱為進(jìn)程(process)。進(jìn)程是操作系統(tǒng)上非常重要的概念...
    Zhang21閱讀 2,110評(píng)論 0 12
  • 1、第八章 Samba服務(wù)器2、第八章 NFS服務(wù)器3、第十章 Linux下DNS服務(wù)器配站點(diǎn),域名解析概念命令:...
    哈熝少主閱讀 3,906評(píng)論 0 10
  • 進(jìn)程相關(guān)概念 內(nèi)核的功能 進(jìn)程管理、文件系統(tǒng)、網(wǎng)絡(luò)功能、內(nèi)存管理、驅(qū)動(dòng)程序、安全功能等。 process 進(jìn)程,正...
    夾克K閱讀 1,127評(píng)論 0 1
  • 然而,小玲的一聲“開(kāi)飯了”卻打破了這種渴望已久的浪漫,我頓時(shí)推開(kāi)他的身體,雙眼交匯時(shí)一種無(wú)可奈何的尷尬。 晚飯?jiān)谝?..
    葷事素侃閱讀 609評(píng)論 3 4
  • 什么是數(shù)組 數(shù)組的定義 ?vararr=new Array(1,2,3); ?vararr=[1,2,3]; ?區(qū)...
    fa54021d36e2閱讀 493評(píng)論 0 0

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