性夜影院午夜看片,无码精品久久一区二区三区,婷婷成人丁香五月综合激情,校园春色 qvod,性调教室高h学校

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

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

1、進程類型

守護進程在系統(tǒng)引導過程中啟動的進程,跟終端無關的進程

前臺進程跟終端相關,通過終端啟動的進程

注意:也可把在前臺啟動的進程送往后臺,以守護模式運行

2、進程狀態(tài)

? ?在內存中運行的進程也有著各種各樣的狀態(tài)

運行態(tài)R:running

就緒態(tài):ready

睡眠態(tài)

可中斷S:interruptable

不可中斷D:uninterruptable

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

僵死態(tài)Z:zombie,結束進程,父進程結束前,子進程不關閉

3、進程調度

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

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

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

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

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

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

Nice:-20—-19 ,存在于task_struct結構體中

公式如下:

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

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

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

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

4、進程管理命令之pstree

pstree – display a tree of processes

顯示進程數(shù)

5、進程管理命令之ps

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

ps [OPTION]…

選項:支持兩種風格

常用組合:aux

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

a: 與終端相關的進程;

x: 與終端無關的進程;

~]# ps aux

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

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

常用組合:-ef

–e: 顯示所有進程

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

常用組合:-eFH

-F: 顯示完整格式的進程信息

-H: 以進程層級格式顯示進程相關信息

 

6、進程管理命令之pkill

pkill [options] pattern ? ?

-u uid: effective user

-U uid: real user

-t terminal: 與指定終端相關的進程

-l: 顯示進程名

-a: 顯示完整格式的進程名

-P pid: 顯示其父進程為此處指定的進程的進程列表

7、進程管理命令之pidof

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

8、進程管理命令之top

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

Tasks

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

%Cpu(s)

us(user space) 用戶空間占用CPU百分比
sy(system) 內核空間占用CPU百分比 ? 注:高負載時: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 進程號
USER 進程發(fā)起者
PR(priority) 優(yōu)先級
NI(Nice) nice值
VIRT 虛擬內存集
RES 常駐內存集
SHR 共享內存集
S(status) 狀態(tài)
%CPU CPU占用比
%MEM 內存占用比
TIME+ 運行時長
COMMAND 啟動進程

對顯示排序的方法:

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

首部信息顯示:

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

9、進程管理命令之htop

=

比top更加高級的進程管理軟件

f1幫助

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

f10退出

常用選項:

-d #: 指定延遲時間;

-u UserName: 僅顯示指定用戶的進程;

-s COLOMN: 以指定字段進行排序;

命令:

s: 跟蹤選定進程的系統(tǒng)調用;

l: 顯示選定進程打開的文件列表;

a:將選定的進程綁定至某指定CPU核心;

t: 顯示進程樹

注意:Fedora-EPEL源

10、進程管理命令之vmstat

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

vmstat -s: 內存的匯總信息

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

11、進程管理命令之glances

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

內建命令:

??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為單位顯示網卡數(shù)據(jù)速率;

-d: 關閉磁盤I/O模塊;

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

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

-m: 禁用mount模塊

-n: 禁用網絡模塊

-t #: 延遲時間間隔

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

C/S模式下運行glances命令:

服務模式:

glances -s -B IPADDR

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

客戶端模式:

glances -c IPADDR

IPADDR:要連入的服務器端地址

12、進程管理命令之dstat

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

-c: 顯示cpu相關信息;

-C #,#,…,total

-d: 顯示disk相關信息;

-D total,sda,sdb,…

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

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

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

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

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

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

–top-cpu:顯示最占用CPU的進程;

–top-io: 顯示最占用io的進程;

–top-mem: 顯示最占用內存的進程;

–top-lantency: 顯示延遲最大的進程;

13、進程管理命令之kill

kill命令:

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

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

# kill -l

# man 7 signal

常用信號:

1) SIGHUP: 無須關閉進程而讓其重讀配置文件;

2) SIGINT: 中止正在運行的進程;相當于Ctrl+c;

9) SIGKILL: 殺死正在運行的進程;

15) SIGTERM:終止正在運行的進程;

18) SIGCONT:

19) SIGSTOP:

指定信號的方法:

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

(2) 信號完整名稱;SIGHUP

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

向進程發(fā)信號:

kill [-SIGNAL] PID…

終止“名稱”之下的所有進程:

killall [-SIGNAL] Program

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

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

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

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

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

Ctrl+z

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

# COMMAND &

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

# nohup COMMAND &

查看所有作業(yè):

# jobs

作業(yè)控制:

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

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

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

相關新聞

歷經多年發(fā)展,已成為國內好評如潮的Linux云計算運維、SRE、Devops、網絡安全、云原生、Go、Python開發(fā)專業(yè)人才培訓機構!