linux中free命令怎么使用

来源:3D模型作者:弦宿​头衔:草根站长
导读:本期聚焦于小伙伴创作的《linux中free命令怎么使用》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《linux中free命令怎么使用》有用,将其分享出去将是对创作者最好的鼓励。

free命令基础用法

free命令是linux系统中用于查看内存和交换空间使用情况的工具,默认情况下直接执行free命令就可以输出当前系统的内存状态,输出内容包含物理内存、交换分区、缓冲区和缓存的相关数据。

linux中free命令怎么使用

执行默认的free命令后,会输出如下格式的内容:

free
              total        used        free      shared  buff/cache   available
Mem:        2048000      512000      256000       32000      1280000      1500000
Swap:       1024000           0      1024000

free命令常用参数

free命令支持多个参数来调整输出格式和内容,常用的参数如下:

  • -h:以人类可读的格式输出,自动转换单位为K、M、G,方便查看
  • -b:以字节为单位输出内存大小
  • -k:以KB为单位输出内存大小,是默认单位
  • -m:以MB为单位输出内存大小
  • -g:以GB为单位输出内存大小
  • -s N:每隔N秒持续输出内存状态,适合监控内存变化
  • -t:在输出末尾显示内存和交换分区的总和
  • -V:查看free命令的版本信息

参数使用示例

以人类可读格式查看内存状态,执行以下命令:

free -h
              total        used        free      shared  buff/cache   available
Mem:           2.0G        500M        250M         31M        1.2G        1.5G
Swap:          1.0G          0B        1.0G

每隔2秒持续输出内存状态,执行以下命令:

free -s 2
              total        used        free      shared  buff/cache   available
Mem:        2048000      512000      256000       32000      1280000      1500000
Swap:       1024000           0      1024000

              total        used        free      shared  buff/cache   available
Mem:        2048000      513000      255000       32000      1280000      1499000
Swap:       1024000           0      1024000

输出字段含义详解

free命令的输出包含多个字段,理解每个字段的含义才能准确判断内存使用情况:

字段名含义说明
total系统总的内存大小,包含物理内存或交换分区的总容量
used已经被使用的内存大小,计算方式为total减去free和buff/cache
free完全未被使用的内存大小
shared被共享内存使用的内存大小,通常是tmpfs等共享内存机制占用的空间
buff/cache缓冲区和缓存占用的内存大小,这部分内存可以被释放供应用程序使用
available估算的可用内存大小,是free加上可以释放的buff/cache部分,比free更能反映实际可用内存
Swap交换分区的相关数据,total是交换分区总大小,used是已使用的交换空间,free是未使用的交换空间

buff和cache的区别

buff是缓冲区,主要用于存储磁盘等块设备的读写临时数据,比如写文件时的临时缓冲;cache是缓存,主要用于存储从磁盘读取的文件内容、程序指令等,加快后续访问速度。两者都是为了提高系统IO性能设计的,当系统内存不足时,这部分内存可以被内核回收分配给应用程序使用。

实际场景使用技巧

判断内存是否充足

判断系统内存是否充足不要只看free字段,因为linux系统会尽可能使用内存做缓存提升性能,应该重点看available字段。如果available字段的值持续很低,说明系统内存不足,需要考虑扩容或者排查内存泄漏问题。

排查内存泄漏

可以使用free -s 5命令每隔5秒输出一次内存状态,观察used和available的变化。如果available持续下降,used持续上升,且buff/cache没有明显波动,就可能存在应用程序内存泄漏的问题,需要结合top、ps等命令定位具体的进程。

清理缓存释放内存

如果临时需要释放buff/cache占用的内存,可以执行以下命令,注意该操作需要root权限,且清理缓存可能会导致后续IO性能下降:

# 清理页缓存、目录项缓存、inode缓存
echo 3 > /proc/sys/vm/drop_caches

清理后再次执行free命令,可以看到buff/cache字段的数值明显下降,free字段的数值上升。

注意事项

  • free命令的输出是瞬时状态,不能代表长期的趋势,排查问题需要结合多次采样的数值
  • 交换分区的used数值升高说明系统内存不足,开始使用磁盘交换空间,会严重影响系统性能,需要重点关注
  • 不同版本的free命令输出格式可能略有差异,部分老版本可能没有available字段,此时可以通过free加上buff/cache的数值估算可用内存

free命令linux内存查看linux系统监控buffer_cache修改时间:2026-06-28 07:33:30

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。