進程管理

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
下一篇 2016-09-10

相關推薦

  • lvs實踐(lvs+nginx+mariadb+php—fpm+nfs搭建wordpress)

    lvs實踐(lvs+nginx+mariadb+php—fpm+nfs搭建wordpress)   lvs實踐(lvs+nginx+mariadb+php—fpm+nfs搭建wordpress) lvs_dr模型 nginx mariadb php-fpm wordpress   lvs實踐(lvs+nginx+mariadb+php—f…

    2017-01-03
  • Python 數據結構

    python 內置數據結構python 內置數據結構數字的處理函數: round() 五舍六入 ? ? ? 2.5 ?2 ? ? 2.6 ? ?3 floor() 向下取整 ? ? ? 2.5 ?2 ? ? 2.6 ? ?2 ceil() 向上取整 ? ? ? 2.5 ?3 ? ? 2.6 ? ?3 min() 取最小的 ? ? ? 1,2,3 ? ? ?1…

    Linux干貨 2017-09-23
  • 文件系統的掛載使用總結

    文件系統使用 除根文件系統以外的文件系統創建后要使用需要先掛載至掛載點后才可以被訪問,掛載點即分區設備文件關聯的某個目錄文件,掛載命令mount和 卸載命令umount; 掛載點: mount_point,作為被掛載的文件系統的訪問入口; 作為掛載點需要滿足三個條件:  (1)這個目錄事先存在  (2)使用未被或不會被其他進程使用到的目錄…

    系統運維 2016-11-19
  • 第五周 程序包管理

    1、簡述tar命令的常見選項,并舉例 tar——? 文件壓縮與解壓? ?? ★命令格式 tar [OPTION…] [FILE]…  創建歸檔(-c,-f 指定文件): tar -c -f?/PATH/TO/SOMEFILE.tar ?FILE…?(后綴名固定以 .tar 結尾;) tar -cf /PATH/TO/SOM…

    2017-12-31
  • N22-love cat第19周 – 基于Apache + Tomcat +2種模式實現負載均衡以及配置集群seesion服務

      基于Apache+Tomcat實現負載均衡和集群服務 一、概念     從Tomcat權威指南中的測試數據,我們不難發現,對于靜態頁面的數據,Tomcat的處理速度比Apache要快很多,所以為什么要整合apache雖然在處理靜態頁面速度上比Apache快,但是Tomcat經不起大的并發量容易死。為此,我們就需要A…

    Linux干貨 2016-08-29
  • corosync + pacemaker搭建高可用http

    一、實驗圖:    二、實驗環境準備:  1)時間同步(172.16.2.15是時間服務器) [root@web1 ~]# crontab  -e   */5 * * * * /usr/sbin/ntpdate&nbsp…

    Linux干貨 2015-06-30
欧美性久久久久