亚洲熟女综合色一区二区三区,亚洲精品中文字幕无码蜜桃,亚洲va欧美va日韩va成人网,亚洲av无码国产一区二区三区,亚洲精品无码久久久久久久

Linux基礎(chǔ)教程之進(jìn)程查看和管理及作業(yè)控制

在Linux系統(tǒng)中,內(nèi)核的功用有:進(jìn)程管理、文件系統(tǒng)、網(wǎng)絡(luò)功能、內(nèi)存管理、驅(qū)動程序、安全功能等,在這眾多的模塊中,進(jìn)程管理是相對重要的一環(huán),即使不像文件系統(tǒng)和網(wǎng)絡(luò)功能那么復(fù)雜。在進(jìn)程管理中,內(nèi)核對進(jìn)程的創(chuàng)建、切換、撤銷和調(diào)度都有很詳細(xì)的定義。

1、進(jìn)程類型

守護(hù)進(jìn)程在系統(tǒng)引導(dǎo)過程中啟動的進(jìn)程,跟終端無關(guān)的進(jìn)程

前臺進(jìn)程跟終端相關(guān),通過終端啟動的進(jìn)程

注意:也可把在前臺啟動的進(jìn)程送往后臺,以守護(hù)模式運(yùn)行

2、進(jìn)程狀態(tài)

? ?在內(nèi)存中運(yùn)行的進(jìn)程也有著各種各樣的狀態(tài)

運(yùn)行態(tài)R:running

就緒態(tài):ready

睡眠態(tài)

可中斷S:interruptable

不可中斷D:uninterruptable

停止態(tài)T:stopped,暫停于內(nèi)存中,但不會被調(diào)度,除非手動啟動

僵死態(tài)Z:zombie,結(jié)束進(jìn)程,父進(jìn)程結(jié)束前,子進(jìn)程不關(guān)閉

3、進(jìn)程調(diào)度

調(diào)度策略:調(diào)度策略就是這樣一組規(guī)則:決定什么時候以怎樣的方式選擇一個新進(jìn)程運(yùn)行。所以定義一個進(jìn)程的優(yōu)先級來滿足這樣一種策略。這個策略以0-139的優(yōu)先級來表示。

實時優(yōu)先級:1-99

無需調(diào)整,數(shù)字越大,優(yōu)先級越高

靜態(tài)優(yōu)先級:100-139

可調(diào)整,數(shù)字越小,優(yōu)先級越高?

優(yōu)先級以Nice值調(diào)整

Nice:-20—-19 ,存在于task_struct結(jié)構(gòu)體中

公式如下:

????pri(new)=nice+pri(old) ?

調(diào)度算法:早起的Linux中,調(diào)度算法是根據(jù)進(jìn)程的優(yōu)先級選擇“最佳”進(jìn)程來執(zhí)行,它的缺點(diǎn)是時間開銷與“可運(yùn)行進(jìn)程數(shù)量”有關(guān)。某種調(diào)度算法一定滿足一種函數(shù)關(guān)系,業(yè)界稱為Big O

Big O:時間復(fù)雜度,用時和規(guī)模的關(guān)系。有:

O(1), O(logn), O(n)線性, O(n^2)拋物線, O(2^n)

4、進(jìn)程管理命令之pstree

pstree – display a tree of processes

顯示進(jìn)程數(shù)

5、進(jìn)程管理命令之ps

Linux系統(tǒng)各進(jìn)程的相關(guān)信息均保存在/proc/PID目錄下的各文件中;

ps [OPTION]…

選項:支持兩種風(fēng)格

常用組合:aux

u: 以用戶為中心組織進(jìn)程狀態(tài)信息顯示

a: 與終端相關(guān)的進(jìn)程;

x: 與終端無關(guān)的進(jìn)程;

~]# ps aux

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

USER 運(yùn)行進(jìn)程的用戶
PID 進(jìn)程ID
%CPU 占用CPU
%MEM 占用內(nèi)存
VSZ 虛擬內(nèi)存集
RSS 實際內(nèi)存集
TTY 終端信息
STAT 進(jìn)程狀態(tài)
START 進(jìn)程狀態(tài)
TIME 運(yùn)行時間
COMMAND 進(jìn)程名稱

常用組合:-ef

–e: 顯示所有進(jìn)程

-f: 顯示完整格式程序信息

常用組合:-eFH

-F: 顯示完整格式的進(jìn)程信息

-H: 以進(jìn)程層級格式顯示進(jìn)程相關(guān)信息

 

6、進(jìn)程管理命令之pkill

pkill [options] pattern ? ?

-u uid: effective user

-U uid: real user

-t terminal: 與指定終端相關(guān)的進(jìn)程

-l: 顯示進(jìn)程名

