free
是 Linux 系统中用于查看内存使用情况的常用命令,它可以显示系统的物理内存、交换空间(Swap)和内核缓冲区的使用情况。以下是 free
命令的详细使用方法:
直接输入 free
命令,默认以 KB 为单位显示内存信息:
free
输出示例:
total used free shared buff/cache available
Mem: 8000000 3000000 2000000 100000 3000000 4500000
Swap: 2000000 500000 1500000
自动转换为 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
包括更详细的内核缓冲区统计:
free -a
每隔 N
秒刷新一次(按 Ctrl+C
退出):
free -s 3 # 每3秒刷新一次
在输出末尾添加 总计行(物理内存 + Swap):
free -t
强制以特定单位显示(KiB/KB、MiB/MB、GiB/GB):
free --mebi # 以 MiB 为单位
free --gibi # 以 GiB 为单位
字段 | 说明 |
---|---|
total |
总内存量(物理内存或 Swap)。 |
used |
已使用的内存(包括缓冲区和缓存)。 |
free |
完全未被使用的内存。 |
shared |
被共享使用的内存(如 tmpfs)。 |
buff/cache |
内核缓冲区(buffers)和页缓存(cache)占用的内存,可被快速释放。 |
available |
估算的可用内存(包含未被使用的缓存和缓冲区,更接近实际可用值)。 |
free
列 vs available
列
free
:严格未使用的内存,可能偏小(因为 Linux 会利用空闲内存做缓存)。available
:更实际的值,表示系统可立即分配给程序的内存(包括可回收的缓存)。Swap 使用过高
Swap
的 used
值持续很高,说明物理内存不足,可能需要优化程序或增加内存。清理缓存(非必要不操作)
sync && echo 3 > /proc/sys/vm/drop_caches # 清理页缓存、目录项和inode
⚠️ 生产环境慎用,可能影响性能。
bash
watch -n 1 free -h # 每秒刷新一次
bash
top -o %MEM # 按内存占用排序
通过 free
命令,你可以快速诊断内存瓶颈或验证系统资源使用情况。根据需求选择合适的选项即可!