進程管理

1、ps命令

查看當前時刻的進程狀態,通過此命令可以確定有哪些進程正在運行和運行的狀態、進程是否結束、進程有沒有僵死、哪些進程占用了過多的資源等等

進程狀態:
    運行態:running
    就緒態:ready
    睡眠態:
        可中斷:interruptable
        不可中斷:uninterruptable
    停止態:stopped, 暫停于內存中,但不會被調度,除非手動啟動
    僵死態:zombie,父進程結束了,但是子進程卻沒結束

(1)語法

ps [options]
options有三種風格:
    1   UNIX options, which may be grouped and must be preceded by a dash.(如 -A -a)
    2   BSD options, which may be grouped and must not be used with a dash.(如 a g)
    3   GNU long options, which are preceded by two dashes.(如 --deselect)

(2)常用選項

a 顯示包括所有終端中的進程
x 顯示包括不鏈接終端的進程(不確定終端的用?表示)
u 顯示進程所有者的信息
f 顯示進程的父進程
o 屬性…  顯示定制的信息
-e 顯示所有進程
-f 顯示完整格式的進程信息
-F 顯示完整格式的進行信息(更詳細)
-H 以層級結構顯示進程的相關信息

進程管理

(3)常用組合

1)ps aux

[root@linuxpao network-scripts]# ps aux
USER        PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root          1  0.0  1.1 192240  5692 ?        Ss   08:27   0:10 /usr/lib/systemd/systemd --switched-root
root          2  0.0  0.0      0     0 ?        S    08:27   0:00 [kthreadd]
root          3  0.0  0.0      0     0 ?        S    08:27   0:00 [ksoftirqd/0]
root          5  0.0  0.0      0     0 ?        S<   08:27   0:00 [kworker/0:0H]
root          7  0.0  0.0      0     0 ?        S    08:27   0:00 [migration/0]
root          8  0.0  0.0      0     0 ?        S    08:27   0:00 [rcu_bh]
root          9  0.0  0.0      0     0 ?        S    08:27   0:00 [rcuob/0]

......


USER:進程的發起者        
PID:進程號
%CPU:進程使用掉的CPU資源百分比
%MEM:進程占用的物理內存百分比    
VSZ:進程使用掉的虛擬內存大小,單位KB   
RSS:進程占用的固定內存大小,單位KB (常駐內存集)
TTY:進程在哪個終端運行      
STAT:進程目前的狀態 
START:進程被觸發的時間   
TIME:進程實際使用CPU時間 
COMMAND:觸發此進程的命令

STAT的狀態說明:
    <:該進程運行在高優先級上
    N:該進程運行在低優先級上
    L:該進程有頁面鎖定在內存中
    R:運行中
    s:該進程是控制進程
    l:該進程是多線程
    +:該進程運行在前臺  
    O:代表正在運行
    S:休眠狀態
    R:可運行,正等待運行
    Z:僵死
    T:停止

2)ps -ef

UID         PID   PPID  C STIME TTY          TIME CMD
root          1      0  0 08:27 ?        00:00:11 /usr/lib/systemd/systemd --switched-root --system --dese
root          2      0  0 08:27 ?        00:00:00 [kthreadd]
root          3      2  0 08:27 ?        00:00:00 [ksoftirqd/0]
root          5      2  0 08:27 ?        00:00:00 [kworker/0:0H]
root          7      2  0 08:27 ?        00:00:00 [migration/0]
root          8      2  0 08:27 ?        00:00:00 [rcu_bh]

......

UID:進程的發起者
PID:進程號
PPID:父進程號
C:進程生命周期中的CPU利用率
STIME:進程啟動時的系統時間
TTY:進程是由哪個終端啟動的
TIME:運行進程需要的累計CPU時間
CMD:觸發此進程的命令

3)ps axo

o選項自定義的字段:
    pid ni pri pcpu psr stat comm tty ppid euser ruser %cpu %mem rtprio ...

[root@linuxpao network-scripts]# ps axo pid,comm,state,%cpu,pri,tty
   PID COMMAND         S %CPU PRI TT
     1 systemd         S  0.0  19 ?
     2 kthreadd        S  0.0  19 ?
     3 ksoftirqd/0     S  0.0  19 ?
     5 kworker/0:0H    S  0.0  39 ?
     7 migration/0     S  0.0 139 ?
     8 rcu_bh          S  0.0  19 ?
     9 rcuob/0         S  0.0  19 ?
    10 rcuob/1         S  0.0  19 ?
    11 rcuob/2         S  0.0  19 ?

    ......

4)ps -eFH

[root@linuxpao network-scripts]# ps -eFH
UID         PID   PPID  C    SZ   RSS PSR STIME TTY          TIME CMD
root          2      0  0     0     0   1 08:27 ?        00:00:00 [kthreadd]
root          3      2  0     0     0   0 08:27 ?        00:00:00   [ksoftirqd/0]
root          5      2  0     0     0   0 08:27 ?        00:00:00   [kworker/0:0H]
root          7      2  0     0     0   0 08:27 ?        00:00:00   [migration/0]
root          8      2  0     0     0   0 08:27 ?        00:00:00   [rcu_bh]
root          9      2  0     0     0   0 08:27 ?        00:00:00   [rcuob/0]
root         10      2  0     0     0   0 08:27 ?        00:00:00   [rcuob/1]
root         11      2  0     0     0   0 08:27 ?        00:00:00   [rcuob/2]
root         12      2  0     0     0   0 08:27 ?        00:00:00   [rcuob/3]

