CentOS 是一種廣泛使用的 Linux 發(fā)行版,特別適合用于服務(wù)器環(huán)境。在 CentOS 系統(tǒng)中,查看內(nèi)存信息是管理和維護(hù)服務(wù)器時(shí)不可或缺的一項(xiàng)操作。通過(guò)了解內(nèi)存的使用情況,我們可以判斷系統(tǒng)是否存在性能瓶頸、內(nèi)存溢出等問(wèn)題,從而進(jìn)行相應(yīng)的優(yōu)化和調(diào)整。本文將詳細(xì)介紹如何在 CentOS 系統(tǒng)中查看內(nèi)存信息,包括使用命令行工具、圖形化界面工具以及解釋常見的內(nèi)存監(jiān)控指標(biāo)。
1. 使用 free 命令查看內(nèi)存信息
在 CentOS 中,最常用的查看內(nèi)存使用情況的命令之一是 free。該命令能夠顯示系統(tǒng)的總內(nèi)存、已用內(nèi)存、空閑內(nèi)存、緩存和交換分區(qū)的情況。
在終端中運(yùn)行以下命令:
free -h
命令中的 -h 參數(shù)表示以人類可讀的格式(如 GB 或 MB)顯示內(nèi)存信息。執(zhí)行該命令后,您將看到類似以下的輸出:
total used free shared buff/cache available Mem: 7.7Gi 1.5Gi 3.0Gi 180Mi 3.2Gi 6.0Gi Swap: 2.0Gi 0.0Gi 2.0Gi
輸出結(jié)果中各列的含義如下:
total:系統(tǒng)的總內(nèi)存大小。
used:已使用的內(nèi)存量。
free:空閑的內(nèi)存量。
shared:多個(gè)進(jìn)程共享的內(nèi)存。
buff/cache:被操作系統(tǒng)用于緩存和緩沖的內(nèi)存。
available:可用于新進(jìn)程的內(nèi)存量,考慮了緩存和緩沖的內(nèi)存。
在查看內(nèi)存信息時(shí),buff/cache 這一列可能會(huì)讓新手產(chǎn)生疑問(wèn)。實(shí)際上,這一部分內(nèi)存并非完全“已用”,因?yàn)椴僮飨到y(tǒng)會(huì)利用這部分內(nèi)存來(lái)緩存文件和進(jìn)程,待系統(tǒng)需要更多內(nèi)存時(shí)會(huì)自動(dòng)釋放。
2. 使用 top 命令實(shí)時(shí)查看內(nèi)存使用情況
除了 free 命令,top 命令是另一個(gè)非常強(qiáng)大的工具,能夠?qū)崟r(shí)顯示系統(tǒng)的各項(xiàng)資源使用情況,包括 CPU 和內(nèi)存。在執(zhí)行 top 命令后,系統(tǒng)會(huì)不斷刷新并顯示當(dāng)前的資源使用情況。
在終端中運(yùn)行以下命令:
top
命令執(zhí)行后,您會(huì)看到一個(gè)實(shí)時(shí)更新的資源使用情況界面,界面頂部顯示的是系統(tǒng)的總體資源使用情況,包括內(nèi)存的總量、已用量、空閑量等,格式如下:
MiB Mem : 8001.0 total, 3072.0 free, 4096.0 used, 1533.0 buff/cache
其中的 MiB Mem 行表示的是內(nèi)存的相關(guān)信息,和 free 命令的輸出相似。您可以通過(guò)按下 q 鍵退出 top 命令的實(shí)時(shí)監(jiān)控界面。
此外,top 命令還有很多其他功能,比如按 Shift + M 可以按內(nèi)存使用量對(duì)進(jìn)程進(jìn)行排序,方便用戶查看哪些進(jìn)程占用了大量的內(nèi)存。
3. 使用 vmstat 命令查看內(nèi)存統(tǒng)計(jì)信息
vmstat 命令(Virtual Memory Statistics)可以提供系統(tǒng)的內(nèi)存、交換分區(qū)、進(jìn)程、IO 統(tǒng)計(jì)信息。相比 free 和 top 命令,vmstat 提供的信息更加全面,適合用來(lái)監(jiān)控系統(tǒng)的長(zhǎng)期運(yùn)行狀態(tài)。
在終端中運(yùn)行以下命令:
vmstat -s
該命令會(huì)輸出一系列內(nèi)存相關(guān)的統(tǒng)計(jì)數(shù)據(jù),包括內(nèi)存的總量、已用量、空閑量以及其他內(nèi)存統(tǒng)計(jì)信息。輸出示例:
8192000 K total memory 4096000 K used memory 2048000 K free memory 1024000 K swap cache 1024000 K total swap 1024000 K used swap 1024000 K free swap
這些數(shù)據(jù)顯示了系統(tǒng)的內(nèi)存、交換空間的詳細(xì)信息。使用 vmstat 命令時(shí),您可以通過(guò)不斷刷新來(lái)監(jiān)控內(nèi)存的動(dòng)態(tài)變化情況。
4. 使用 /proc/meminfo 查看詳細(xì)內(nèi)存信息
對(duì)于更為詳細(xì)的內(nèi)存信息,CentOS 系統(tǒng)提供了一個(gè)虛擬文件 /proc/meminfo,它包含了系統(tǒng)的內(nèi)存使用的各種詳細(xì)數(shù)據(jù)。通過(guò)查看該文件,您可以獲得更為精細(xì)的內(nèi)存統(tǒng)計(jì)數(shù)據(jù)。
在終端中運(yùn)行以下命令:
cat /proc/meminfo
該命令會(huì)輸出一系列與內(nèi)存相關(guān)的詳細(xì)信息,示例如下:
MemTotal: 8192000 kB MemFree: 2048000 kB MemAvailable: 4096000 kB Buffers: 102400 kB Cached: 2048000 kB SwapCached: 102400 kB Active: 4096000 kB Inactive: 2048000 kB SwapTotal: 2048000 kB SwapFree: 1024000 kB
該文件包含的字段非常多,以下是一些常見字段的含義:
MemTotal:系統(tǒng)的總內(nèi)存。
MemFree:當(dāng)前系統(tǒng)的空閑內(nèi)存。
MemAvailable:系統(tǒng)可供新進(jìn)程使用的內(nèi)存。
Buffers:內(nèi)核用于緩沖區(qū)的內(nèi)存。
Cached:用于文件緩存的內(nèi)存。
SwapTotal:系統(tǒng)的交換空間總大小。
SwapFree:當(dāng)前交換空間的空閑大小。
通過(guò)查看 /proc/meminfo 文件,您可以獲取更為詳細(xì)的內(nèi)存狀態(tài),幫助您進(jìn)行更深層次的性能分析和優(yōu)化。
5. 使用 dmesg 命令查看內(nèi)存啟動(dòng)日志
在系統(tǒng)啟動(dòng)時(shí),Linux 內(nèi)核會(huì)進(jìn)行一系列的硬件檢測(cè)和內(nèi)存初始化操作。dmesg 命令可以顯示系統(tǒng)啟動(dòng)時(shí)的內(nèi)核日志,包括內(nèi)存分配情況。
在終端中運(yùn)行以下命令:
dmesg | grep -i memory
該命令會(huì)篩選出與內(nèi)存相關(guān)的啟動(dòng)日志,幫助您了解系統(tǒng)啟動(dòng)時(shí)的內(nèi)存分配情況。例如,您可能會(huì)看到如下內(nèi)容:
[ 0.000000] Memory: 8192000K/8388608K available (12345K kernel code, 6789K rwdata, 2345K rodata, 5678K init, 9012K bss, 4567890K reserved)
這些信息有助于您了解內(nèi)核在啟動(dòng)時(shí)對(duì)內(nèi)存的分配策略。
6. 使用 GUI 工具查看內(nèi)存信息
如果您使用的是帶有圖形界面的 CentOS 版本(如 CentOS7 的 GNOME 桌面環(huán)境),也可以通過(guò)圖形化工具來(lái)查看內(nèi)存信息。例如,您可以使用 系統(tǒng)監(jiān)視器 來(lái)查看系統(tǒng)的內(nèi)存使用情況。
在 CentOS7 中,您可以通過(guò)點(diǎn)擊菜單中的 應(yīng)用程序 → 系統(tǒng)工具 → 系統(tǒng)監(jiān)視器 打開系統(tǒng)監(jiān)視器窗口,在“資源”標(biāo)簽中查看內(nèi)存使用情況。