Linux free命令详解:分析查看内存使用情况
在Linux系统中,了解系统内存的使用情况对于性能监控和调优至关重要。free 命令是一种常用的工具,用于显示系统内存的详细信息,包括物理内存和交换内存的使用情况。本文将详细介绍如何使用 free 命令,以及解释输出的各个字段。
🧑 博主简介:现任阿里巴巴嵌入式技术专家,15年工作经验,深耕嵌入式+人工智能领域,精通嵌入式领域开发、技术管理、简历招聘面试。各技术博客社区平台的优质创作者,提供产品测评、学习辅导、简历面试辅导、毕设辅导、项目开发、C/C++/Java/Python/Linux/AI等方面的服务,如有需要请站内私信或者联系任意文章底部的的VX名片(ID:
gylzbk)
💬 博主粉丝群介绍:① 群内高中生、本科生、研究生、博士生遍布,可互相学习,交流困惑。② 热榜常客也在群里,也有数不清的万粉大佬,可以交流写作技巧,上榜经验,涨粉秘籍。③ 群内也有职场精英,大厂大佬,可交流技术、面试、找工作的经验。④ 进群免费赠送写作秘籍一份,助你由写作小白晋升为创作大佬。⑤ 群里红包不断,异常活跃,感兴趣的加我vx(ID:
gylzbk),拉你进群,互相学习共同进步。

概述
在Linux系统中,了解系统内存的使用情况对于性能监控和调优至关重要。free 命令是一种常用的工具,用于显示系统内存的详细信息,包括物理内存和交换内存的使用情况。本文将详细介绍如何使用 free 命令,以及解释输出的各个字段。
 free 命令简介
free 是一个命令行工具,用于显示系统中物理内存和交换内存的使用情况。它提供了一种简单而有效的方式来查看内存的总量、已用内存、空闲内存和缓冲/缓存的内存。
安装与基本用法
 安装 free 命令
在大多数的Linux发行版中,free 命令默认情况下已经安装。它属于 procps 软件包的一部分。如果你的系统上没有 free 命令,可以通过包管理器进行安装。
- 在Debian/Ubuntu系统上:
sudo apt-get install procps
- 在CentOS/RHEL系统上:
sudo yum install procps-ng
基本用法
运行 free 命令:
free
输出示例:
$ free
              total        used        free      shared  buff/cache   available
Mem:        8063436     3463948     1985968      268008     2181520     4128060
Swap:       2097148           0     2097148
 free 命令输出详解
默认情况下,free 命令的输出包括两部分:内存(Mem)和交换分区(Swap)。以下是每个字段的解释。
Mem(内存)
- total:总内存量。
- used:已用内存量,包括内核缓冲区和缓存。
- free:未被使用的内存量。
- shared:在多个进程间共享的内存量。
- buff/cache:内核缓冲区和缓存所占用的内存量。
- available:用户空间程序可用的内存量(考虑到缓冲区和缓存后)。
Swap(交换分区)
- total:总交换分区大小。
- used:已用交换分区大小。
- free:未被使用的交换分区大小。
常用选项
 1. 使用-h选项显示人类可读格式
用 -h 选项可以将内存以人类可读的形式显示(例如,K、M、G单位)。
free -h
输出示例:
$ free -h
              total        used        free      shared  buff/cache   available
Mem:           7.7G        3.3G        1.9G        262M        2.1G        4.0G
Swap:          2.0G          0B        2.0G
 2. 使用-b, -k, -m, -g选项指定单位
显示内存信息时,可以使用不同的单位:
- -b:以字节为单位显示。
- -k:以千字节为单位显示(默认)。
- -m:以兆字节为单位显示。
- -g:以千兆字节为单位显示。
free -m
输出示例:
$ free -m
              total        used        free      shared  buff/cache   available
Mem:           7881        3384        1940         262        2132        4028
Swap:          2047           0        2047
 3. 使用-t选项显示总和
用 -t 选项可以在输出中增加一行显示内存和交换分区的总和。
free -t
输出示例:
$ free -t
              total        used        free      shared  buff/cache   available
Mem:        8063436     3463948     1985968      268008     2181520     4128060
Swap:       2097148           0     2097148
Total:     10160584     3463948     4083116
 4. 周期性输出(使用-s选项)
用 -s 选项可以设定间隔时间,周期性地显示内存信息。
free -s 2
每2秒刷新一次内存信息,直到手动终止(Ctrl+C)。
 结合watch命令实时监控
watch 命令可以定时执行某个命令,并在终端中动态显示结果。结合 free 命令,可以实时监控内存使用情况。
watch -n 2 free -h
每2秒刷新一次 free -h 的输出。
其他查看内存使用情况的方法
 1. 通过/proc/meminfo
/proc/meminfo 是一个虚拟文件,包含了大量关于系统内存使用情况的信息。
cat /proc/meminfo
输出示例:
$ cat /proc/meminfo
MemTotal:        8063436 kB
MemFree:         1985968 kB
MemAvailable:    4128060 kB
Buffers:          262008 kB
Cached:          1919520 kB
SwapTotal:       2097148 kB
SwapFree:        2097148 kB
...
 2. 使用vmstat
vmstat 提供了一个全面的性能统计报告,包括内存、虚拟内存、CPU、磁盘IO等信息。
vmstat
输出示例:
$ vmstat
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
 1  0      0 2001848 269080 2181520    0    0    51    31  199  658  3  1 96  0  0
 3. 使用htop或top
htop 和 top 是两个交互式的系统监控工具,能够显示实时的内存使用情况。
 使用htop
htop
 使用top
top
总结
通过本文的介绍,你已经全面了解了 free 命令的用法与输出解释,以及一些常用选项和高级功能。同时,还了解了结合 watch 命令进行实时监控的方法。为了进一步提升系统监控的效果,你还可以使用其他的工具,如 /proc/meminfo, vmstat, 以及 htop 或 top。这些工具配合使用,可以帮助你详细了解系统的内存使用情况,从而进行有效的性能调优和监控。
希望本文能帮助你更好地掌握Linux系统内存监控的技能。如果有任何问题或进一步的需求,欢迎继续交流讨论!
- 点赞
- 收藏
- 关注作者
 
             
           
评论(0)