插件窝 干货文章 linux中free命令怎么使用

linux中free命令怎么使用

内存 free 缓存 使用 409    来源:    2025-04-26

free 是 Linux 系统中用于查看内存使用情况的常用命令,它可以显示系统的物理内存、交换空间(Swap)和内核缓冲区的使用情况。以下是 free 命令的详细使用方法:


1. 基本用法

直接输入 free 命令,默认以 KB 为单位显示内存信息:

free

输出示例:

              total        used        free      shared  buff/cache   available
Mem:        8000000     3000000     2000000      100000     3000000     4500000
Swap:       2000000      500000     1500000

2. 常用选项

(1)以易读的单位显示(-h)

自动转换为 GB/MB/KB 等人类可读格式:

free -h

输出示例:

              total        used        free      shared  buff/cache   available
Mem:           7.7G        3.1G        1.9G        200M        2.7G        4.3G
Swap:          2.0G        500M        1.5G

(2)显示全部内存信息(-a)

包括更详细的内核缓冲区统计:

free -a

(3)周期性刷新(-s)

每隔 N 秒刷新一次(按 Ctrl+C 退出):

free -s 3  # 每3秒刷新一次

(4)显示总统计(-t)

在输出末尾添加 总计行(物理内存 + Swap):

free -t

(5)指定单位(--kibi/--mebi/--gibi)

强制以特定单位显示(KiB/KB、MiB/MB、GiB/GB):

free --mebi    # 以 MiB 为单位
free --gibi    # 以 GiB 为单位

3. 输出字段解释

字段 说明
total 总内存量(物理内存或 Swap)。
used 已使用的内存(包括缓冲区和缓存)。
free 完全未被使用的内存。
shared 被共享使用的内存(如 tmpfs)。
buff/cache 内核缓冲区(buffers)和页缓存(cache)占用的内存,可被快速释放。
available 估算的可用内存(包含未被使用的缓存和缓冲区,更接近实际可用值)。

4. 关键注意事项

  1. free 列 vs available

    • free:严格未使用的内存,可能偏小(因为 Linux 会利用空闲内存做缓存)。
    • available:更实际的值,表示系统可立即分配给程序的内存(包括可回收的缓存)。
  2. Swap 使用过高

    • 如果 Swapused 值持续很高,说明物理内存不足,可能需要优化程序或增加内存。
  3. 清理缓存(非必要不操作)

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

    ⚠️ 生产环境慎用,可能影响性能。


5. 结合其他工具

  • 动态监控内存变化
    bash watch -n 1 free -h # 每秒刷新一次
  • 按进程查看内存
    bash top -o %MEM # 按内存占用排序

通过 free 命令,你可以快速诊断内存瓶颈或验证系统资源使用情况。根据需求选择合适的选项即可!