在 Linux 服务器的日常运维中,监控资源使用情况是防止系统崩溃的关键一步,内存作为计算机的“工作台”,其使用效率直接决定了服务器的响应速度和稳定性,如果内存不足,系统可能会开始频繁使用交换空间(Swap),导致性能急剧下降。
本文将详细介绍几种常用的 Linux 查询服务器内存使用情况 的方法,帮助您快速定位瓶颈。
使用 free 命令(最常用、最直观)
free 命令是查看内存状态最基础也是最高效的工具,它以人类可读的格式(KB, MB, GB)显示内存总量、已用、空闲和缓存信息。

基本用法:
free -h
参数解释:
-h:以人类可读的格式(1K, 234M, 2G)显示。
输出解读:
total used free shared buff/cache available Mem: 7.6G 3.2G 1.1G 120M 3.3G 4.1G Swap: 2.0G 0B 2.0G
- total: 物理内存的总大小。
- used: 系统正在使用的内存大小(包括应用程序使用的和缓冲区/缓存占用的)。
- free: 完全未被使用的物理内存大小。
- buff/cache: 这是 Linux 的一个特性,它将一部分内存用作文件系统的缓存(buffer)和应用程序的缓存(cache)。请注意,这部分内存虽然被标记为“已用”,但并不意味着程序正在占用它,如果程序需要,Linux 会立即回收这部分内存。
available(可用内存)比free更能反映真实的内存余量。
使用 top 或 htop 命令(实时监控)
如果您想实时查看内存使用情况,或者需要查看是哪个进程占用了大量内存,top 是首选。
基本用法:
top
操作技巧:
- 在
top运行时,按下M键,列表会自动按照 内存使用量 从高到低排序。 - 按下
q键退出。
进阶工具:htop
htop 是 top 的增强版,界面更美观,支持鼠标操作和颜色区分。
- 安装:
yum install htop(CentOS) 或apt install htop(Ubuntu) - 使用:直接输入
htop即可。
使用 vmstat 命令(深入分析)
vmstat (虚拟内存统计) 提供了关于进程、内存、I/O 等的系统活动的详细信息,它对于判断内存是否严重不足非常有用。
基本用法:
vmstat 1
关键指标解读:
- si (swap in): 每秒从交换分区读入 RAM 的数据量。
- so (swap out): 每秒从 RAM 写入交换分区的数据量。
- bi (blocks in): 每秒从磁盘读取的块数。
- bo (blocks out): 每秒写入磁盘的块数。
注意: si 和 so 的数值长期不为 0,说明物理内存已经非常紧张,系统正在频繁地将数据在内存和硬盘之间交换,这会极大地拖慢服务器速度。
使用 smem 命令(按进程统计)
如果您怀疑某个特定的应用程序占用了过多内存,可以使用 smem,它能精确统计每个进程的内存使用情况(包括共享内存)。
基本用法:
smem -k
输出解读: 它会列出所有进程及其 RSS(常驻集大小)和 PSS(比例集大小),方便您找出“内存杀手”。
在 Linux 中查询服务器内存使用情况,通常建议结合使用:
用 `free
文章版权声明:除非注明,否则均为xmsdn原创文章,转载或复制请以超链接形式并注明出处。

