Ⅰ 按內存佔用排序和按CPU佔用排序的linux TOP命令
在Linux TOP命令中,按內存佔用排序和按CPU佔用排序的方法如下:
按CPU佔用排序:
按內存佔用排序:
這兩種排序方式可以幫助系統管理員快速識別出系統中資源佔用較高的進程,從而進行相應的優化或調整。
Ⅱ linux內存使用大小排序
可以直接輸入top
然後 按P – 以 CPU 佔用率大小的順序排列進程列表
按M – 以內存佔用率大小的順序排列進程列表
另外,查看某一應用佔用內存大小
方法一:通過進程號查看
# 例如查看kafka資源使用情況
# 查看kafka進程號
ps -ef | grep kafka
# 查看進程號佔用資源(159156為ps得到的進程號)
top -p 159156
# 或者查看進程的status文件(159156為ps得到的進程號) ,VmRSS對應的值就是物理內存佔用
cat /proc/159156/status
方法2:ps命令直接使用任務名
# 顯示的第六個參數就是物理內存佔用
ps -aux | grep kafka
# 查看內存佔用前10名的程序
ps aux | sort -k4,4nr | head -n 10
3)對free -h 查看到的buff/cache 進行回收
# 在系統中除了內存將被耗盡的時候可以清緩存以外,我們還可以使用下面這個文件來人工觸發緩存清除的操作
cat /proc/sys/vm/drop_caches
# 這個文件可以設置的值分別為1、2、3。它們所表示的含義為:
# 表示清除 page cache。
echo 1 > /proc/sys/vm/drop_caches
# 表示清除回收 slab 分配器中的對象(包括目錄項緩存和 inode 緩存)。slab 分配器是內核中管理內存的一種機制,其中很多緩存數據實現都是用的 page cache。
echo 2 > /proc/sys/vm/drop_caches
# 表示清除 page cache 和 slab 分配器中的緩存對象。
echo 3 > /proc/sys/vm/drop_caches
Ⅲ 查看LINUX進程內存佔用情況
在Linux系統中,查看進程內存佔用情況可以通過以下幾種方法:
使用top命令:
使用pmap命令:
使用ps命令:
以上方法均可以幫助你在Linux系統中查看進程的內存佔用情況,根據實際需求選擇合適的方法即可。
Ⅳ 按內存佔用排序和按CPU佔用排序的Linux TOP命令
Linux TOP命令默認是CPU佔用排序,按M可以切換到按內存佔用排序。這是系統維護和電腦內存維護。可以切換的。不同的用法,達到不同的效果。以下是關於這兩個的詳細說明。
P – 以 CPU 佔用率大小的順序排列進程列表
M – 以內存佔用率大小的順序排列進程列表
在系統維護的過程中,隨時可能有需要查看 CPU 使用率,並根據相應信息分析系統狀況的需要。在 CentOS 中,可以通過 top 命令來查看 CPU 使用狀況。運行 top 命令後,CPU 使用狀態會以全屏的方式顯示,並且會處在對話的模式 — 用基於 top 的命令,可以控制顯示方式等等。退出 top 的命令為 q (在 top 運行中敲 q 鍵一次)。
在命令行中輸入 「top」 即可啟動 top ,top 的全屏對話模式可分為3部分:系統信息欄、命令輸入欄、進程列表欄。
第一部分 — 最上部的 系統信息欄 :
第一行(top):
「14:55:59」為系統當前時刻;
「4 days, 5:52」為系統啟動後到現在的運作時間;
「1 user」為當前登錄到系統的用戶,更確切的說是登錄到用戶的終端數 — 同一個用戶同一時間對系統多個終端的連接將被視為多個用戶連接到系統,這里的用戶數也將表現為終端的數目;
「load average」為當前系統負載的平均值,後面的三個值分別為1分鍾前、5分鍾前、15分鍾前進程的平均數,一般的可以認為這個數值超過 CPU 數目時,CPU 將比較吃力的負載當前系統所包含的進程;
第二行(Tasks):
「12 total」為當前系統進程總數;
「1 running」為當前運行中的進程數;
「11 sleeping」為當前處於等待狀態中的進程數;
「0 stoped」為被停止的系統進程數;
「0 zombie」為被復原的進程數;
第三行(Cpus):
分別表示了 CPU 當前的使用率;
第四行(Mem):
分別表示了內存總量、當前使用量、空閑內存量、以及緩沖使用中的內存量;
第五行(Swap):
表示類別同第四行(Mem),但此處反映著交換分區(Swap)的使用情況。通常,交換分區(Swap)被頻繁使用的情況,將被視作物理內存不足而造成的。
第二部分 — 中間部分的內部命令提示欄:
top 運行中可以通過 top 的內部命令對進程的顯示方式進行控制。內部命令如下表:
s – 改變畫面更新頻率
l – 關閉或開啟第一部分第一行 top 信息的表示
t – 關閉或開啟第一部分第二行 Tasks 和第三行 Cpus 信息的表示
m – 關閉或開啟第一部分第四行 Mem 和 第五行 Swap 信息的表示
N – 以 PID 的大小的順序排列表示進程列表
P – 以 CPU 佔用率大小的順序排列進程列表
M – 以內存佔用率大小的順序排列進程列表
h – 顯示幫助
n – 設置在進程列表所顯示進程的數量
q – 退出 top
s – 改變畫面更新周期
第三部分 — 最下部分的進程列表欄:
以 PID 區分的進程列表將根據所設定的畫面更新時間定期的更新。通過 top 內部命令可以控制此處的顯示方式。
一般的,我們通過遠程監控的方式對伺服器進行維護,讓伺服器本地的終端實時的運行 top ,是在伺服器本地監視伺服器狀態的快捷便利之一。
ubuntu進程管理方法
ps 顯示當前進程
ps -l 顯示詳細信息
ps -u 以用戶的格式顯示
相關欄位說明
F 進程狀態標志
S 進程狀態代碼
UID 進程執行者ID
PPID 父進程標識(parent process ID)
PRI 進程執行的優先順序(priority)
NI 進程執行優先順序的nice值,負值表示其優先順序較高
SZ 進程佔用的內存大小
WCHAN 進程或系統調用等待時的地址
%CPU cpu使用百分比
%MEM 內存使用百分比
VSZ 佔用虛擬內存大小
RSS 佔用物理內存大小
START 進程開始時間
kill 刪除進程
kill pid 刪除指定pid的進程
kill -l 查看所有可供傳送的信號
kill -9 pid 強制刪除進程,傳送的是SIGKILL信號
kill -15 pid 強制刪除進程,傳送的是SIGTERM信號
kill -HUP pid 重啟Deamon進程
free 查看內存使用狀態
free -s 10 每10秒檢查內存使用情況
nice 設置執行優先順序,-20~19,19最低
sudo nice –2 vi 將vi的優先順序調為-2
renice 修改執行優先順序,-20~19,19最低
top 動態顯示進程
按」P」鍵 按CPU使用時間排序
按」M」鍵 按內存使用多少排序
按」T」鍵 按執行時間多少排序
按」u」鍵 監視特定用戶
按」K」鍵 刪除進程
top -d 10 指定更新時間
lsof -p 查看進程打開的文件
jobs 命令查看後台作業
ubuntu結束進程方法
1、打開終端
2、敲 ps -ef 查出進程的編號(就是PID那列)
3、敲 kill PID (如果PID是123456,則kill 123456)
4、OK了
在本地Ubuntu Linux系統運行大軟體的時候,或者伺服器長時間運行後,由於有些設計有缺陷的軟體,容易出現假死的情況!
那程序假死了以後,我們該怎麼辦呢?其實這個 問題其實說簡單也簡單,直接結束進程不就OK了嘛!就像我們在Windows下面做的一樣!下面來介紹幾種Ubuntu Linux下面結束進程的幾種方法!
最安全殺死進程的方法
殺死進程最安全的方法是單純使用kill命令,不加修飾符,不帶標志。
首先使用ps -ef命令確定要殺死進程的PID,然後輸入以下命令:
#kill -pid
注釋:標準的kill命令通常都能達到目的。終止有問題的進程,並把進程的資源釋放給系統。然而,如果進程啟動了子進程,只殺死父進程,子進程仍在運行,因此仍消耗資源。為了防止這些所謂的「僵屍進程」,應確保在殺死父進程之前,先殺死其所有的子進程。
還可以使用如下命令來確定要殺死進程的PID或PPID
# ps -ef | grep httpd
以最優雅的方式來結束進程
# kill -l PID
-l選項告訴kill命令用好像啟動進程的用戶已注銷的方式結束進程。當使用該選項時,kill命令也試圖殺死所留下的子進程。但這個命令也不是總能成功--或許仍然需要先手工殺死子進程,然後再殺死父進程。
TERM信號
給父進程發送一個TERM信號,試圖殺死它和它的子進程。
# kill -TERM PPID
killall命令
killall命令殺死同一進程組內的所有進程。其允許指定要終止的進程的名稱,而非PID。
# killall httpd
停止和重啟進程
有時候只想簡單的停止和重啟進程。如下:
# kill -HUP PID
該命令讓Linux和緩的執行進程關閉,然後立即重啟。在配置應用程序的時候,這個命令很方便,在對配置文件修改後需要重啟進程時就可以執行此命令。
絕殺 kill -9 PID
同意的 kill -s SIGKILL
這個強大和危險的命令迫使進程在運行時突然終止,進程在結束後不能自我清理。危害是導致系統資源無法正常釋放,一般不推薦使用,除非其他辦法都無效。
當使用此命令時,一定要通過ps -ef確認沒有剩下任何僵屍進程。只能通過終止父進程來消除僵屍進程。如果僵屍進程被init收養,問題就比較嚴重了。殺死init進程意味著關閉系統。
如果系統中有僵屍進程,並且其父進程是init,而且僵屍進程佔用了大量的系統資源,那麼就需要在某個時候重啟機器以清除進程表了