-a: 顯示完整格式的進(jìn)程名

-P pid: 顯示其父進(jìn)程為此處指定的進(jìn)程的進(jìn)程列表

7、進(jìn)程管理命令之pidof

根據(jù)進(jìn)程名獲取其PID

8、進(jìn)程管理命令之top

Linux基礎(chǔ)教程之進(jìn)程查看和管理及作業(yè)控制

Tasks

total 進(jìn)程總數(shù)
running 運(yùn)行進(jìn)程數(shù)
sleeping 休眠態(tài)進(jìn)程數(shù)
stopped 停止態(tài)進(jìn)程數(shù)
zobie 僵死態(tài)進(jìn)程數(shù)

%Cpu(s)

us(user space) 用戶空間占用CPU百分比
sy(system) 內(nèi)核空間占用CPU百分比 ? 注:高負(fù)載時:us:sy=7:3
ni(nice) 修改nice值占用的CPU百分比
id(idle) 空閑的CPU百分比
wa(wait) 等待IO完成占用的CPU百分比
hi(hardware interrupt) 硬中斷占用CPU百分比
si(software interrupt) 軟中斷占用CPU百分比
st(stole) 被偷走的CPU,比如VMware
buffer(緩沖) 元數(shù)據(jù)
cache(緩存) 數(shù)據(jù)
PID 進(jìn)程號
USER 進(jìn)程發(fā)起者
PR(priority) 優(yōu)先級
NI(Nice) nice值
VIRT 虛擬內(nèi)存集
RES 常駐內(nèi)存集
SHR 共享內(nèi)存集
S(status) 狀態(tài)
%CPU CPU占用比
%MEM 內(nèi)存占用比
TIME+ 運(yùn)行時長
COMMAND 啟動進(jìn)程

對顯示排序的方法:

P 占據(jù)的CPU百分比
M 占據(jù)內(nèi)存百分比
T 累積占據(jù)CPU時長

首部信息顯示:

l uptime信息
t tasks及cpu信息
#數(shù)字 cpu分別顯示
m memory信息
s 修改刷新時間間隔
Esc 退出
k 終止指定進(jìn)程
W 保存文件
q 退出命令

9、進(jìn)程管理命令之htop

=

比top更加高級的進(jìn)程管理軟件

f1幫助

f2切換CPU、mem、swap顯示方式

f10退出

常用選項:

-d #: 指定延遲時間;

-u UserName: 僅顯示指定用戶的進(jìn)程;

-s COLOMN: 以指定字段進(jìn)行排序;

命令:

s: 跟蹤選定進(jìn)程的系統(tǒng)調(diào)用;

l: 顯示選定進(jìn)程打開的文件列表;

a:將選定的進(jìn)程綁定至某指定CPU核心;

t: 顯示進(jìn)程樹

注意:Fedora-EPEL源

10、進(jìn)程管理命令之vmstat

Linux基礎(chǔ)教程之進(jìn)程查看和管理及作業(yè)控制

vmstat -s: 內(nèi)存的匯總信息

procs 項目
r 等待運(yùn)行的進(jìn)程的個數(shù),和核心數(shù)有關(guān)
b 處于不可中斷睡眠態(tài)的進(jìn)程個數(shù)(被阻塞的隊列的長度)
swap 項目
si 從磁盤交換進(jìn)內(nèi)存的數(shù)據(jù)速率(kb/s)
so 從內(nèi)存交換至磁盤的數(shù)據(jù)速率(kb/s)
io 項目
bi 從塊設(shè)備讀入數(shù)據(jù)到內(nèi)存的速率(kb/s) ? ?讀
bo 從內(nèi)存寫入磁盤的速率(kb/s) ?? ? ? ? ? 寫
memory 項目
swad 交換內(nèi)存的使用總量
free 空閑物理內(nèi)存總量
buffer 用于buffer的內(nèi)存總量
cache 用于cache的內(nèi)存總量
system 項目
in: interrupts 中斷速率
cs: context switch 進(jìn)程切換速率
cpu 項目
us 用戶空間占用的比例
sy 內(nèi)核空間占用的比例
id 空閑空間占用的比例
wa 等待IO完成所消耗的時間比例
st 被虛擬化技術(shù)偷走的時間比例

11、進(jìn)程管理命令之glances

glances [-bdehmnrsvyz1] [-B bind] [-c server] [-C conffile] [-p port] [-P password] [–password] [-t refresh] [-f file] [-o output]

內(nèi)建命令:

??a ?Sort processes automatically ? ? l ?Show/hide logs

??c ?Sort processes by CPU% ? ? ? ? ? b ?Bytes or bits for network I/O

??m ?Sort processes by MEM% ? ? ? ? ? w ?Delete warning logs

