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装XP,虚拟机还是双系统更轻松?

    虚拟机安装(安全推荐)通过虚拟化软件(如VirtualBox)在Linux中模拟XP环境,不破坏原有系统,步骤:安装VirtualBoxsudo apt update && sudo apt install virtualbox # Debian/Ubuntusudo dnf install V……

    2025年7月5日
    19200
  • Linux操作系统中,如何正确建立软链接的步骤是什么?

    在Linux系统中,软链接(也称为符号链接)是一种特殊的文件类型,它类似于Windows系统中的快捷方式,指向另一个文件或目录的路径,与硬链接直接指向文件的inode不同,软链接存储的是目标文件或目录的路径字符串,因此可以跨文件系统创建,且对目标文件的操作(如移动、删除)会直接影响软链接的有效性,下面将详细介绍……

    2025年9月24日
    14600
  • Linux环境下编译运行C语言程序的操作流程是怎样的?

    在Linux环境下编译和运行C程序是开发者必备的基础技能,整个过程涉及源代码编写、编译、链接和执行四个核心环节,本文将详细讲解每个步骤的操作方法、常用工具及注意事项,帮助读者掌握完整的C程序开发流程,开发环境准备在开始编译运行C程序前,需确保系统已安装必要的开发工具,Linux发行版通常默认安装GCC(GNU……

    2025年9月23日
    14500
  • Linux下如何查看RAID信息?

    在Linux系统中,RAID(磁盘阵列)通过多块磁盘组合提升数据冗余性、性能或容量,查看RAID信息是日常运维的重要工作,无论是软件RAID(基于Linux内核的mdadm)还是硬件RAID(通过独立控制器管理),均需通过特定工具或命令获取状态,本文将详细介绍查看Linux RAID信息的方法,涵盖软件RAID……

    2025年10月9日
    16200
  • Windows下误删Linux分区怎么办?

    方法1:使用Windows磁盘管理工具(推荐基础用户)原理:删除Linux分区后重建为Windows兼容格式(NTFS/FAT32),步骤:打开磁盘管理按 Win + R 输入 diskmgmt.msc 回车,定位Linux分区 识别Linux分区(通常显示为”未分配”或”RAW”,无盘符),删除分区 右键点击……

    2025年7月9日
    14000

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信