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)