這篇文章主要介紹“如何查看Linux下CPU、內存和交換分區的占用率”,在日常操作中,相信很多人在如何查看Linux下CPU、內存和交換分區的占用率問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何查看Linux下CPU、內存和交換分區的占用率”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
我們可以使用下面命令的組合來達到此目的。在該方法中,我們使用的是 free 和 awk 命令的組合來獲取內存占用率。
如果你正在尋找其他有關于內存的文章,你可以導航到如下鏈接。這些文章有 free 命令、smem 命令、ps_mem 命令、vmstat 命令 及 查看物理內存大小的多種方式。
要獲取不包含百分比符號的內存占用率:
$ free -t | awk 'NR == 2 {print "Current Memory Utilization is : " $3/$2*100}'或$ free -t | awk 'FNR == 2 {print "Current Memory Utilization is : " $3/$2*100}' Current Memory Utilization is : 20.4194要獲取不包含百分比符號的交換分區占用率:
$ free -t | awk 'NR == 3 {print "Current Swap Utilization is : " $3/$2*100}'或$ free -t | awk 'FNR == 3 {print "Current Swap Utilization is : " $3/$2*100}' Current Swap Utilization is : 0要獲取包含百分比符號及保留兩位小數的內存占用率:
$ free -t | awk 'NR == 2 {printf("Current Memory Utilization is : %.2f%"), $3/$2*100}'或$ free -t | awk 'FNR == 2 {printf("Current Memory Utilization is : %.2f%"), $3/$2*100}' Current Memory Utilization is : 20.42%要獲取包含百分比符號及保留兩位小數的交換分區占用率:
$ free -t | awk 'NR == 3 {printf("Current Swap Utilization is : %.2f%"), $3/$2*100}'或$ free -t | awk 'FNR == 3 {printf("Current Swap Utilization is : %.2f%"), $3/$2*100}' Current Swap Utilization is : 0.00%如果你正在尋找有關于交換分區的其他文章,你可以導航至如下鏈接。這些鏈接有 使用 LVM(邏輯盤卷管理)創建和擴展交換分區,創建或擴展交換分區的多種方式 和 創建/刪除和掛載交換分區文件的多種方式。
鍵入 free 命令會更好地作出闡釋:
$ free total used free shared buff/cache availableMem: 15867 3730 9868 1189 2269 10640Swap: 17454 0 17454Total: 33322 3730 27322
細節如下:
free:是一個標準命令,用于在 Linux 下查看內存使用情況。
awk:是一個專門用來做文本數據處理的強大命令。
FNR == 2:該命令給出了每一個輸入文件的行數。其基本上用于挑選出給定的行(針對于這里,它選擇的是行號為 2 的行)
NR == 2:該命令給出了處理的行總數。其基本上用于過濾給出的行(針對于這里,它選擇的是行號為 2 的行)
$3/$2*100:該命令將列 3 除以列 2 并將結果乘以 100。
printf:該命令用于格式化和打印數據。
%.2f%:默認情況下,其打印小數點后保留 6 位的浮點數。使用后跟的格式來約束小數位。
我們可以使用下面命令的組合來達到此目的。在這種方法中,我們使用 free、grep 和 awk 命令的組合來獲取內存占用率。
要獲取不包含百分比符號的內存占用率:
$ free -t | grep Mem | awk '{print "Current Memory Utilization is : " $3/$2*100}'Current Memory Utilization is : 20.4228要獲取不包含百分比符號的交換分區占用率:
$ free -t | grep Swap | awk '{print "Current Swap Utilization is : " $3/$2*100}'Current Swap Utilization is : 0要獲取包含百分比符號及保留兩位小數的內存占用率:
$ free -t | grep Mem | awk '{printf("Current Memory Utilization is : %.2f%"), $3/$2*100}'Current Memory Utilization is : 20.43%要獲取包含百分比符號及保留兩位小數的交換空間占用率:
$ free -t | grep Swap | awk '{printf("Current Swap Utilization is : %.2f%"), $3/$2*100}'Current Swap Utilization is : 0.00%我們可以使用如下命令的組合來達到此目的。在這種方法中,我們使用 top、print 和 awk 命令的組合來獲取 CPU 的占用率。
如果你正在尋找其他有關于 CPU(LCTT 譯注:原文誤為 memory)的文章,你可以導航至如下鏈接。這些文章有 top 命令、htop 命令、atop 命令 及 Glances 命令。
如果在輸出中展示的是多個 CPU 的情況,那么你需要使用下面的方法。
$ top -b -n1 | grep ^%Cpu%Cpu0 : 5.3 us, 0.0 sy, 0.0 ni, 94.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st%Cpu1 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st%Cpu2 : 0.0 us, 0.0 sy, 0.0 ni, 94.7 id, 0.0 wa, 0.0 hi, 5.3 si, 0.0 st%Cpu3 : 5.3 us, 0.0 sy, 0.0 ni, 94.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st%Cpu4 : 10.5 us, 15.8 sy, 0.0 ni, 73.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st%Cpu5 : 0.0 us, 5.0 sy, 0.0 ni, 95.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st%Cpu6 : 5.3 us, 0.0 sy, 0.0 ni, 94.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st%Cpu7 : 5.3 us, 0.0 sy, 0.0 ni, 94.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
要獲取不包含百分比符號的 CPU 占用率:
$ top -b -n1 | grep ^%Cpu | awk '{cpu+=$9}END{print "Current CPU Utilization is : " 100-cpu/NR}'Current CPU Utilization is : 21.05要獲取包含百分比符號及保留兩位小數的 CPU 占用率:
$ top -b -n1 | grep ^%Cpu | awk '{cpu+=$9}END{printf("Current CPU Utilization is : %.2f%"), 100-cpu/NR}'Current CPU Utilization is : 14.81%我們可以使用如下命令的組合來達到此目的。在這種方法中,我們使用的是 top、print/printf 和 awk 命令的組合來獲取 CPU 的占用率。
如果在單個輸出中一起展示了所有的 CPU 的情況,那么你需要使用下面的方法。
$ top -b -n1 | grep ^%Cpu%Cpu(s): 15.3 us, 7.2 sy, 0.8 ni, 69.0 id, 6.7 wa, 0.0 hi, 1.0 si, 0.0 st
要獲取不包含百分比符號的 CPU 占用率:
$ top -b -n1 | grep ^%Cpu | awk '{print "Current CPU Utilization is : " 100-$8}'Current CPU Utilization is : 5.6要獲取包含百分比符號及保留兩位小數的 CPU 占用率:
$ top -b -n1 | grep ^%Cpu | awk '{printf("Current CPU Utilization is : %.2f%"), 100-$8}'Current CPU Utilization is : 5.40%如下是一些細節:
top:是一種用于查看當前 Linux 系統下正在運行的進程的非常好的命令。
-b:選項允許 top 命令切換至批處理的模式。當你從本地系統運行 top 命令至遠程系統時,它將會非常有用。
-n1:迭代次數。
^%Cpu:過濾以 %CPU 開頭的行。
awk:是一種專門用來做文本數據處理的強大命令。
cpu+=$9:對于每一行,將第 9 列添加至變量 cpu。
printf:該命令用于格式化和打印數據。
%.2f%:默認情況下,它打印小數點后保留 6 位的浮點數。使用后跟的格式來限制小數位數。
100-cpu/NR:最終打印出 CPU 平均占用率,即用 100 減去其并除以行數。
到此,關于“如何查看Linux下CPU、內存和交換分區的占用率”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。