Linux-進程的觀察

16.1.1 進程與程序bash

 

  • ·程序 (program):一般爲 binary program ,放置在儲存媒體中 (如硬盤、光盤、軟盤、磁帶等), 爲實體文 件的型態存在;
  • ·進程 (process):程序被觸發後,執行者的權限與屬性、程序的程序代碼與所需數據等都會被加載內存中, 操做系統並給予這個內存內的單元一個標識符 (PID),能夠說,進程就是一個正在運做中的程序

 

第一個 bash 的 PID 與第二個 bash 的 PPID 都是 13928 啊, 由於第二個 bash 是來自於第一個所產生的嘛!服務器

 

常駐在內存當中的進程一般都是負責一些系統所提供的功能以服務用戶各項任務,所以這些常駐程序 就會被咱們稱爲:服務 (daemon)。因此,通常 daemon 類型的程序都會加上 d 在文件名後頭~包括服務器篇咱們會看到的 httpd, vsftpd。網絡

 

16.3.1 進程的觀察spa

 

ps :將某個時間點的進程運做狀況擷取下來。操作系統

 

[root@study ~]# ps aux <==觀察系統全部的進程數據 

[root@study ~]# ps -lA <==也是可以觀察全部系統的數據 

[root@study ~]# ps axjf <==連同部分進程樹狀態

  

  

 

選項與參數:code

-A :全部的 process 均顯示出來,與 -e 具備一樣的效用;orm

-a :不與 terminal 有關的全部 process ;blog

-u :有效使用者 (effective user) 相關的 process ;排序

x :一般與 a 這個參數一塊兒使用,可列出較完整信息。進程

輸出格式規劃:

l :較長、較詳細的將該 PID 的的信息列出;

j :工做的格式 (jobs format)

-f :作一個更爲完整的輸出。

 

經常使用的:

一個是隻能查閱本身 bash 進程的『 ps -l 』

一個則是可 以查閱全部系統運做的進程『 ps aux 』!

 

[agan@localhost root]$ ps -l 
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 
4 S 1000 1971 1970 0 80 0 - 28862 do_wai pts/0 00:00:00 bash
0 R 1000 2013 1971 0 80 0 - 38312 - pts/0 00:00:00 ps

 

 

S:表明這個進程的狀態 (STAT),主要的狀態有:

  • § R (Running):該程序正在運做中;
  • § S (Sleep):該程序目前正在睡眠狀態(idle),但能夠被喚醒(signal)。
  • § D :不可被喚醒的睡眠狀態,一般這支程序可能在等待 I/O 的狀況(ex>打印)
  • § T :中止狀態(stop),多是在工做控制(背景暫停)或除錯 (traced) 狀態;
  • § Z (Zombie):殭屍狀態,進程已經終止但卻沒法被移除至內存外。
  • PRI/NI:Priority/Nice 的縮寫,表明此進程被 CPU 所執行的優先級,數值越小表明該進程越快被 CPU 執行
  • ADDR/SZ/WCHAN:都與內存有關,ADDR 是 kernel function,指出該進程在內存的哪一個部分,若是是個 running 的進程,通常就會顯示『 - 』 / SZ 表明此進程用掉多少內存 / WCHAN 表示目前進程是否運做中, 一樣的, 若爲 - 表示正在運做中。
  • TIME:使用掉的 CPU 時間,注意,是此進程實際花費 CPU 運做的時間,而不是系統時間;

 

[agan@localhost root]$ ps aux 
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.3 127952 6516 ? Ss 05:01 0:01 /usr/lib/systemd/systemd --switched-root --system --d root 2 0.0 0.0 0 0 ? S 05:01 0:00 [kthreadd]
root 4 0.0 0.0 0 0 ? S< 05:01 0:00 [kworker/0:0H]
root 6 0.0 0.0 0 0 ? S 05:01 0:00 [ksoftirqd/0]
root 7 0.0 0.0 0 0 ? S 05:01 0:00 [migration/0]
root 8 0.0 0.0 0 0 ? S 05:01 0:00 [rcu_bh]
root 9 0.0 0.0 0 0 ? S 05:01 0:00 [rcu_sched]

 

 

  • § VSZ :該 process 使用掉的虛擬內存量 (Kbytes)
  • § RSS :該 process 佔用的固定的內存量 (Kbytes)
  • § TTY :該 process 是在那個終端機上面運做,若與終端機無關則顯示 ?,另外, tty1-tty6 是本機上面的登 入者進程,若爲 pts/0 等等的,則表示爲由網絡鏈接進主機的進程。
  • § STAT:該進程目前的狀態,狀態顯示與 ps -l 的 S 旗標相同 (R/S/T/Z)

 

