Linux怎麼檢視程序資源使用情況
本頭條號每天堅持更新原創乾貨技術文章,歡迎關注本頭條號。
如需學習視訊,請在微信搜尋公眾號“智傳網優”直接開始自助視訊學習
1. 前言
本文主要講解在Linux系統如何檢視程序資源使用的情況。本文將會介紹多個命令列工具。
在本教程中,您將學習到以下知識:
- 如何使用ps命令檢視程序的基本資訊
- 如何使用top命令檢視程序佔用的CPU和記憶體的情況。
- 如何使用nethogs命令檢視程序實時的網路連線速度
- 如何使用ss命令檢視程序佔用的埠號
- 如何使用lsof命令檢視程序佔用的檔案。
Linux怎麼檢視程序資源使用情況
實施準備工作:
- 1. 主流Linux系統
- 2. 具有root許可權
- 3. 具有域名控制權,可做DNS對映,比如域網與IP的對映
- 4. 熟悉Linux基本命令列操作,比如vi命令
軟體工具清單:
- 1. ps:用於檢視程序基本資訊。
- 2. top:檢視程序佔用的資源情況。
- 3. nethogs:檢視程序實時的網路連線速度
- 4. ss:檢視程序佔用的埠號
- 5. lsof:檢視程序佔用的檔案
2. 使用`ps`命令檢視程序的基本資訊
比如,我想檢視nginx程序的基本資訊:
切換到root使用者
su -
執行以下命令,檢視nginx程序的基本資訊
ps -ef |head -n1;ps -ef |grep nginx
輸入出結果:
UID PID PPID C STIME TTY TIME CMD root 5950 1 0 2月06 ? 00:00:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
使用ps命令檢視程序的基本資訊
上面的輸出結果列分別表示
- UID:使用者ID、
- PID:程序ID
- PPID:父程序
- C:CPU佔用率
- STIME:開始時間
- TTY:開始此程序的TTY----終端裝置
- TIME:此程序執行的總時間
- CMD:執行的命令
可以看出,我伺服器上的nginx執行的命令是/usr/sbin/nginx -c /etc/nginx/nginx.conf。
實際上,這是一臺測試用的Linux虛擬機器。
更詳細的用法請參考以下教程:
Linux 怎麼樣檢視程序狀態(包括佔用記憶體和CPU)
3. 使用`top`命令檢視程序佔用的CPU資源和記憶體資源的情況
我想檢視nginx佔用的CPU和記憶體的情況
前面我們得知:nginx的程序號是5950
檢視程序號為5950的程式佔用的資源情況:
top -p 5950
輸出結果:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME COMMAND 5950 root 20 0 115548 4124 2032 S 0.0 0.1 0:00.02 nginx
使用top命令檢視程序佔用的CPU資源和記憶體資源的情況
輸出結果每列的含義:
- PID:程序ID
- USER:使用者
- PR:程序優先順序
- NI: nice值。負值表示高優先順序,正值表示低優先順序
- VIRT:虛擬記憶體大小。程序使用的虛擬記憶體總量,單位kb。VIRT=SWAP RES
- RES:程序使用的、未被換出的實體記憶體大小,單位kb。RES=CODE DATA
- SHR:共享記憶體大小,單位kb
- S:程序狀態。D=不可中斷的睡眠狀態,R=執行,S=睡眠,T=跟蹤/停止,Z=殭屍程序
- %CPU:上次更新到目前的CPU時間佔用百分比
- %MEM:程序使用的實體記憶體百分比
- TIME :程序使用的CPU時間總計,單位秒
- COMMAND:程序正在使用的命令,執行引數等等。
top命令更多的用法請參考以下教程:
Linux工作管理員之top命令詳解
4. 使用`nethogs`命令檢視程序實時的網路資源佔用情況
注意的是,Linux發行版預設情況下,一般都沒有安裝nethogs命令
我們接下來需要手動安裝它:
CentOS系統安裝nethogs:
yum install nethogs -y
Ubuntu系統安裝nethogs:
sudo apt install nethogs -y
接下來使用nethogs檢視程序實時的網路連線速度,包括上傳和下載的速度:
切換到root使用者執行以下命令
nethogs
使用nethogs命令檢視程序實時的網路連線速度
從上圖我們可以看到,wget程式正在下載檔案,它的速度為400KB/S
想更詳細瞭解nethogs的使用方法和功能?請參考以下教程
Linux怎麼檢視和監控每個程序的實時流量
5. 使用`ss`命令檢視程序佔用的埠號
切換到root使用者後,執行以下命令檢視nginx程序佔用的埠號
ss -lntp |grep nginx
使用ss命令檢視程序佔用的埠號
從上圖可以看到,我的nginx程式開了2個程序,分別佔用了80和888埠。
想更詳細瞭解ss的使用方法和功能?請參考以下教程
linux怎麼檢視程序佔用埠
6. 使用`lsof`命令檢視程序佔用的檔案資源
檢視nginx程序開啟的檔案:
lsof -c nginx
使用lsof命令命令檢視程序佔用的檔案
想更詳細瞭解ss的使用方法和功能?請參考以下教程
Linux lsof命令詳解
7. 結論
通過本文,您應該可以學習到如何在Linux系統如何檢視程序資源使用的情況了吧?其實也是需要對Linux有較多的瞭解才能獲取到比較全面的資料。如果您有更好方法,請留言。
如果喜歡本文,歡迎轉發。本文已同步至部落格站,尊重原創,轉載時請在正文中附帶以下連結:
https://www.linuxrumen.com/rmxx/1915.html
點選瞭解更多,快速檢視更多的技術文章列表。