# free 命令

free 命令用于显示系统的内存使用情况,包括物理内存、交换空间(swap)、缓冲区和缓存。

# 语法

free [选项]

# 常用选项

  • -h: 以人类可读的格式显示
  • -s N: 每N秒更新一次显示
  • -t: 显示内存总计
  • -w: 使用宽输出模式
  • -b/k/m/g: 以字节/KB/MB/GB为单位显示

# 使用示例

# 基本用法

# 显示内存使用情况(人类可读格式)
free -h

# 每3秒更新一次显示
free -h -s 3

# 显示详细信息(宽输出模式)
free -w

# 不同单位显示

# 以MB为单位显示
free -m

# 以GB为单位显示
free -g

# 显示完整的字节数
free -b

# 持续监控

# 每秒更新一次,显示10次
free -h -s 1 -c 10

# 持续监控并保存到文件
free -h -s 5 | tee memory.log

# 输出说明

  • total: 总内存大小
  • used: 已使用内存
  • free: 空闲内存
  • shared: 共享内存
  • buff/cache: 缓冲区和缓存使用的内存
  • available: 可用内存(包括可回收的缓存)

# 实际应用场景

  1. 系统监控:监控系统内存使用情况
  2. 性能分析:分析系统内存瓶颈
  3. 问题诊断:排查内存相关问题
  4. 容量规划:评估内存需求

# 注意事项

  1. buff/cache占用的内存通常可以被应用程序使用
  2. available不等于free,它包括可以回收的缓存
  3. 过高的swap使用可能表示内存不足
  4. 持续监控时注意输出文件大小