2021-05-12 14:32:11
Linux top命令與結束進程命令kill,killall
一. 實時監測進程 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進程不存在了。
相關文章