Linux系統命令 - 查看內存使用情況

2022-01-13 建策科技
$ free -m
             total        used        free      shared  buff/cache   available
Mem:           7822         321         324         377        7175        6795
Swap:          4096           0        4095


$ free -h
             total        used        free      shared  buff/cache   available
Mem:           7.6G        322M        324M        377M        7.0G        6.6G
Swap:          4.0G        724K        4.0G


其中, -m 選項是以MB為單位來展示內存使用信息; -h 選項則是以人類(human)可讀的單位來展示。

上面的示例中, Mem: 這一行:

total 表示總共有 7822MB 的物理內存(RAM),即7.6G。

used 表示物理內存的使用量,大約是 322M。

free 表示空閒內存;

shared 表示共享內存?;

buff/cache 表示緩存和緩衝內存量; Linux 系統會將很多東西緩存起來以提高性能,這部分內存可以在必要時進行釋放,給其他程序使用。

available 表示可用內存;

輸出結果很容易理解。Swap 這一行表示交換內存,從示例中的數字可以看到,基本上沒使用到交換內存。

2. 查看 /proc/meminfo

另一種方法是讀取 /proc/meminfo 文件。我們知道, /proc 目錄下都是虛擬文件,包含內核以及作業系統相關的動態信息。

$ cat /proc/meminfo
MemTotal: 8010408 kB
MemFree: 323424 kB
MemAvailable: 6956280 kB
Buffers: 719620 kB
Cached: 5817644 kB
SwapCached: 132 kB
Active: 5415824 kB
Inactive: 1369528 kB
Active(anon): 385660 kB
Inactive(anon): 249292 kB
Active(file): 5030164 kB
Inactive(file): 1120236 kB
Unevictable: 0 kB
Mlocked: 0 kB
SwapTotal: 4194304 kB
SwapFree: 4193580 kB
Dirty: 60 kB
Writeback: 0 kB
AnonPages: 247888 kB
Mapped: 61728 kB
Shmem: 386864 kB
Slab: 818320 kB
SReclaimable: 788436 kB
SUnreclaim: 29884 kB
KernelStack: 2848 kB
PageTables: 5780 kB
NFS_Unstable: 0 kB
Bounce: 0 kB
WritebackTmp: 0 kB
CommitLimit: 8199508 kB
Committed_AS: 942596 kB
VmallocTotal: 34359738367 kB
VmallocUsed: 22528 kB
VmallocChunk: 34359707388 kB
HardwareCorrupted: 0 kB
AnonHugePages: 88064 kB
HugePages_Total: 0
HugePages_Free: 0
HugePages_Rsvd: 0
HugePages_Surp: 0
Hugepagesize: 2048 kB
DirectMap4k: 176000 kB
DirectMap2M: 6115328 kB
DirectMap1G: 4194304 kB

重點關注這些數據:

MemTotal, 總內存

MemFree, 空閒內存

MemAvailable, 可用內存

Buffers, 緩衝

Cached, 緩存

SwapTotal, 交換內存

SwapFree, 空閒交換內存

提供的信息和 free 命令看到的差不多。

3. 使用 vmstat 命令

使用 vmstat -s 命令和選項, 可以對內存使用情況進行統計, 類似於 /proc/meminfo。

示例如下:

$ vmstat -s
8010408 K total memory
344016 K used memory
5444384 K active memory
1380052 K inactive memory
283468 K free memory
719668 K buffer memory
6663256 K swap cache
4194304 K total swap
724 K used swap
4193580 K free swap
132859985 non-nice user cpu ticks
29816 nice user cpu ticks
37600986 system cpu ticks
6643195204 idle cpu ticks
2721822 IO-wait cpu ticks
0 IRQ cpu ticks
592418 softirq cpu ticks
0 stolen cpu ticks
13092214 pages paged in
293257816 pages paged out
8 pages swapped in
1365 pages swapped out
3396492150 interrupts
1327657196 CPU context switches
1548248091 boot time
8811556 forks


最前面的幾行,顯示了內存總量,使用量,以及空閒內存等信息。

4. 使用 top 命令

top 命令一般用於查看進程的CPU和內存使用情況;當然也會報告內存總量,以及內存使用情況,所以可用來監控物理內存的使用情況。
在輸出信息的頂部展示了匯總信息。

