1. 前言
本文主要講解在linux系統(tǒng)如何查看進(jìn)程資源使用的情況。本文將會(huì)介紹多個(gè)命令行工具。
在本教程中,您將學(xué)習(xí)到以下知識(shí):
- 如何使用ps命令查看進(jìn)程的基本信息
- 如何使用top命令查看進(jìn)程占用的CPU和內(nèi)存的情況。
- 如何使用nethogs命令查看進(jìn)程實(shí)時(shí)的網(wǎng)絡(luò)連接速度
- 如何使用ss命令查看進(jìn)程占用的端口號(hào)
- 如何使用lsof命令查看進(jìn)程占用的文件。

Linux怎么查看進(jìn)程資源使用情況
實(shí)施準(zhǔn)備工作:
- 1. 主流Linux系統(tǒng)
- 2. 具有root權(quán)限
- 3. 具有域名控制權(quán),可做DNS映射,比如域網(wǎng)與IP的映射
- 4. 熟悉Linux基本命令行操作,比如vi命令
軟件工具清單:
- 1. ps:用于查看進(jìn)程基本信息。
- 2. top:查看進(jìn)程占用的資源情況。
- 3. nethogs:查看進(jìn)程實(shí)時(shí)的網(wǎng)絡(luò)連接速度
- 4. ss:查看進(jìn)程占用的端口號(hào)
- 5. lsof:查看進(jìn)程占用的文件
2. 使用`ps`命令查看進(jìn)程的基本信息
比如,我想查看Nginx進(jìn)程的基本信息:
切換到root用戶
su -
執(zhí)行以下命令,查看nginx進(jìn)程的基本信息
ps -ef |head -n1;ps -ef |grep nginx
輸入出結(jié)果:
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命令查看進(jìn)程的基本信息
上面的輸出結(jié)果列分別表示
- UID:用戶ID、
- PID:進(jìn)程ID
- PPID:父進(jìn)程
- C:CPU占用率
- STIME:開始時(shí)間
- TTY:開始此進(jìn)程的TTY----終端設(shè)備
- TIME:此進(jìn)程運(yùn)行的總時(shí)間
- CMD:執(zhí)行的命令
可以看出,我服務(wù)器上的nginx執(zhí)行的命令是/usr/sbin/nginx -c /etc/nginx/nginx.conf。
實(shí)際上,這是一臺(tái)測(cè)試用的Linux虛擬機(jī)。
更詳細(xì)的用法請(qǐng)參考以下教程:
Linux 怎么樣查看進(jìn)程狀態(tài)(包括占用內(nèi)存和CPU)
3. 使用`top`命令查看進(jìn)程占用的CPU資源和內(nèi)存資源的情況
我想查看nginx占用的CPU和內(nèi)存的情況
前面我們得知:nginx的進(jìn)程號(hào)是5950
查看進(jìn)程號(hào)為5950的程序占用的資源情況:
top -p 5950
輸出結(jié)果:
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命令查看進(jìn)程占用的CPU資源和內(nèi)存資源的情況
輸出結(jié)果每列的含義:
- PID:進(jìn)程ID
- USER:用戶
- PR:進(jìn)程優(yōu)先級(jí)
- NI: nice值。負(fù)值表示高優(yōu)先級(jí),正值表示低優(yōu)先級(jí)
- VIRT:虛擬內(nèi)存大小。進(jìn)程使用的虛擬內(nèi)存總量,單位kb。VIRT=SWAP+RES
- RES:進(jìn)程使用的、未被換出的物理內(nèi)存大小,單位kb。RES=CODE+DATA
- SHR:共享內(nèi)存大小,單位kb
- S:進(jìn)程狀態(tài)。D=不可中斷的睡眠狀態(tài),R=運(yùn)行,S=睡眠,T=跟蹤/停止,Z=僵尸進(jìn)程
- %CPU:上次更新到目前的CPU時(shí)間占用百分比
- %MEM:進(jìn)程使用的物理內(nèi)存百分比
- TIME+:進(jìn)程使用的CPU時(shí)間總計(jì),單位秒
- COMMAND:進(jìn)程正在使用的命令,運(yùn)行參數(shù)等等。
top命令更多的用法請(qǐng)參考以下教程:
Linux任務(wù)管理器之top命令詳解
4. 使用`nethogs`命令查看進(jìn)程實(shí)時(shí)的網(wǎng)絡(luò)資源占用情況
注意的是,Linux發(fā)行版默認(rèn)情況下,一般都沒有安裝nethogs命令
我們接下來需要手動(dòng)安裝它:
centos系統(tǒng)安裝nethogs:
yum install nethogs -y
Ubuntu系統(tǒng)安裝nethogs:
sudo apt install nethogs -y
接下來使用nethogs查看進(jìn)程實(shí)時(shí)的網(wǎng)絡(luò)連接速度,包括上傳和下載的速度:
切換到root用戶執(zhí)行以下命令
nethogs

使用nethogs命令查看進(jìn)程實(shí)時(shí)的網(wǎng)絡(luò)連接速度
從上圖我們可以看到,wget程序正在下載文件,它的速度為400KB/S
想更詳細(xì)了解nethogs的使用方法和功能?請(qǐng)參考以下教程
Linux怎么查看和監(jiān)控每個(gè)進(jìn)程的實(shí)時(shí)流量
5. 使用`ss`命令查看進(jìn)程占用的端口號(hào)
切換到root用戶后,執(zhí)行以下命令查看nginx進(jìn)程占用的端口號(hào)
ss -lntp |grep nginx

使用ss命令查看進(jìn)程占用的端口號(hào)
從上圖可以看到,我的nginx程序開了2個(gè)進(jìn)程,分別占用了80和888端口。
想更詳細(xì)了解ss的使用方法和功能?請(qǐng)參考以下教程
linux怎么查看進(jìn)程占用端口
6. 使用`lsof`命令查看進(jìn)程占用的文件資源
查看nginx進(jìn)程打開的文件:
lsof -c nginx

使用lsof命令命令查看進(jìn)程占用的文件
想更詳細(xì)了解ss的使用方法和功能?請(qǐng)參考以下教程
Linux lsof命令詳解
7. 結(jié)論
通過本文,您應(yīng)該可以學(xué)習(xí)到如何在Linux系統(tǒng)如何查看進(jìn)程資源使用的情況了吧?其實(shí)也是需要對(duì)Linux有較多的了解才能獲取到比較全面的數(shù)據(jù)。如果您有更好方法,請(qǐng)留言。
如果喜歡本文,歡迎轉(zhuǎn)發(fā)。本文已同步至博客站,尊重原創(chuàng),轉(zhuǎn)載時(shí)請(qǐng)?jiān)谡闹懈綆б韵骆溄樱?br />https://www.linuxrumen.com/rmxx/1915.html