如何檢視 Linux 下 CPU、記憶體和交換分割槽的佔用率?
在 Linux 下有很多可以用來檢視記憶體佔用情況的命令和選項,但是我並沒有看見關於記憶體佔用率的更多的資訊。
在大多數情況下我們只想檢視記憶體使用情況,並沒有考慮佔用的百分比究竟是多少。如果你想要了解這些資訊,那你看這篇文章就對了。我們將會詳細地在這裡幫助你解決這個問題。
這篇教程將會幫助你在面對 Linux 伺服器下頻繁的記憶體高佔用情況時,確定記憶體使用情況。
而在同時,如果你使用的是 free -m
或者 free -g
,佔用情況描述地也並不是十分清楚。
這些格式化命令屬於 Linux 高階命令。它將會對 Linux 專家和中等水平 Linux 使用者非常有用。
方法-1:如何檢視 Linux 下記憶體佔用率?
我們可以使用下面命令的組合來達到此目的。在該方法中,我們使用的是 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 available
Mem: 15867 3730 9868 1189 2269 10640
Swap: 17454 0 17454
Total: 33322 3730 27322
細節如下:
free
:是一個標準命令,用於在 Linux 下檢視記憶體使用情況。awk
:是一個專門用來做文字資料處理的強大命令。FNR == 2
:該命令給出了每一個輸入檔案的行數。其基本上用於挑選出給定的行(針對於這裡,它選擇的是行號為 2 的行)NR == 2
:該命令給出了處理的行總數。其基本上用於過濾給出的行(針對於這裡,它選擇的是行號為 2 的行)$3/$2*100
:該命令將列 3 除以列 2 並將結果乘以 100。printf
:該命令用於格式化和列印資料。%.2f%
:預設情況下,其列印小數點後保留 6 位的浮點數。使用後跟的格式來約束小數位。
方法-2:如何檢視 Linux 下記憶體佔用率?
我們可以使用下面命令的組合來達到此目的。在這種方法中,我們使用 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%
方法-1:如何檢視 Linux 下 CPU 的佔用率?
我們可以使用如下命令的組合來達到此目的。在這種方法中,我們使用 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%
方法-2:如何檢視 Linux 下 CPU 的佔用率?
我們可以使用如下命令的組合來達到此目的。在這種方法中,我們使用的是 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 減去其併除以行數。
via: https://www.2daygeek.com/linux-check-cpu-memory-swap-utilization-percentage/
作者:Vinoth Kumar 選題:lujun9972 譯者:An-DJ 校對:wxy
本文由 LCTT 原創編譯,Linux中國 榮譽推出
相關文章
- linux交換分割槽Linux
- Linux下swap(交換分割槽)的增刪改Linux
- linux交換分割槽調整Linux
- Linux中如何檢視CPU使用率?Linux
- 在Linux中,如何檢視linux中記憶體使用率最高的程序?Linux記憶體
- linux系統swappiness引數在記憶體與交換分割槽間最佳化LinuxAPP記憶體
- 檢視LINUX程式記憶體佔用情況Linux記憶體
- Linux檢視CPU使用率Linux
- Linux(CentOS) 檢視當前佔用CPU或記憶體最多的K個程式LinuxCentOS記憶體
- Linux下檢視CPU型號,記憶體大小,硬碟空間的命令Linux記憶體硬碟
- Android 分割槽和記憶體監控Android記憶體
- unbuntu新增交換分割槽
- 如何檢視Linux的記憶體使用狀況Linux記憶體
- 在Linux中,如何檢查系統的CPU和記憶體使用情況?Linux記憶體
- 教你如何進行 linux swap 交換記憶體擴容Linux記憶體
- 在Linux中,如何檢視佔用CPU最多的程序?Linux
- Ubuntu 啟用交換分割槽Ubuntu
- 如何檢視MySQL資料庫佔多大記憶體,佔用太多記憶體怎麼辦?MySql資料庫記憶體
- CPU和記憶體如何互動的記憶體
- oracle分割槽交換(exchange)技術Oracle
- Linux中顯示記憶體和CPU使用率最高的程式的SHELL指令碼例子Linux記憶體指令碼
- 如何檢視linux系統中空閒記憶體/實體記憶體使用/剩餘記憶體Linux記憶體
- 如何在 Linux 下檢測記憶體洩漏Linux記憶體
- linux 檢視某個程序和服務記憶體佔用情況命令Linux記憶體
- Linux交換分割槽相關都有哪些命令?Linux運維基礎Linux運維
- kubectl 如何檢視 node、pod 的 cpu、RAM 使用率?
- Linux/Centos檢視程式佔用記憶體大小的幾種方法總結LinuxCentOS記憶體
- win10如何查詢哪些應用記憶體佔用大 win10如何檢視軟體記憶體佔用Win10記憶體
- 17 種檢視 Linux 實體記憶體的方法Linux記憶體
- HGDB的分割槽表實現SQL Server的分割槽檢視SQLServer
- 檢視分割槽範圍
- Linux磁碟分割槽、掛載、檢視檔案大小Linux
- Linux下的磁碟分割槽和邏輯卷Linux
- 解碼Redis最易被忽視的CPU和記憶體佔用高問題Redis記憶體
- Seven 儲存結構與磁碟劃分 主分割槽交換分割槽的作用!
- Java中的CPU佔用高和記憶體佔用高的問題排查Java記憶體
- windows下讀取Linux分割槽軟體WindowsLinux
- 請描述C/C++程式的記憶體分割槽?C++記憶體