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