linux進程管理

Linux內核:搶占式多任務

進程類型:

1、守護進程:在系統引導過程中啟動的進程,與終端無關的進程;

2、前臺進程:跟終端相關,通過終端啟動的進程,注意:也可把前臺啟動的進程送往后臺,以守護模式運行;

 

進程狀態:

運行態:running

就緒態:ready

睡眠態:a、可中斷:interruptable;b、不可中斷:uninterruptable

停止態:暫停于內存中,但不會被調度,除非手動啟動之:stopped

僵死態:zombie

 

進程分類:

1、CPU-Bound:CPU密集型

2、IO-Bound:IO密集型

 

Linux進程查看及管理工具:pstree、ps、pgrep、pidof、top、htop、glance、pmap、vmstat、dstat、kill、pkill、job、bg、fg、nohup;

 

pstree – display a tree of processes;以樹狀顯示進程

 

ps:顯示進程狀態

ps [options]…

選項:支持兩種風格

常用組合:aux

u:以用戶為中心組織進程狀態信息顯示

a:與終端相關的進程

x:與終端無關的進程

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

VSZ:virtual memory size;虛擬內存集

RSS:resident size;常駐內存集,即不能被交換至交換分區的

STAT:進程狀態

R:running

S:interruptable sleeping

D:uninterruptable sleeping

T:stopped

Z:zombie

+:前臺進程

l:多線程進程

N:低優先級進程

<:高優先級進程

s:session leader

 

常用組合:-ef

-e:顯示所有進程相當于ps ax;

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

常用組合:-eFH

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

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

常用組合:-eo,axo

-o:以自定義指定字段顯示

-eo ? ? ?pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
axo ? ? stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm

ni:nice值;

pri:優先級;

psr:運行于哪顆cpu;

rtprio:實時優先級;

ppid:父進程;

 

pgrep,pkill:

pgrep ? [options] ? pattern
pkill ? [options] ? pattern

-U uid:真實用戶

-u uid:有效用戶

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

-l:顯示進程名

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

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

 

pidof:根據進程名獲取其pid

 

top:有許多內置命令:

排序:P:占據CPU時間百分比;

M:占據的內存百分比;

T:累計占據cpu時長;

首部信息顯示:

l:uptime信息;

t:任務及cpu信息;

1:cpu分別顯示;

m:內存信息;

q:退出命令;

s:修改刷新時間間隔;

k:kill,終止指定進程

其中cpu信息中各子項的意義:

us:用戶空間

sy:內核空間

ni:nice值

id:空閑比例

wa:等待io完成

hi:處理硬件中斷

si:處理軟件中斷

st:被虛擬化技術偷走的時間

 

htop命令:

s:跟蹤選定進程的系統調用;

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

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

t:顯示進程樹;

 

vmstat:報告虛擬內存的使用信息

vmstat [options] [delay [count]]

procs ? ? {r:等待運行的進程的個數;

b:處于不可中斷睡眠態的進程個數(被阻塞的隊列的長度);}

memory ? {swpd:交換內存的使用總量;

free:空閑物理內存總量;

buff:用于buff的內存總量;

cache:用于cache的內存總量}

 

swap ? {si:數據進入swap中的數據速率(kb/s)

so:數據離開swap中的數據速率(kb/s)}

 

io ? {bi:從塊設備讀入數據到系統的速率(kb/s)

bo:保存數據至塊設備的速率(kb/s)}

 

system ? {in:中斷速率

cs:進程切換的速率}

 

cpu ? {us:用戶空間

sy:內核空間

id:空閑比例

wa:等待io完成所消耗的時間比例

st:被虛擬化技術偷走的時間比例}

 

選項:

-s:顯示內存的統計數據

 

pmap – report memory map of a process:顯示指定進程ID號的內存映射關系

選項:

-x:顯示詳細格式的信息;

其真實文件保存在:/proc/PID/maps;

 

glances – A cross-platform curses-based system monitoring tool:跨平臺的基于指針的系統監控工具

內建命令:h:獲取幫助

C/S模式下運行glances命令:適合于內網監控。

服務端模式:glances -s -B IPADDR

客戶端模式:glances -c IPADDR

 

dstat – versatile tool for generating system resource statistics:用于生成系統資源統計信息的萬能工具

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

常用選項:

-c:cpu相關信息;

-C #,#,…,total

-d:硬盤相關信息;

-D total,sda,sdb,…

-g:顯示page相關統計數據

-m:顯示內存相關統計數據

-n:顯示network相關統計數據

-p:顯示process相關統計數據

-r:顯示IO相關統計數據

-s:顯示swapped相關統計數據

–tcp:顯示tcp協議

–udp:顯示udp協議

–raw:顯示raw

–socket:顯示tcp、udp、socket等等

–ipc:顯示進程間通訊

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

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

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

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

 

kill命令:向進程發送控制信號,以實現對進程管理;

顯示當前系統可用控制信號:1、kill -l;2、 man 7 signal

常用控制信號:

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

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

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

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

18) SIGCONT:讓停止態的進程運行;

19) SIGSTOP:讓進程處于停止態;

kill [-s signal|-SIGNAL] pid…

 

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

killall?[-s signal|-SIGNAL] pid…

 

Linux系統作業控制:

job:

前臺作業(foregroud):通過終端啟動,且啟動后會一直占據終端;

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

如何讓作業運行于后臺?

(1)運行中的作業

Ctrl+Z ? 注意:送往后臺后,作業會轉為停止態;

