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

相关推荐

  • 当前用户密码?非root!

    在Linux系统中,”超级用户”(又称root用户)拥有系统的最高权限,可执行所有操作(包括修改核心文件、安装全局软件等),但滥用root权限极易导致系统崩溃或安全漏洞,请严格遵循以下专业操作指南:成为超级用户的3种安全方式方法1:临时切换root(推荐)# 或执行单条root命令sudo rm /path/t……

    2025年7月24日
    22600
  • Linux中如何创建文件夹路径?

    在Linux操作系统中,创建文件夹路径是日常管理和开发中的基础操作,无论是搭建项目结构、整理文件系统还是配置服务环境,都离不开目录的创建,Linux提供了强大的mkdir命令(make directory的缩写)来实现这一功能,通过合理使用其参数和选项,可以灵活应对各种复杂的路径创建需求,本文将详细讲解mkdi……

    2025年9月20日
    21800
  • SELinux配置文件保存错误后果?必看解决方案!

    SELinux配置文件路径核心配置文件位于:/etc/selinux/config该文件控制SELinux的全局模式(Enforcing, Permissive, Disabled),保存配置的两种方法方法1:直接编辑配置文件(推荐永久生效)备份原文件(避免误操作):sudo cp /etc/selinux/c……

    2025年6月16日
    18800
  • Linux如何查看网卡网关?

    使用 ip route 命令(推荐)这是最现代且准确的方法,适用于所有主流 Linux 发行版(如 Ubuntu、CentOS、Debian),操作步骤:打开终端(快捷键 Ctrl+Alt+T),输入命令: ip route show default输出示例:default via 192.168.1.1 de……

    2025年7月12日
    29300
  • Linux端口占用?快速解决强制绑定问题

    释放被占用的端口(强制解除占用)当端口被其他进程占用时,需终止占用进程:查找占用进程sudo lsof -i :端口号 # 如 sudo lsof -i :80# 或sudo netstat -tulnp | grep :端口号输出中记录 PID(进程ID),终止进程sudo kill -9 PID # 强制终……

    2025年7月19日
    26700

发表回复

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

联系我们

400-880-8834

在线咨询: QQ交谈

邮件:HI@E.KD.CN

关注微信