Linux服务器如何查询内存使用情况及命令方法?

在Linux服务器运维中,监控内存使用情况是确保系统稳定运行的关键环节,通过内存数据可以及时发现资源瓶颈、排查性能问题,Linux系统提供了多种命令和工具来查询内存信息,以下详细介绍常用方法及其使用场景。

linux服务器如何查询内存

free命令:快速查看内存使用概览

free是最基础的内存查看命令,通过-h(人类可读格式)或-m/-g(指定单位)可直观展示内存总量、已用、空闲及缓存情况。

基本用法

free -h  # 以KB/MB/GB为单位显示,自动适配单位
free -m  # 以MB为单位显示

输出解读(以free -h为例):

              total        used        free      shared  buff/cache   available
Mem:           7.7G        2.1G        1.2G        256M        4.4G        5.0G
Swap:          2.0G          0B        2.0G
  • total:物理内存总量;
  • used:已使用内存(包含应用程序+缓存+缓冲区);
  • free:完全空闲内存;
  • buff/cache:缓存(文件缓存)和缓冲区(块设备缓存),这部分可被程序回收;
  • available:真正可用的内存(free + buff/cache中可回收部分),比free更准确,是判断内存是否紧张的核心指标;
  • Swap:交换分区使用情况,频繁使用Swap可能导致系统卡顿。

top/htop命令:动态监控内存使用进程

tophtop可实时查看进程内存占用,适合定位高内存消耗进程。htoptop的增强版(需安装,如yum install htopapt install htop),界面更友好,支持鼠标操作。

top命令关键操作

linux服务器如何查询内存

  • M:按内存使用率降序排序;
  • c:切换进程名/完整命令行显示;
  • 内存相关列:RES(物理内存占用)、SHR(共享内存)、%MEM(内存使用率百分比)。

htop优势

  • 彩色区分进程状态,内存条形图直观展示;
  • 支持横向滚动查看完整命令、F2键进入设置调整显示列;
  • 快捷键F3搜索进程、F4过滤进程,定位更高效。

vmstat命令:监控系统内存与交换分区状态

vmstat可动态显示系统资源使用趋势,包括内存、CPU、磁盘I/O等,适合长期监控。

基本用法

vmstat 2 5  # 每2秒刷新一次,共显示5次

内存相关字段

  • swpd:已使用的交换分区大小(若持续增大,说明内存不足);
  • free:空闲内存(单位KB);
  • buff:缓冲区大小;
  • cache:缓存大小;
  • si/so:每秒从交换区读入/写入内存的数据量(频繁非零需警惕内存不足)。

cat /proc/meminfo:获取详细内存参数

/proc/meminfo是内核提供的内存信息文件,包含更底层的内存统计,适合精确分析。

linux服务器如何查询内存

常用字段

  • MemTotal:物理内存总量;
  • MemFree:完全空闲内存;
  • MemAvailable:可用内存(推荐参考);
  • Buffers:块设备缓冲区;
  • Cached:文件页缓存;
  • SwapTotal/SwapFree:交换分区总量/剩余量。

示例

cat /proc/meminfo | grep -E "MemTotal|MemAvailable|SwapTotal"

内存查询命令对比

命令 主要用途 常用选项 输出特点
free 快速查看内存总量及使用情况 -h-m-g 简洁直观,适合快速概览
top/htop 动态监控进程内存占用 -p(指定进程) 实时更新,可排序/过滤
vmstat 内存与系统资源趋势监控 间隔次数 动态数据,适合长期分析
/proc/meminfo 获取详细内存参数 grep过滤字段 底层数据,精确全面

相关问答FAQs

Q1:为什么free命令显示的可用内存(available)比空闲内存(free)小,但系统仍提示内存充足?
A:available是真正可被程序直接使用的内存(包含空闲内存+可回收的缓存/缓冲区),而free仅是完全未使用的内存,Linux会主动将空闲内存用于文件缓存(buff/cache),以提高读写性能,当程序需要内存时,内核会回收这部分缓存,因此available更能反映实际可用内存,若available持续低于总内存的10%,才需警惕内存不足。

Q2:tophtop查看内存时,RESSHR字段有什么区别?如何判断进程内存是否异常?
A:RES(Resident Set Size)表示进程当前占用的物理内存(包含私有内存+共享库),SHR(Shared Memory)表示进程与其他进程共享的内存(如动态库、共享内存段),判断异常时,重点关注%MEM(内存使用率占比)和RES绝对值:若单个进程%MEM超过20%或RES超过系统内存的30%,且伴随系统卡顿、频繁使用Swap,则可能存在内存泄漏,需进一步分析进程(如用pmap查看内存映射)。

原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/38339.html

(0)
酷番叔酷番叔
上一篇 2025年10月8日 13:19
下一篇 2025年10月8日 13:38

相关推荐

  • Linux如何获取控制台输出的文件路径?

    在Linux系统中,控制台输出通常与终端设备文件相关联,这些文件是操作系统与用户交互的接口,要读取控制台输出的文件路径,首先需要理解Linux终端的类型及其对应的设备文件路径,再通过命令工具定位和读取这些文件,以下是详细步骤和方法的说明,Linux终端设备文件类型及路径Linux中的终端主要分为物理终端、虚拟终……

    2025年10月1日
    11800
  • Linux网络连接工具有哪些?常用工具及使用方法是什么?

    Linux作为开源操作系统,其网络连接工具丰富多样,涵盖了从基础网络配置、连通性测试到高级流量监控、安全连接等全场景需求,这些工具既有命令行形式的高效操作,也有图形化界面的便捷管理,能够满足不同用户的使用习惯,以下将从命令行工具、图形化工具、诊断监控工具及配置管理工具四个维度,详细介绍Linux中常用的网络连接……

    2025年9月19日
    11200
  • linux如何运行python程序退出

    Linux终端运行Python程序后,输入exit()函数或按Ctrl+D

    2025年8月14日
    11600
  • 如何以管理员模式打开PowerShell?

    理解“进入Linux”的三种场景“进入Linux”通常指以下操作:物理设备直接操作:在已安装Linux的电脑上登录系统远程连接:通过网络访问Linux服务器虚拟机/容器环境:在现有操作系统中启动Linux环境物理设备直接登录(适用个人电脑)步骤详解:启动准备确保设备已安装Linux系统(如Ubuntu、Cent……

    2025年6月27日
    12700
  • linux终端如何全屏

    Linux终端中,通常可按快捷键组合Ctrl+X加A(先按Ctrl和X

    2025年8月18日
    10900

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信