有時你可能想知道Linux服務器中某個進程的CPU使用率。由于一個進程的CPU使用率在其生命周期內可能會有波動,因此通常是查看的該進程的CPU平均使用率或CPU利用率。sysstat工具集合包含了Linux的性能監控工具集合,報告磁盤I/O、CPU、內存、網絡和其他系統活動的統計數據。sysstat中包含的一個實用程序是pidstat,它可以測量Linux進程的平均CPU使用率。
下面讓我們來了解一下如何使用pidstat工具測量Linux服務器中某個進程的平均CPU使用率,或者所有可用Linux進程的進程級CPU使用率。
為了使用pidstat,你需要安裝sysstat包,如下所示。
在Ubuntu、Debian或Linux Mint上安裝sysstat:
$ sudo apt install sysstat
在centos、RHEL或Fedora上安裝sysstat:
$ sudo yum install sysstat
從源碼中構建sysstat
如果你的Linux系統上沒有sysstat包,你可以很容易地從源碼中構建它,如下所示。
$ tar -xf sysstat-12.5.3.tar.gz
$ cd sysstat-12.5.3/
$ ./configure
$ make
$ sudo make install
使用用pidstat測量一個進程的平均CPU使用率。
安裝了sysstat之后,可以使用pidstat來測量Linux進程的平均CPU使用率,具體如下。
$ pidstat 5 -p 11579
在這個例子中,我檢測了一個PID為11579的Linux進程的平均CPU使用量,測量時間間隔為5秒。這條命令將每五秒刷新一次CPU平均使用率。如果按Ctrl-C鍵,命令將退出,并打印出整體的平均CPU使用量。輸出顯示進程平均消耗了5.5%的單個CPU核。%CPU旁邊的CPU字段表示進程所連接的CPU處理器ID(如果系統上有多個CPU處理器)。%usr和%system兩欄分別表示CPU有多少是在用戶空間或內核中執行的。
注意,你需要提供間隔參數(例如,5),它指定了每次報告之間的時間間隔,以秒為單位。如果沒有間隔參數,pidstat報告的%CPU將是自系統啟動(啟動)以來的平均CPU使用率。
使用pidstat測量系統中進程級CPU的使用情況。
如果您想測量所有正在運行的進程的CPU使用率,您可以簡單地在pidstate中使用-p ALL選項。
$ pidstat 60 -p ALL
上面的命令將每分鐘報告所有正在運行的進程的平均CPU使用率。
如果你想把pidstat的輸出送入shell腳本,你可以使用下面的bash腳本。這個腳本可以測量整個系統的進程級平均CPU使用量(一分鐘內的平均值)。
#!/bin/bash
output=$(timeout 60.1 pidstat 60 -p ALL)
ifS=’
‘
for line in $output; do
# extract N-th column with awk
pid=`echo $line | awk ‘{ print $4}’` # PID
pcpu=`echo $line | awk ‘{ print $9}’` # percentage CPU
cpu=`echo $line | awk ‘{ print $10}’` # CPU ID
cmd=`echo $line | awk ‘{ print $11}’` # command
echo “$pid $pcpu $cpu $cmd”
done
至此,如何查看Linux服務器進程的CPU平均利用率就完成了,希望對您有所幫助。