......

SZ:假如進程被換出,所需交換空間的大小
PSR:當前進程被分配給哪個處理器

5)ps -l

[root@linuxpao network-scripts]# ps -l
F S   UID    PID   PPID  C PRI  NI ADDR SZ WCHAN  TTY          TIME CMD
4 S     0   9241   9237  0  80   0 - 29261 wait   pts/3    00:00:03 bash
0 R     0  15408   9241  0  80   0 - 34343 -      pts/3    00:00:00 ps

F:內核分配給進程的系統標記
S:進程的狀態(O S T R Z )
NI:nice值,用來參與決定優先級
ADDR:進程的內存地址
WCHAN:進程休眠的內核函數的地址

2、top命令

實時顯示系統進程的狀態

(1)語法

top [option]

(2)選項

-d:后接秒數,即整個進程界面更新的秒數,默認3秒
-b:以批次的方式執行top,常與重定向連用
-n:與-b搭配,意義是,需要進行幾次top的輸出結果
-p:指定某個PID來進行查看檢測而已

在top的執行過程當中可以使用按鍵命令:

?:顯示在top當中可以輸入的按鍵命令
P:以占據的CPU百分比大小排序
M:以占據的內存百分比大小排序
N:以PID排序
T:以CPU累積占用時間排序
k:給予某個PID一個信號
r:給予某個PID重新制定一個nice值
q:退出top程序
s:修改延遲的時長
l:是否顯示系統負載行(最頂行)
t:是否顯示進程摘要信息及CPU負載狀態(2、3行)
1:數字1,平均或單獨顯示CPU的負載狀態

(3)top命令界面介紹

進程管理

top – 14:55:09  up  6:27,  3 users,  load average: 0.04, 0.03, 0.05

14:55:09:當前的系統時間    
up  6:27:系統啟動到目前為止所經過的時間
3 users:當前系統中的用戶數量
load average:系統在1,5,15分鐘的平均負載,若高于1表示系統壓力過大

Tasks: 428 total,   1 running, 427 sleeping,   0 stopped,   0 zombie

顯示的是目前進程的總量與個別進程的狀態,特別需要注意zombie狀態

%Cpu(s):  0.5 us,  1.0 sy,  0.0 ni, 98.5 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st

CPU的整體負載,可以使用?查看
    us :用戶空間
    sy :內核空間
    ni :調整nice 時間
    id :空閑
    wa :等待IO 時間
    hi :硬中斷
    si :軟中斷(模式切換)
    st :虛擬機偷走的時間

KiB Mem :   485280 total,     9348 free,   303228 used,   172704 buff/cache

物理內存的使用狀態

KiB Swap:  2098172 total,  1881740 free,   216432 used.   117220 avail Mem

虛擬內存使用狀態,若swap被大量使用,則表示物理內存不足了

PID  USER      PR  NI    VIRT    RES    SHR S  %CPU %MEM     TIME+ COMMAND

PID:每個進程的PID 
USER:進程的使用者      
PR:進程的優先級,值越小優先級越高  
NI:nice值    
VIRT:進程需要的虛擬內存大小,而非使用的虛擬內存    
RES:進程當前使用的內存大小,不包括swap    
SHR:進程與其他進程共享的內存大小,可以通過RES-SHR來計算進程所占用的物理內存大小
S:進程的狀態 
%CPU:CPU的使用率 
%MEM:內存的使用率     
TIME+:CPU使用的時間累積 
COMMAND:觸發進程的命令

3、vmstat命令

顯示虛擬內存信息

(1)語法

vmstat [options] [delay [count]]

(2)用法解釋

[root@linuxpao ~]# vmstat  1 3
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0 216408  10636     36 172748    2    5   100     8   49   61  0  1 99  0  0
 0  0 216408  10620     36 172748    0    0     0     0   64   96  0  0 100  0  0
 0  0 216408  10620     36 172748    0    0     0     0   53   73  0  0 100  0  0

procs
    r:等待運行的進程個數
    b:不可中斷睡眠狀態的進程的個數
memory
    swpd:swap使用量
    free:空閑的物理內存量
    buffer:用于buffer的內存總量
    cache:用于cache的內存總量
swap
    si:數據進入swap的速率(kb/s)
    so:數據離開swap的速率(kb/s)
io
    bi:從塊設備讀入數據到系統的速率(kb/s)
    bo:保存數據至塊設備的速率(kb/s)
system
    in:中斷速率,每秒被中斷的次數
    cs:進程切換的速率
cpu
    us:用戶運行程序占用CPU的百分比
    sy:用于運行內核占用的CPU百分比
    id:空閑CPU百分比
    wa:等待I/O花費的時間
    st:被虛擬機偷走的內存百分比

4、dstat命令

