在Linux操作系统中,free
命令是一个非常重要的工具,用于显示系统内存(包括物理内存和交换空间)的使用情况。
基本语法
free [选项]
常用选项
-b
或--bytes
:以字节为单位显示内存信息。-k
或--kilo
:以千字节(KB)为单位显示内存信息。-m
或--mega
:以兆字节(MB)为单位显示内存信息(这是最常见的选项)。-g
或--giga
:以吉字节(GB)为单位显示内存信息。-h
或--human
:以人类可读格式(例如1K, 2M, 3G等)显示内存信息。-s <秒数>
或--seconds=<秒数>
:连续输出内存使用情况,每次间隔指定的秒数。-t
或--total
:在输出中添加总内存和总交换空间行。-c
或--cache
:显示缓冲与缓存的总量。-w
或--wide
:宽屏输出,适合更宽的终端窗口。
输出内容详解
运行 free -m
后得到的信息通常包含以下几列:
Mem
行
- total: 表示系统的总物理内存大小(RAM)。
- used: 当前已被分配和使用的内存大小,这包括了应用程序、内核数据结构以及缓冲区和缓存占用的部分。
- free: 可立即分配给新进程使用的空闲物理内存数量。
- shared: 多个进程共享的内存区域大小。
- buff/cache: 缓冲区(Buffers)和缓存(Cached)占用的内存,这些内存虽然在技术上被列为“used”,但在必要时可以迅速回收并重新分配给其他用途。
- available: 在某些版本的free命令中,还会有
available
这一列,它代表理论上可用于启动新应用程序的内存总量,考虑到了操作系统可能释放掉部分buffers/cache的情况。
Swap
行
输出还包括有关交换空间(Swap)的信息:
- total: 系统总的交换空间大小。
- used: 当前已使用的交换空间量。
- free: 未使用的交换空间量。
了解更多
现代Linux内核对内存管理进行了优化,大量内存可能被用作文件系统缓存或页面缓存,这部分内存虽然显示为used
,但实际上当有应用程序需要更多内存时,内核会自动回收这部分缓存而无需交换到磁盘。
因此,在评估系统内存使用效率时,不应仅仅关注used
和free
的绝对值,还需结合buff/cache
和available
列来全面理解系统的内存状况。
常用命令
显示统计信息
# 人类可读格式(如K, M, G)显示
free -h
-h
参数表示以人类可读格式(如K, M, G)显示,并且包含更详细的列,比如available
列,表示理论上可用于启动新应用程序的内存量。
持续监控内存
# 每5秒更新一次输出
free -s 5 -t
标签:显示,缓存,--,free,used,内存,Linux
From: https://blog.csdn.net/aaalk1001/article/details/141756018