??p ?Sort processes by name ? ? ? ? ? x ?Delete warning and critical logs

??i ?Sort processes by I/O rate ? ? ? 1 ?Global CPU or per-CPU stats

??d ?Show/hide disk I/O stats ? ? ? ? h ?Show/hide this help screen

??f ?Show/hide file system stats ? ? ?t ?View network I/O as combination

??n ?Show/hide network stats ? ? ? ? ?u ?View cumulative network I/O

??s ?Show/hide sensors stats ? ? ? ? ?q ?Quit (Esc and Ctrl-C also work)

??y ?Show/hide hddtemp stats

常用選項:

-b: 以Byte為單位顯示網(wǎng)卡數(shù)據(jù)速率;

-d: 關(guān)閉磁盤I/O模塊;

-f /path/to/somefile: 設(shè)定輸入文件位置;

-o {HTML|CSV}:輸出格式;

-m: 禁用mount模塊

-n: 禁用網(wǎng)絡(luò)模塊

-t #: 延遲時間間隔

-1:每個CPU的相關(guān)數(shù)據(jù)單獨(dú)顯示;

C/S模式下運(yùn)行g(shù)lances命令:

服務(wù)模式:

glances -s -B IPADDR

IPADDR: 指明監(jiān)聽于本機(jī)哪個地址

客戶端模式:

glances -c IPADDR

IPADDR:要連入的服務(wù)器端地址

12、進(jìn)程管理命令之dstat

dstat [-afv] [options..] [delay [count]]

-c: 顯示cpu相關(guān)信息;

-C #,#,…,total

-d: 顯示disk相關(guān)信息;

-D total,sda,sdb,…

-g:顯示page相關(guān)統(tǒng)計數(shù)據(jù);

-m: 顯示memory相關(guān)統(tǒng)計數(shù)據(jù);

-n: 顯示network相關(guān)統(tǒng)計數(shù)據(jù);

-p: 顯示process相關(guān)統(tǒng)計數(shù)據(jù);

-r: 顯示io請求相關(guān)的統(tǒng)計數(shù)據(jù);

-s: 顯示swapped相關(guān)的統(tǒng)計數(shù)據(jù);

–top-cpu:顯示最占用CPU的進(jìn)程;

–top-io: 顯示最占用io的進(jìn)程;

–top-mem: 顯示最占用內(nèi)存的進(jìn)程;

–top-lantency: 顯示延遲最大的進(jìn)程;

13、進(jìn)程管理命令之kill

kill命令:

向進(jìn)程發(fā)送控制信號,以實現(xiàn)對進(jìn)程管理

顯示當(dāng)前系統(tǒng)可用信號:

# kill -l

# man 7 signal

常用信號:

1) SIGHUP: 無須關(guān)閉進(jìn)程而讓其重讀配置文件;

2) SIGINT: 中止正在運(yùn)行的進(jìn)程;相當(dāng)于Ctrl+c;

9) SIGKILL: 殺死正在運(yùn)行的進(jìn)程;

15) SIGTERM:終止正在運(yùn)行的進(jìn)程;

18) SIGCONT:

19) SIGSTOP:

指定信號的方法:

(1) 信號的數(shù)字標(biāo)識;1, 2, 9

(2) 信號完整名稱;SIGHUP

(3) 信號的簡寫名稱;HUP

向進(jìn)程發(fā)信號:

kill [-SIGNAL] PID…

終止“名稱”之下的所有進(jìn)程:

killall [-SIGNAL] Program

14、Linux的作業(yè)控制

前臺作業(yè):通過終端啟動,且啟動后一直占據(jù)終端;

后臺作業(yè):可以通過終端啟動,但啟動后即轉(zhuǎn)入后臺運(yùn)行(釋放終端);

如何讓作業(yè)運(yùn)行于后臺?

(1) 運(yùn)行中的作業(yè)

Ctrl+z

(2) 尚未啟動的作業(yè)

# COMMAND &

此類作業(yè)雖然被送往后臺運(yùn)行,但其依然與終端相關(guān);如果希望送往后臺后,剝離與終端的關(guān)系:

# nohup COMMAND &

查看所有作業(yè):

# jobs

作業(yè)控制:

# fg [[%]JOB_NUM]:把指定的后臺作業(yè)調(diào)回前臺;

# bg [[%]JOB_NUM]:讓送往后臺的作業(yè)在后臺繼續(xù)運(yùn)行;

# kill [%JOB_NUM]:終止指定的作業(yè);

相關(guān)新聞

歷經(jīng)多年發(fā)展,已成為國內(nèi)好評如潮的Linux云計算運(yùn)維、SRE、Devops、網(wǎng)絡(luò)安全、云原生、Go、Python開發(fā)專業(yè)人才培訓(xùn)機(jī)構(gòu)!