全能的系統信息統計工具,可以實時的監控cpu、磁盤、網絡、IO、內存等使用情況

(1)語法

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

(2)選項

-c:顯示CPU性能指標相關的統計數據
-d:顯示disk相關的速率數據
-g:顯示page相關的速率數據
-i:顯示interrupt相關的統計數據
-l:顯示load average相關的統計數據
-m:顯示memory相關的統計數據
-n:顯示網絡收發數據的速率
-p:顯示進程相關的統計數據
-r:io請求的速率
-s:顯示swap的相關數據
-y:顯示系統相關的數據,包括中斷和進程切換
--top-cpu:顯示最占用CPU的進程
--top-bio:顯示最小號block io的進程
--top-io:最占io的進程
--top-mem:最占內存的進程
--ipc:顯示進程間通信相關的速率數據
--raw:顯示raw套接字的相關數據
-tcp:顯示tcp套接字的相關數據
--udp:顯示udp套接字的相關數據
--unix:顯示unix sock接口相關的統計數據

(3)用法解釋

[root@linuxpao network-scripts]# dstat 
You did not select any stats, using -cdngy by default.
----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system--
usr sys idl wai hiq siq| read  writ| recv  send|  in   out | int   csw 
  0   1  99   0   0   0| 186k   14k|   0     0 |4188B   10k|  95   118 
  1   4  96   0   0   0|   0     0 |1510B  842B|   0     0 | 205   216 
  0   1 100   0   0   0|   0     0 |1510B  346B|   0     0 |  52    65 

total-cpu-usage
    CPU的使用率
dsk/total
    磁盤讀寫總數
net/total
    網絡設備發送和接收的數據總數
paging
    系統的分頁活動。分頁指的是一種內存管理技術,用于查找系統場景,一個較大的分頁表明系統正在使用大量的交換空間,或者說內存非常分散。
system
    顯示系的中斷(int)和上下文切換(csw),若此欄統計值較高則表示大量的進程造成擁塞

5、kill命令

向進程發送信號指令,如終止進程、重讀文件等

(1)當前系統的信號名稱

[root@linuxpao ~]# kill -l
 1) SIGHUP   2) SIGINT   3) SIGQUIT  4) SIGILL   5) SIGTRAP
 6) SIGABRT  7) SIGBUS   8) SIGFPE   9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT   17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG  24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF 28) SIGWINCH    29) SIGIO   30) SIGPWR
31) SIGSYS  34) SIGRTMIN    35) SIGRTMIN+1  36) SIGRTMIN+2  37) SIGRTMIN+3
38) SIGRTMIN+4  39) SIGRTMIN+5  40) SIGRTMIN+6  41) SIGRTMIN+7  42) SIGRTMIN+8
43) SIGRTMIN+9  44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9  56) SIGRTMAX-8  57) SIGRTMAX-7
58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4  61) SIGRTMAX-3  62) SIGRTMAX-2
63) SIGRTMAX-1  64) SIGRTMAX

(2)常用信號

1) SIGHUP:通知進程重讀配置文件讓新配置生效   
2) SIGINT:中斷正在進行的進程,相當于 Ctrl+C
3) SIGQUIT:退出程序,相當于 Ctrl+\
9) SIGKILL:強行終止正在運行中的進程 
15) SIGTERM:安全終止正在運行的進程(默認)
18) SIGCONT:繼續運行指定的進程(后臺)
19) SIGSTOP:暫停進程(后臺休眠),相當于 Ctrl+Z

原創文章,作者:pao,如若轉載,請注明出處:http://www.www58058.com/45138

(0)
paopao
上一篇 2016-09-10 12:30
下一篇 2016-09-10 13:22

相關推薦

  • 2017-10-4Linux基礎知識(3)

    在上一章中講到了操作系統的歷史的發展以及Linux的如何誕生,在1991年的8月份,創始人Linus宣布成立Linux的,Larry Wall開發diff和patch打補丁的命令程序使得Linux可以在安全性方面有很大的提升。

    Linux干貨 2017-10-05
  • sed 和 vim 的 用法

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

    Linux干貨 2016-08-12
  • Hive深入淺出

    1.  Hive是什么 1) Hive是什么? 這里引用 Hive wiki 上的介紹: Hive is a data warehouse infrastructure built on top of Hadoop. It provides tools to enable easy data ETL, a mechanism to put stru…

    Linux干貨 2016-03-22
  • 初入馬哥教育的感受

    記錄來馬哥教育的點滴記錄及感受。。

    Linux干貨 2018-03-26
  • hadoop安全模式

    hadoop安全模式在分布式文件系統啟動的時候,開始的時候會有安全模式,當分布式文件系統處于安全模式的情況下,文件系統中的內容不允許修改也不允許刪除,直到安全模式結束。安全模式主要是為了系統啟動的時候檢查各個DataNode上數據塊的有效性,同時根據策略必要的復制或者刪除部分數據塊。運行期通過命令也可以進入安全模式。在實踐過程中,系統啟動的時候去修改和刪除文…

    Linux干貨 2015-04-13
  • 20171123 Shell編程

    Shell編程的基本知識點

    2017-11-23
欧美性久久久久