示例輸出:

top - 15:20:30 up  6:57,  5 users,  load average: 0.64, 0.44, 0.33
Tasks: 265 total, 1 running, 263 sleeping, 0 stopped, 1 zombie
%Cpu(s): 7.8 us, 2.4 sy, 0.0 ni, 88.9 id, 0.9 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 8167848 total, 6642360 used, 1525488 free, 1026876 buffers
KiB Swap: 1998844 total, 0 used, 1998844 free, 2138148 cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2986 enlighte 20 0 584m 42m 26m S 14.3 0.5 0:44.27 yakuake
1305 root 20 0 448m 68m 39m S 5.0 0.9 3:33.98 Xorg
7701 enlighte 20 0 424m 17m 10m S 4.0 0.2 0:00.12 kio_thumbnail


各種作業系統提供的參數略有不同,一般來說都可以根據CPU和內存來排序。

例如:

CentOS
top -o %MEM
top -o %CPU
mac
top -o mem
top -o cpu

碰到不清楚的,請使用 top -h 查看幫助信息。

重點關注頂部的 KiB Mem 和 KiB Swap 這兩行。表示內存的總量、使用量,以及可用量。

buffer 和 cache 部分,和 free 命令展示的差不多。

5. htop 命令

與 top 命令類似, 但 htop 還展示了其他的各種信息, 而且支持彩色顯示。

頂部的消息顯示了CPU使用率, 以及RAM和交換內存的使用情況。

如果沒安裝,可以使用類似的命令:

yum install htop -y

二、 查看物理內存信息

想要查看物理內存的硬體信息,可以使用 demidecode 命令。

這個命令會輸出物理內存相關的信息。

