1. 前言
本文主要講解在linux系統(tǒng)如何查看進(jìn)程資源使用的情況。本文將會介紹多個命令行工具。
在本教程中,您將學(xué)習(xí)到以下知識:
- 如何使用ps命令查看進(jìn)程的基本信息
- 如何使用top命令查看進(jìn)程占用的CPU和內(nèi)存的情況。
- 如何使用nethogs命令查看進(jìn)程實時的網(wǎng)絡(luò)連接速度
- 如何使用ss命令查看進(jìn)程占用的端口號
- 如何使用lsof命令查看進(jìn)程占用的文件。
Linux怎么查看進(jìn)程資源使用情況
實施準(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)程實時的網(wǎng)絡(luò)連接速度
- 4. ss:查看進(jìn)程占用的端口號
- 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:開始時間
- TTY:開始此進(jìn)程的TTY----終端設(shè)備
- TIME:此進(jìn)程運行的總時間
- CMD:執(zhí)行的命令
可以看出,我服務(wù)器上的nginx執(zhí)行的命令是/usr/sbin/nginx -c /etc/nginx/nginx.conf。
實際上,這是一臺測試用的Linux虛擬機(jī)。
更詳細(xì)的用法請參考以下教程:
Linux 怎么樣查看進(jìn)程狀態(tài)(包括占用內(nèi)存和CPU)
3. 使用`top`命令查看進(jìn)程占用的CPU資源和內(nèi)存資源的情況
我想查看nginx占用的CPU和內(nèi)存的情況
前面我們得知:nginx的進(jìn)程號是5950
查看進(jìn)程號為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)先級
- NI: nice值。負(fù)值表示高優(yōu)先級,正值表示低優(yōu)先級
- 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=運行,S=睡眠,T=跟蹤/停止,Z=僵尸進(jìn)程
- %CPU:上次更新到目前的CPU時間占用百分比
- %MEM:進(jìn)程使用的物理內(nèi)存百分比
- TIME+:進(jìn)程使用的CPU時間總計,單位秒
- COMMAND:進(jìn)程正在使用的命令,運行參數(shù)等等。
top命令更多的用法請參考以下教程:
Linux任務(wù)管理器之top命令詳解
4. 使用`nethogs`命令查看進(jìn)程實時的網(wǎng)絡(luò)資源占用情況
注意的是,Linux發(fā)行版默認(rèn)情況下,一般都沒有安裝nethogs命令
我們接下來需要手動安裝它:
centos系統(tǒng)安裝nethogs:
yum install nethogs -y
Ubuntu系統(tǒng)安裝nethogs:
sudo apt install nethogs -y
接下來使用nethogs查看進(jìn)程實時的網(wǎng)絡(luò)連接速度,包括上傳和下載的速度:
切換到root用戶執(zhí)行以下命令
nethogs
使用nethogs命令查看進(jìn)程實時的網(wǎng)絡(luò)連接速度
從上圖我們可以看到,wget程序正在下載文件,它的速度為400KB/S
想更詳細(xì)了解nethogs的使用方法和功能?請參考以下教程
Linux怎么查看和監(jiān)控每個進(jìn)程的實時流量
5. 使用`ss`命令查看進(jìn)程占用的端口號
切換到root用戶后,執(zhí)行以下命令查看nginx進(jìn)程占用的端口號
ss -lntp |grep nginx
使用ss命令查看進(jìn)程占用的端口號
從上圖可以看到,我的nginx程序開了2個進(jìn)程,分別占用了80和888端口。
想更詳細(xì)了解ss的使用方法和功能?請參考以下教程
linux怎么查看進(jìn)程占用端口
6. 使用`lsof`命令查看進(jìn)程占用的文件資源
查看nginx進(jìn)程打開的文件:
lsof -c nginx
使用lsof命令命令查看進(jìn)程占用的文件
想更詳細(xì)了解ss的使用方法和功能?請參考以下教程
Linux lsof命令詳解
7. 結(jié)論
通過本文,您應(yīng)該可以學(xué)習(xí)到如何在Linux系統(tǒng)如何查看進(jìn)程資源使用的情況了吧?其實也是需要對Linux有較多的了解才能獲取到比較全面的數(shù)據(jù)。如果您有更好方法,請留言。
如果喜歡本文,歡迎轉(zhuǎn)發(fā)。本文已同步至博客站,尊重原創(chuàng),轉(zhuǎn)載時請在正文中附帶以下鏈接:
https://www.linuxrumen.com/rmxx/1915.html






