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环境中,C语言作为系统级编程的核心工具,其应用通常涉及两类需求:安装C语言开发环境或通过C程序获取Linux系统信息将详细解答这两种场景,确保技术准确性和实用性,所有方法均通过主流Linux发行版验证(如Ubuntu、CentOS),在Linux系统上安装C语言编译器若需在Linux中编写/运行C程……

    2025年8月4日
    5900
  • 在Linux操作系统中,如何查看当前系统有几块物理网卡设备?

    在Linux系统中,查看网卡数量是网络管理的基础操作,无论是排查网络问题、配置网络服务还是监控系统状态,都需要准确掌握网卡的识别信息,Linux提供了多种命令和工具来查看网卡信息,下面将详细介绍几种常用方法,帮助用户全面了解如何识别系统中的网卡数量及类型,使用ip命令(推荐方法)ip命令是iproute2工具包……

    2025年10月9日
    3700
  • 如何在Linux中安全删除只读文件?

    为什么只读文件无法直接删除?Linux文件权限分为三类:读(r):允许查看文件内容写(w):允许修改或删除文件执行(x):允许运行文件只读文件的权限通常为 -r–r–r–(644),缺少“写”权限,用户需先获得写权限或使用管理员权限才能删除,删除只读文件的4种方法方法1:添加写权限后删除(推荐)通过 ch……

    2025年7月21日
    7300
  • linux如何查看有几张网卡

    Linux 系统中,可使用命令 ip link show 或 ifconfig -a

    2025年8月10日
    4600
  • linux命令如何定位日志

    Linux中,可使用find命令结合时间范围等条件定位日志文件,也可通过

    2025年8月10日
    4300

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信