首頁 > 軟體

Linux top命令與結束進程命令kill,killall

2020-06-16 16:46:03

一. 實時監測進程 top

  這篇裡講到ps命令在收集進程資訊時非常有用,但它只能顯示某個特定時間點的資訊。想要觀察那些頻繁換進換出的記憶體進程趨勢,用top命令是合適的。使用top命令如下圖所示:
    

  在上圖中分為二部份資訊,一部份是系統的概述,另一部份是列表的進程概述。

  1.1 第一部分

    第一行顯示了當前的系統時間,up是指系統執行時間,user 是指使用者登入數,以及load average是指系統平均負載。
    在平均負載有3個值:最近1分鐘,最近5分鐘,最近15分鐘點。值越大說明系統的負載越高。由於進程短期的突發性活動,出現最近1分鐘的高負載值也很常見。但近15分鐘內平均負載都很高,說明說系統可能有問題。通常系統的負載值超過了2,就說明系統比較繁忙了。

    第二行顯示了進程概要資訊。 Tasks是進程數叫做任務。包括幾種狀態:執行,休眠,停止,僵化。上圖顯示了1個進程執行, 208個進程休眠。

    第三行顯示了CPU概述資訊。us和 sy 是進程的屬主(使用者還是系統)。us 是執行使用者進程的cpu時間。sy 是執行核心進程的cpu時間。  ni 是指niced 執行已調整優先順序的使用者進程cpu時間。 wa 是指IO wait 等待IO完成的cpu時間。Hi是指處理硬體中斷的cpu時間。Si是處理軟體中斷的cpu時間。
    最後二行是系統記憶體的狀態。 第一行說的是系統的實體記憶體總量。Used當前用了多少記憶體。Free還有多少空閒記憶體。Buff/cache快取的記憶體量。第二行說的是系統的交換空間。

  1.2 第二部份
    進程列表顯示了當前執行中的進程詳細列表資訊,跟ps -ef命令輸出類似。

列名

說明

PID

進程ID

USER

進程屬主的名字

PR

進程的優先順序

VIRT

進程佔用的虛擬記憶體總量

RES

進程佔用的實體記憶體總量

SHR

進程與其它進程共用的記憶體總量

S

進程狀態(D可中斷的休眠狀態,R執行,S休眠,T停止,Z僵化)

%CPU

進程使用的CPU時間比例

%MEM

進程使用的記憶體佔可用記憶體的比例

TIME+

進程啟動到現在Cpu時間總量

    預設情況下,top命令會按照%CPU值對進程排序。當top命令執行監控時,可以使用多種互動命令。例如按下f 鍵允許你選擇對輸出進行排序欄位,預設是%CPU欄位排序。按d鍵允許修改輪詢間隔,按q鍵退出t監控。使用這個工具能經常找出佔用系統大部份資源的進程。
    下圖是在top監控時,按下f鍵,選擇要排序的欄位。

      

二.結束進程kill與killall

    當管理員找到了佔用系統大部份資源的進程時,可能需要手動結束該進程。

  2.1 kill 命令

    Kill命令通過進程ID(PID)給進程發信號。要傳送進程信號,必須是進程的屬主或登入為root使用者,下圖是檢視一個mysqld服務進程。
    

    下面通過kill 來結束mysqld服務進程。

    

    再來檢視mysqld進程是否在執行,如下圖已不存在
    

  2.2 killall 命令 

    該命令非常強大,它通過支援進程名而不是PID來結束進程。Killall命令也支援萬用字元。萬用字元如下,刪除字首有mysql的字元進程.使用進要小心,有可能結束的重要的系統進程。
    

    下面是通過進程名來刪除mysqld.pid進程,同樣刪除後mysqld.pid進程不存在了。
    


IT145.com E-mail:sddin#qq.com