在Linux系統(tǒng)的日常使用和管理中,查看運(yùn)行的進(jìn)程以及實(shí)時(shí)監(jiān)控資源利用情況是非常重要的操作。通過這些操作,系統(tǒng)管理員可以及時(shí)發(fā)現(xiàn)系統(tǒng)中的異常進(jìn)程,合理分配系統(tǒng)資源,確保系統(tǒng)的穩(wěn)定運(yùn)行。本文將詳細(xì)介紹如何在Linux系統(tǒng)中查看運(yùn)行的進(jìn)程,并實(shí)時(shí)監(jiān)控資源利用情況。
查看運(yùn)行的進(jìn)程
在Linux系統(tǒng)中,有多種方法可以查看運(yùn)行的進(jìn)程,下面將介紹幾種常用的命令。
ps命令
ps(Process Status)命令是最基本的查看進(jìn)程的命令,它可以顯示當(dāng)前系統(tǒng)中運(yùn)行的進(jìn)程信息。常用的ps命令選項(xiàng)有:
ps -ef:顯示所有進(jìn)程的詳細(xì)信息,包括進(jìn)程的UID、PID、PPID、C、STIME、TTY、TIME和CMD等。 ps -aux:顯示所有用戶的進(jìn)程信息,其中a表示顯示所有用戶的進(jìn)程,u表示以用戶為主的格式輸出,x表示顯示沒有控制終端的進(jìn)程。
例如,使用ps -ef命令查看所有進(jìn)程的詳細(xì)信息:
$ ps -ef UID PID PPID C STIME TTY TIME CMD root 1 0 0 00:00 ? 00:00:01 /sbin/init splash root 2 0 0 00:00 ? 00:00:00 [kthreadd] root 3 2 0 00:00 ? 00:00:00 [rcu_gp]
從輸出結(jié)果中可以看到,每一行代表一個(gè)進(jìn)程,包含了進(jìn)程的各種信息。
top命令
top命令是一個(gè)動(dòng)態(tài)實(shí)時(shí)顯示進(jìn)程信息的工具,它可以實(shí)時(shí)更新系統(tǒng)中進(jìn)程的狀態(tài)和資源利用情況。top命令的界面分為兩部分,上半部分顯示系統(tǒng)的總體信息,如下所示:
top - 12:34:56 up 1 day, 2:34, 3 users, load average: 0.12, 0.23, 0.34 Tasks: 123 total, 1 running, 122 sleeping, 0 stopped, 0 zombie %Cpu(s): 1.2 us, 0.3 sy, 0.0 ni, 98.5 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st KiB Mem : 8192000 total, 2048000 free, 4096000 used, 2048000 buff/cache KiB Swap: 4096000 total, 4096000 free, 0 used. 5120000 avail Mem
下半部分顯示各個(gè)進(jìn)程的詳細(xì)信息:
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1234 root 20 0 102400 51200 25600 S 1.0 0.6 0:12.34 bash 5678 user 20 0 204800 102400 51200 S 0.5 1.2 0:23.45 firefox
在top命令的界面中,可以使用一些快捷鍵來進(jìn)行操作,例如按“q”鍵退出top命令,按“1”鍵可以顯示每個(gè)CPU的使用情況等。
htop命令
htop是一個(gè)比top更強(qiáng)大、更直觀的實(shí)時(shí)進(jìn)程監(jiān)控工具,它具有更友好的界面和更多的功能。htop命令的界面與top命令類似,但它的顯示更加清晰,操作也更加方便。例如,htop可以使用鼠標(biāo)進(jìn)行操作,還可以對進(jìn)程進(jìn)行排序、過濾等操作。
要安裝htop命令,可以使用以下命令:
sudo apt-get install htop # 對于Debian/Ubuntu系統(tǒng) sudo yum install htop # 對于CentOS/RHEL系統(tǒng)
安裝完成后,直接運(yùn)行htop命令即可打開htop界面。
實(shí)時(shí)監(jiān)控資源利用情況
除了查看運(yùn)行的進(jìn)程,實(shí)時(shí)監(jiān)控系統(tǒng)的資源利用情況也是非常重要的。下面將介紹幾種常用的資源監(jiān)控工具。
vmstat命令
vmstat(Virtual Memory Statistics)命令可以顯示系統(tǒng)的虛擬內(nèi)存、進(jìn)程、CPU等資源的使用情況。vmstat命令的基本用法如下:
vmstat 1 10 # 每隔1秒輸出一次信息,共輸出10次
輸出結(jié)果如下所示:
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 8192000 204800 4096000 0 0 0 0 1 1 0 0 100 0 0
其中,r表示運(yùn)行隊(duì)列中的進(jìn)程數(shù),b表示等待I/O的進(jìn)程數(shù),swpd表示使用的虛擬內(nèi)存大小,free表示空閑的物理內(nèi)存大小等。
iostat命令
iostat(Input/Output Statistics)命令可以顯示系統(tǒng)的磁盤I/O使用情況。iostat命令的基本用法如下:
iostat -x 1 10 # 每隔1秒輸出一次磁盤I/O的詳細(xì)信息,共輸出10次
輸出結(jié)果如下所示:
Linux 5.4.0-100-generic (hostname) 01/01/2024 _x86_64_ (4 CPU)
avg-cpu: %user %nice %system %iowait %steal %idle
1.2 0.3 0.5 0.1 0.0 98.0
Device rrqm/s wrqm/s r/s w/s rkB/s wkB/s avgrq-sz avgqu-sz await r_await w_await svctm %util
sda 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00 0.00其中,rrqm/s表示每秒進(jìn)行的讀請求合并數(shù),wrqm/s表示每秒進(jìn)行的寫請求合并數(shù),r/s表示每秒的讀請求數(shù),w/s表示每秒的寫請求數(shù)等。
netstat命令
netstat(Network Statistics)命令可以顯示系統(tǒng)的網(wǎng)絡(luò)連接、路由表、網(wǎng)絡(luò)接口等信息。netstat命令的常用選項(xiàng)有:
netstat -tuln:顯示所有監(jiān)聽的TCP和UDP端口。 netstat -an:顯示所有的網(wǎng)絡(luò)連接信息。
例如,使用netstat -tuln命令查看所有監(jiān)聽的端口:
$ netstat -tuln Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN udp 0 0 0.0.0.0:5353 0.0.0.0:*
從輸出結(jié)果中可以看到,系統(tǒng)正在監(jiān)聽的TCP和UDP端口。
總結(jié)
在Linux系統(tǒng)中,查看運(yùn)行的進(jìn)程和實(shí)時(shí)監(jiān)控資源利用情況是系統(tǒng)管理的重要任務(wù)。通過使用ps、top、htop等命令可以查看運(yùn)行的進(jìn)程,使用vmstat、iostat、netstat等命令可以實(shí)時(shí)監(jiān)控系統(tǒng)的資源利用情況。掌握這些工具的使用方法,可以幫助系統(tǒng)管理員及時(shí)發(fā)現(xiàn)系統(tǒng)中的問題,確保系統(tǒng)的穩(wěn)定運(yùn)行。同時(shí),還可以根據(jù)實(shí)際需求選擇合適的工具進(jìn)行進(jìn)程查看和資源監(jiān)控。