Linux使用/proc/meminfo和free命令查看內(nèi)存信息
/proc/meminfo 和 free 命令都用于查看 Linux 系統(tǒng)的內(nèi)存使用情況,但它們在使用方式、信息詳細程度和輸出格式上有顯著區(qū)別:
1./proc/meminfo
- 位置:虛擬文件系統(tǒng)中的一個文件
- 訪問方式:
cat /proc/meminfo或直接讀取文件內(nèi)容 - 特點:
- 提供最原始、最詳細的內(nèi)存統(tǒng)計數(shù)據(jù)
- 包含內(nèi)核內(nèi)存管理的所有關(guān)鍵指標
- 每行格式:
指標名: 值 kB - 需要用戶自己計算可用內(nèi)存等衍生指標
關(guān)鍵指標示例:
MemTotal: 16302048 kB # 總物理內(nèi)存 MemFree: 1023408 kB # 完全空閑的內(nèi)存 MemAvailable: 4567890 kB # 可用內(nèi)存(估算) Buffers: 123456 kB # 緩沖區(qū)內(nèi)存 Cached: 5678901 kB # 頁面緩存 SwapCached: 78901 kB # 交換緩存 ...
2.free命令
- 工具:用戶空間的一個命令行工具
- 訪問方式:
free、free -h(人類可讀)、free -m(MB單位) - 特點:
- 解析并計算了
/proc/meminfo的數(shù)據(jù) - 提供更直觀的摘要視圖
- 自動計算可用內(nèi)存等關(guān)鍵指標
- 支持多種輸出格式
- 解析并計算了
典型輸出:
total used free shared buff/cache available Mem: 15.5G 8.2G 1.0G 456M 6.3G 6.7G Swap: 2.0G 345M 1.7G
主要區(qū)別對比
| 特性 | /proc/meminfo | free 命令 |
|---|---|---|
| 數(shù)據(jù)來源 | 內(nèi)核直接提供 | 讀取并解析 /proc/meminfo |
| 詳細程度 | 非常詳細(30+個指標) | 摘要視圖(關(guān)鍵指標) |
| 計算需求 | 需要手動計算 | 自動計算可用內(nèi)存等 |
| 易讀性 | 原始數(shù)據(jù),不易讀 | 格式友好,支持單位轉(zhuǎn)換 |
| 更新頻率 | 實時(每次讀取) | 實時(但可能緩存) |
| 使用場景 | 腳本編程、深度分析 | 快速查看、日常監(jiān)控 |
關(guān)鍵概念解釋
MemAvailable vs free 命令的 “available”
/proc/meminfo的MemAvailable:內(nèi)核估算的實際可用內(nèi)存(包含可回收的緩存)free命令的 “available”:直接使用MemAvailable的值(從內(nèi)核 3.14 開始)
“used” 內(nèi)存的計算
free 命令的 “used” 內(nèi)存計算方式:
used = total - free - buffers - cache
(這比單純看 MemFree 更有意義,因為 Linux 會充分利用空閑內(nèi)存做緩存)
實際使用示例
查看詳細內(nèi)存信息(腳本友好):
cat /proc/meminfo | grep -E "^(MemTotal|MemFree|MemAvailable|Buffers|Cached)"
快速查看摘要(日常使用):
free -h
監(jiān)控內(nèi)存趨勢:
# 使用 free 每2秒刷新 watch -n 2 free -h # 或使用更詳細的監(jiān)控 vmstat 2 5
建議
- 日常使用:用
free -h快速查看 - 腳本編程/調(diào)試:用
/proc/meminfo獲取原始數(shù)據(jù) - 性能分析:結(jié)合兩者,并加上
vmstat、top等工具
兩者本質(zhì)上查看的是同一套數(shù)據(jù),但 free 提供了更友好的用戶界面,而 /proc/meminfo 提供了更底層的訪問接口。
到此這篇關(guān)于Linux使用/proc/meminfo和free命令查看內(nèi)存信息的文章就介紹到這了,更多相關(guān)Linux /proc/meminfo和free查看內(nèi)存信息內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
linux Centos7斷網(wǎng)下安裝應用程序詳解
在本篇文章里小編給大家整理的是關(guān)于linux最新版本Centos7,斷網(wǎng)情況下安裝應用程序相關(guān)步驟,需要的朋友們可以學習下。2019-08-08
Linux?find命令的高級用法和多級目錄查找實戰(zhàn)
在日常?Linux?開發(fā)和運維中,find?是一個非常強大的文件搜索工具,除了簡單的按文件名查找,它還能按目錄、大小、時間、權(quán)限,甚至執(zhí)行批量操作,本文結(jié)合實際案例,帶你全面掌握?find?的高級用法2025-12-12
2026新版Ubuntu安裝Docker(20.10+)和Docker Compose全過程
本文詳細介紹了如何在Ubuntu系統(tǒng)上安裝和配置Docker及其Compose,包括配置鏡像加速源、安裝Docker和DockerCompose、設(shè)置環(huán)境變量以及使用DockerCompose管理多容器應用2026-02-02
詳解從Ubuntu 14.04 LTS版升級到Ubuntu 16.04 LTS
Ubuntu 16.04 (Xerial Xerus) Long Term Support版于最近發(fā)布了。要想了解它的新功能和新特性,就必須升級或安裝這個新系統(tǒng)。本文介紹了從Ubuntu 14.04 LTS版升級到Ubuntu 16.04 LTS。2016-12-12
centos 7系統(tǒng)下安裝Jenkins的步驟詳解
Jenkins是一個開源軟件項目,是基于Java開發(fā)的一種持續(xù)集成工具,下面這篇文章主要給大家介紹了關(guān)于在centos 7系統(tǒng)下安裝Jenkins的步驟,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。2017-08-08
詳解在Linux系統(tǒng)中如何識別和解決端口占用問題
在日常的 Linux 系統(tǒng)管理和開發(fā)過程中,端口占用是一個常見且令人頭疼的問題,無論是部署新服務、調(diào)試應用程序,還是進行系統(tǒng)維護,遇到端口被占用都可能導致服務無法正常啟動或運行,本文將詳細介紹在 Linux 系統(tǒng)中如何識別和解決端口占用問題,需要的朋友可以參考下2025-01-01