相關焦點

  • Linux下查看內存的使用情況
    Linux下使用什麼方法來查看內存的使用情況呢?
  • Linux下查看內存使用情況方法總結
    Q:我想監視Linux系統的內存使用情況,在Linux下有哪些視圖或者命令行工具可用呢?
  • Linux如何查看內存的使用情況?
    本節將介紹幾個系統命令,通過它們,可以快速查看 Linux 系統中內存的使用狀況。Linux查看內存使用情況:free命令free 是監控 Linux 內存使用狀況最常用的命令之一,有關該命令的基本用法,已經在《Linux free命令》一節中做了詳細介紹,所以不再贅述,這裡重點給大家講解如何使用 free 命令查看系統內存的使用情況。
  • Linux 查看進程消耗內存情況總結
    在Linux中,有很多命令或工具用來查看內存使用情況,今天我們來簡單討論一下如何查看進程消耗、佔用的內存情況,Linux的內存管理和相關概念要比Windows複雜一些。USS(Unique set size )進程獨自佔用的內存,它是PSS中自己的部分,它只計算了進程獨自佔用的內存大小,不包含任何共享的部分。所以下面介紹的命令,有些查看進程的虛擬內存使用,有些是查看進程的RSS或實際物理內存。在講述的時候,我們會標註這些信息。
  • Linux如何查看內存佔用情況
    Linux下查看某一個進程所佔用的內存,首先可以通過 ps 命令找到進程 id,比如 ps -ef | grep sender_main_test_strategy_newhot.py 可以看到進程對應的 id 為 30501。ylhao 30501 1 0 Jun04 ?
  • Android系統查看內存命令
    在Android的性能優化過程,我們經常會使用一些命令來查看系統內存
  • Linux 系統下查看硬體信息命令大全
    有許多命令可以用來查看 Linux 系統上的硬體信息。
  • 【Linux命令系列】PS命令查看進程
    Linux PS命令Linux ps命令用於顯示當前進程 (process) 的狀態
  • Linux 的 history 命令使用詳解
    history命令讀取歷史命令文件中的目錄到歷史命令緩衝區和將歷史命令緩衝區中的目錄寫入命令文件。該命令單獨使用時,僅顯示歷史命令,在命令行中,可以使用符號!執行指定序號的歷史命令。例如,要執行第2個歷史命令,則輸入!2。history命令:是被保存在內存中的,當退出或者登錄shell時,會自動保存或讀取。
  • Android 內存分析之二--使用adb命令查看內存 作者:晨光
    1.使用adb命令查看內存1.1使用dumpsys meminfo命令dumpsys命令是android中用於列印service相關狀態信息的命令,它的原理是Android中系統相關service通過重寫dump接口來實現的。dumpsys功能比較強大,本文只對其查看內存信息的功能做介紹,其他的功能不做過多闡述。
  • 使用dstat檢查Linux系統性能
    想要對Linux系統進行快速性能檢查嗎? 您可能需要查看dstat命令。 Dstat提供了有關Linux系統性能的寶貴見解,幾乎取代了一系列舊工具,如vmstat,netstat,iostat和ifstat,它們具有結合其功能的靈活而強大的命令。使用這一個命令,您可以查看虛擬內存,網絡連接和接口,CPU活動,輸入/輸出設備等。
  • linux中多種查看系統時間的命令
    介紹linux中多種查看時間的方法1.date這個是最經典的系統查看時間的命令
  • 在Linux中檢查可用內存的5種方法
    我們在CentOS 7.5系統上運行了本文中提到的命令和過程,Ubuntu Linux上也一樣。為了查看內存使用情況,我們使用的是Linux命令行,終端應用程式。您可以通過系統Dash打開終端。方法1:free命令由於free命令是最廣泛使用的,毫無疑問是最有用的,我們首先會提到它的用法。此命令用於檢查有關系統RAM使用情況的信息。
  • 在 Linux 上使用 lspci 命令查看硬體情況
    當你在個人電腦或伺服器上運行 Linux 時,有時需要識別該系統中的硬體。lspci 命令用於顯示連接到 PCI 總線的所有設備,從而滿足上述需求。該命令由 pciutils🔗 mj.ucw.cz 包提供,可用於各種基於 Linux 和 BSD 的作業系統。
  • Linux中多種查看系統時間的命令
    作者:萬金油——King連結:https://blog.csdn.net/weixin_42816196/article/details/865438651、date這個是最經典的系統查看時間的命令,也是腳本的經常用到定義時間的命令2、uptime[root@localhost ~]# uptime 16:51:24 up 13:02,  1 user,  load average: 0.00, 0.01, 0.05這個命令第一個數據 就是系統當前時間,第二個是系統的運行時間,第三個是系統的登錄用戶數 之後的那三個是過去 1分鐘 5分鐘 15分鐘的系統負載的均值
  • 在 Linux 上使用 lspci 命令查看硬體情況 | Linux 中國
    當你在個人電腦或伺服器上運行 Linux 時,有時需要識別該系統中的硬體。lspci 命令用於顯示連接到 PCI 總線的所有設備,從而滿足上述需求。該命令由 pciutils🔗 mj.ucw.cz 包提供,可用於各種基於 Linux 和 BSD 的作業系統。
  • Linux 系統結構詳解 和 常用的 Shell 命令
    從基礎的文件查看到簡單的統計,再到一些常用的探索性分析命令,其目的都只是為了更好的做數據分析與挖掘而已。能綜合這些命令,並組合起來使用,將命令存放到文件,即產生了Shell腳本。Shell腳本本身也是一門強大的學問了,其中各個命令還有每個命令支持的參數,值得慢慢研究。
  • Linux系統運維必備150個命令匯總
    hostname:hostname命令用於顯示和設置系統的主機名稱。環境變量HOSTNAME也保存了當前的主機名。在使用hostname命令設置主機名後,系統並不會永久保存新的主機名,重新啟動機器之後還是原來的主機名。如果需要永久修改主機名,需要同時修改/etc/hosts和/etc/sysconfig/network的相關內容。
  • linux系列之常用運維命令整理筆錄
    2、查看文件情況3、文件權限設置4、文件上傳下載三、網絡通信1、netstat監控命令2、linux重啟網絡3、SELinux簡介4、防火牆設置5、CURL命令使用5.1 查看curl幫助5.2 查看curl手冊5.3 提取指定網頁
  • Linux 終端查看最消耗 CPU 內存的進程
    2.內存消耗最多的前10個進程ps auxw|head -1;ps auxw|sort -rn -k4|head -103.虛擬內存使用最多的前10個進程ps auxw|head -1;ps auxw|sort -rn -k5|head -104.也可以試試ps auxw --sort=rss