(2)尚未啟動的作業

# COMMAND & ? ? 注意:此類作業雖然被送往后臺,但其依然跟終端相關;如何希望送往后臺的作業剝離與終端的關系: # nohup COMMAND &

查看所有的作業列表:jobs

可實現作業控制的常用命令:

# fg [%] 作業號:把指定的作業調回前臺;

# bg?[%] 作業號:讓送往后臺的作業在后臺繼續運行;

# kill?% 作業號:終止對應的作業;

 

調整進程優先級:

可通過nice值調整的優先級范圍:100-139;分別對應于:-20,19

進程啟動時,其nice值默認為0,其優先級為120;

nice命令:以指定的nice值啟動并運行命令;

nice [OPTION] [COMMAND [ARG]…]

選項:-n NICE

注意:僅管理員可調低nice值;

 

renice [-n] NICE pid…:調整正在運行進程的nice值

查看NICE值和優先級:

# ps axo pid,ni,priority,comm

未涉及的命令:sar,tsar,

 

網絡客戶端工具:

ping、lftp、ftp、lftpget、wget等

ping [option]?destination

-c #:發送的ping包個數;

-w #:ping命令超時時長

-W #:一次ping操作中,等待對方響應的超時時長;

-s #:指名ping包報文大??;

 

hping命令:

–fast

–faster

–flood

-i ux

 

traceroute命令:跟蹤從源主機到目標主機之間經過的網關;

 

ftp命令:ftp服務命令行客戶端工具;

 

lftp [-p port] [-u user[,pass]] [site]

get,mget

put,mput

rm,mrm

 

wget [option]… [URL]…

-b:在后臺執行下載操作;

-q:靜默模式,不顯示下載進度;

-O file:下載文件的保存位置;

-c:續傳;

–limit-rate=amount:以指定的速率傳輸文件;

 

bash編程:

順序執行:

選擇執行:if,case

循環執行:for,while,until

 

for循環格式:

for VARAIBLE in LIST;do

循環體

done

 

while循環格式:

進入循環條件:CONDITION測試為“真”;

退出循環條件:CONDITION測試為“假”;

while CONITION;do

循環體

循環控制變量修正表達式

done

 

until循環格式:

進入循環條件:CONDITION測試為“假”;

退出循環條件:CONDITION測試為“真”;

until CONITION;do

循環體

循環控制變量修正表達式

done

例子:打印九九乘法表

#!/bin/bash
#
for j in {1..9};do
for i in $(seq 1 $j);do
echo -n -e “${i}x${j}=$[${i}*${j}]\t”
done
echo
done

 

 

 

 

 

 

 

本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/91504

(1)
N26-深圳-城市蝸牛N26-深圳-城市蝸牛
上一篇 2018-02-08 09:39
下一篇 2018-02-08 16:57

相關推薦

  • tomcat優化

    安裝過程就不多說了,本次主要說明我在實際工作中的一些優化。    1,修改tomcat的運行模式,常見的有 bio,nio, apr三種    我選擇的apr模式,這種對tomcat的性能有較大提高. a:可以根據壓力測試工具來進行測試觀察。(其實我沒對修改apr模式后壓測,我直接問百度的) b:重新啟動tomcat后…

    Linux干貨 2016-06-28
  • HAProxy服務配置

    HAProxy 是一款提供高可用性、負載均衡以及基于TCP(第四層)和HTTP(第七層)應用的代理軟件。 相較與 Nginx,HAProxy 更專注與反向代理,因此它可以支持更多的選項,更精細的控制,更多的健康狀態檢測機制和負載均衡算法。 四層和七層負載均衡的區別: 四層: 通過分析IP層及TCP/UDP層的流量實現的基于“IP+端口”的負載均衡。 七層: …

    Linux干貨 2017-05-19
  • sed

    sed Stream EDitor, 行編輯器 sed是一種流編輯器,它一次處理一行內容。處理時,把當前處理的行存儲在臨時緩沖區中,稱為“模式空間”(pattern space),接著用sed命令處理緩沖區中的內容,處理完成后,把緩沖區的內容送往屏幕。接著處理下一行,這樣不斷重復,直到文件末尾。文件內容并沒有改變,除非使用重定向存儲輸出。 Sed主要用來自動…

    Linux干貨 2017-04-26
  • httpd-2.2和httpd-2.4區別 、請求方法和響應狀態碼、虛擬主機、訪問控制、持久鏈接

    第十周
    The Apache HTTP Server is a powerful, efficient, and extensible web server.
    2018/2/4 16:33

    2018-02-04
  • Bash Shell之數組簡介

    Bash Shell之數組簡介   一、數組基本概念   數組是內存中的存儲空間,連續的多個存儲單元;bash中只支持一維數組,支持稀疏格式 ,參數個數沒有限制。 二、數組基本語法格式   1、聲明一個數組          declare…

    Linux干貨 2015-05-11
  • Linux運維實戰之6:掛載/卸載磁盤分區

    上次博文我們具體討論了Linux系統中磁盤的分區及格式化( http://www.www58058.com/60811),本次博文我們具體來說說分區的掛載哈! 【問題引入】 已經格式化好的分區如何與系統現有的文件系統建立關聯(如何使用新分區)? 新的磁盤分區創建完成并格式化之后需要掛載(或裝入)到目錄樹上才能被使用。 何謂掛載/卸載? 【答】將某個…

    Linux干貨 2016-12-04
欧美性久久久久