当前位置:首页 > 问答 > 正文

系统管理 性能监控 linux内存查看方法与内存大小查询技巧

🔍 Linux内存查看全攻略:系统管理员必备的监控技巧

场景引入
凌晨3点,服务器突然告警——内存飙到95%!💥 你揉着惺忪睡眼打开终端,却记不清该用free -h还是top?别慌!这篇指南就是你的「深夜救急手册」,从基础查询到进阶分析,连隔壁运维老王看了都直呼内行!


📊 基础篇:快速查看内存信息

free命令:内存使用概览

free -h  # 人类友好格式显示(自动换算GB/MB)

输出示例

              total    used    free    shared  buff/cache   available  
Mem:           16G     5.2G    800M     300M        10G         9G  
Swap:          2G      0B      2G  

关键指标

  • available:真正可用的内存(含缓存可回收部分)📌
  • buff/cache:内核缓存占用的内存(必要时会自动释放)

小技巧

watch -n 2 free -h  # 每2秒刷新一次(Ctrl+C退出)

top/htop:动态监控进程内存

top  # 经典工具(按`M`按内存排序)
htop # 彩色增强版(需安装,支持鼠标操作)  

重点关注列

系统管理 性能监控 linux内存查看方法与内存大小查询技巧

  • RES:进程实际占用物理内存
  • %MEM:内存占用百分比

举个栗子🌰
发现某个Python进程占用了20%内存?可能是内存泄漏!


🔍 进阶篇:深度内存分析

/proc/meminfo:原始数据宝库

cat /proc/meminfo | grep -E 'MemTotal|MemFree|Buffers|Cached'  

专业术语解析

  • Slab:内核数据结构占用内存
  • SwapCached:曾被换出但又被换入的内存

vmstat:内存趋势分析

vmstat -s  # 统计模式(显示开机至今内存变化)
vmstat 2 5 # 每2秒采样1次,共5次  

输出关键项

  • si(swap in)/so(swap out):交换分区活动频率(频繁交换说明物理内存不足⚠️)

🛠️ 实战技巧:特殊场景处理

▸ 如何准确计算可用内存?

awk '/MemAvailable/{print $2}' /proc/meminfo  # 最精确的可用内存值  

▸ 查询服务器最大支持内存

dmidecode -t memory | grep -i size  # 需root权限(显示物理插槽信息)

或通过内核日志:

系统管理 性能监控 linux内存查看方法与内存大小查询技巧

dmesg | grep -i memory  

▸ 快速释放缓存(紧急情况用)

sync && echo 3 > /proc/sys/vm/drop_caches  # 释放pagecache/slab等(不影响进程)  

💡 内存问题排查思路

  1. 物理内存不足

    • 检查free -havailable
    • ps aux --sort=-%mem | head找出内存大户
  2. 内存泄漏嫌疑

    • 连续执行free -h观察used是否持续增长
    • 使用valgrind检测应用程序(开发环境)
  3. Swap被频繁使用

    • vmstat 1观察si/so
    • 考虑增加物理内存或优化应用配置

🎯 总结速查表

场景 推荐命令
快速看剩余内存 free -h
找内存占用Top进程 htop(按F6选%MEM排序)
检查内存硬件信息 dmidecode -t memory
长期监控内存波动 vmstat 60(每小时采样)

最后的小幽默
当你的服务器内存总是不够用时,—不是内存太小,而是老板的梦想太大!😉 (加内存条可能更实际...)

系统管理 性能监控 linux内存查看方法与内存大小查询技巧

本文参考2025年7月最新Linux内核文档及主流发行版实践验证,适用于CentOS/RHEL/Ubuntu等主流系统。

发表评论