top:動態觀察進程的變化

[root@localhost ~]# top [-d 數字] | top [-bnp]
  • -b :以批次的方式執行 top ,還有更多的參數可使用喔! 一般會搭配數據流重導向來將批次的結果輸出成爲文件。
  • -n :與 -b 搭配,意義是,須要進行幾回 top 的輸出結果。
  • -p :指定某些個 PID 來進行觀察監測而已。

在 top 執行過程中可使用的按鍵指令:

  • ? :顯示在 top 當中能夠輸入的按鍵指令;
  • P :以 CPU 的使用資源排序顯示;
  • M :以 Memory 的使用資源排序顯示;
  • N :以 PID 來排序喔!
  • T :由該 Process 使用的 CPU 時間累積 (TIME+) 排序。
  • k :給予某個 PID 一個訊號 (signal)
  • r :給予某個 PID 從新制訂一個 nice 值。
  • q :離開 top 軟件的按鍵。

 

top - 17:53:08 up 12:51, 2 users, load average: 0.00, 0.00, 0.00 
Tasks: 105 total, 1 running, 104 sleeping, 0 stopped, 0 zombie 
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st 
KiB Mem : 1863104 total, 1569792 free, 142924 used, 150388 buff/cache 
KiB Swap: 2097148 total, 2097148 free, 0 used. 1561264 avail Mem 
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 
1 root 20 0 127952 6516 4104 S 0.0 0.3 0:01.36 systemd 
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd 
4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H 
6 root 20 0 0 0 0 S 0.0 0.0 0:00.02 ksoftirqd/0 
7 root rt 0 0 0 0 S 0.0 0.0 0:00.01 migration/0
8 root 20 0 0 0 0 S 0.0 0.0 0:00.00 rcu_bh 
9 root 20 0 0 0 0 S 0.0 0.0 0:00.74 rcu_sched 
10 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 lru-add-drain
11 root rt 0 0 0 0 S 0.0 0.0 0:00.26 watchdog/0 
12 root rt 0 0 0 0 S 0.0 0.0 0:00.36 watchdog/1

  

  

 

依次顯示信息:

1->當前時間、開機時間、同時使用用戶數,系統在 1, 5, 15 分鐘的平均工做負載。

2->顯示的是目前進程的總量與個別進程在什麼狀態(running, sleeping, stopped, zombie)

3->顯示的是 CPU 的總體負載

四、5->表示目前的物理內存與虛擬內存 (Mem/Swap) 的使用狀況

6->輸入指令,顯示狀態的地方

 

範例二:將 top 的信息進行 2 次,而後將結果輸出到 /tmp/top.txt 
[root@study ~]# top -b -n 2 > /tmp/top.tx

 

範例三:咱們本身的 bash PID 可由 $$ 變量取得,請使用 top 持續觀察該 PID 
[root@study ~]# echo $$ 14836 <==就是這個數字!他是咱們 bash 的 PID
[root@study ~]# top -d 2 -p 14836 top - 01:00:53 up 6:14, 3 users, load average: 0.00, 0.01, 0.05 
Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie %Cpu(s):0.0 us, 0.1 sy, 0.0 ni, 99.9 id, KiB Mem : 2916388 total, 1839264 free, 0.0 wa, 0.0 hi, 353424 used, 0.0 si, 0.0 st 723700 buff/cache 
KiB Swap: 1048572 total, 1048572 free, 0 used. 2318848 avail Mem
 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 
14836 root 20 0 116272 3136 1848 S 0.0 0.1 0:00.07 bash

 

若是以爲內存以KB爲單位不方便監控,能夠按下E,則分別以KB、MB、GB、TB、PB、EB單位顯示

相關文章
相關標籤/搜索