当前位置:首页 > 云服务器 > 正文

服务器查看内存命令

服务器 内存的常用命令包括 free -h、 cat /proc/meminfo、 top、 htop和 vmstat。

常用服务器查看内存的命令(Linux系统)

以下是不同场景下常用的内存查看命令及说明:


free — 基础内存统计

  • 作用: 显示系统物理内存、交换分区的使用情况(包括总量、已用、空闲等)。
  • 常用参数:
    • free -h → 以人类可读格式(GB/MB)展示数据。
    • free -m → 按兆字节(MB)显示。

  • 示例输出解析:

    | 字段 | 含义 |

    |————–|——————————|

    | total | 总内存容量 |

    | used | 已使用的物理内存 |

    | free | 未使用的物理内存 |

    | shared | 多个进程间共享的内存 |

    | buffers/cached | 被缓存占用的内存(可回收) |

    | available | 应用程序实际能申请的最大可用内存 |

注意: “buffers/cached”并非真正闲置,而是系统自动优化缓存机制的一部分,若需评估真实压力,应关注 available 列。


top / htop — 动态实时监控

  • 交互式工具,默认每秒刷新一次资源占用排名,重点观察以下列:
    • KiB Mem → 物理内存使用比例;
    • KiB Swap → 交换空间(磁盘模拟的虚拟内存);
    • RES → 进程独占的实际物理内存消耗。

  • 安装建议: 如果未预装htop,可通过包管理器安装(如Ubuntu执行 sudo apt install htop),它的彩色界面比top更直观。

vmstat — 系统级性能分析

  • 语法: vmstat [间隔秒数] [采样次数],vmstat 2 5 表示每2秒采集一次数据,共5次。
  • 关键指标解读:

    | 列名 | 说明 |

    |———-|————————————–|

    | si/so | 交换入/出的速率(过高说明内存不足) |

    | bi/bo | 块设备I/O等待时间(关联磁盘瓶颈) |

    | us/sy/id | 用户程序/内核占用CPU的比例 & 空闲率 |

典型问题信号: si > 0持续出现时,表明开始频繁使用交换区,需警惕内存溢出风险。

服务器查看内存命令 第1张


cat /proc/meminfo — 底层原始数据源

直接读取内核提供的详细内存映射表,适合高级排错,部分重要条目如下:

服务器查看内存命令 第2张

服务器查看内存命令 第3张

MemTotal: 16384000 kB # 总物理内存大小 MemFree: 2103456 kB # 完全空闲的部分 Active: 7235678 kB # 正在活跃使用的页面 Dirty: 102400 kB # 被修改但尚未写回磁盘的数据块

此文件实时更新,无需任何参数即可获取最精准的数值。


远程管理工具集成(可选扩展)

对于规模化部署的环境,推荐结合以下方案批量收集指标:

| 工具类型 | 代表方案 | 优势 |

|—————-|————————|————————–|

| Zabbix模板 | Linux memory monitoring | 自动化告警阈值配置 |

| Prometheus+NodeExporter | metrics端点暴露 | 整合Grafana可视化面板 |

| Ansible Playbook | ad-hoc命令执行 | 跨多节点统一快照留存 |


相关问题与解答

Q1: 如果发现 available 内存非常低但 free 很高怎么办?

A: 这是Linux的内存分配策略特性——会优先将空闲内存用作缓存以提高性能,只有当其他进程需要时才会释放这些缓存,可通过调整应用程序或增加物理内存条解决根本问题,而非单纯依赖技术手段“清理”。

Q2: 如何快速定位哪个进程占用了大量内存?

A: 在top命令运行状态下按 M键,会自动按内存使用量从高到低排序进程列表;或者使用组合命令 ps aux --sort=-%mem | head -n10 直接列出TOP10耗内存进程,对于Java应用等特殊场景,还需进一步分析堆转储

0