意见箱
恒创运营部门将仔细参阅您的意见和建议,必要时将通过预留邮箱与您保持联络。感谢您的支持!
意见/建议
提交建议
配置详情
本产品仅限新用户首购专享!每人限购1台,续费5折
当前配置
数据中心: {{ getconfigInfoArea(productDetailInfo) }}
套餐规格: 2 核 2 G
带宽:
系统盘 {{ validateMySplit(ProductVM.getProductappointInfoBykey(productDetailInfo,'云系统盘'),'|',1) }} 性能型
IP 数 1 个
可选配置
操作系统:
VPC:
安全组:
购买时长:
1 月
我已阅读并同意《恒创科技服务协议》
购买前请阅读协议并勾选同意

Ubuntu系统内存查看全攻略:从基础命令到高级分析

来源:佚名 编辑:佚名
2026-02-15 23:44:06

一、为什么需要查看内存信息?

在Ubuntu系统管理中,内存(RAM)是影响性能的关键因素。无论是优化应用程序、排查卡顿问题,还是规划服务器扩容,准确获取内存信息都是基础操作。本文将系统介绍6种实用方法,覆盖从简单到复杂的所有场景。

二、基础命令:快速获取内存总量

1. free命令(最常用)

free -h

输出示例:

项目总量已用空闲共享缓冲/缓存可用
内存15Gi4.2Gi1.8Gi1.0Gi8.0Gi10Gi

参数说明:
- -h:人类可读格式(自动转换单位)
- -m:以MB为单位显示
- -s 5:每5秒刷新一次(实时监控)

2. cat /proc/meminfo(最详细)

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

输出示例:

MemTotal:       16278220 kB
MemFree:         1945600 kB
Buffers:          123456 kB
Cached:          8123456 kB
    

三、高级工具:可视化与深度分析

1. htop(交互式监控)

安装命令:sudo apt install htop
启动后按F2进入设置,在Columns中添加MEM%RES

2. vmstat(虚拟内存统计)

vmstat -s

关键指标说明:

指标含义
total memory物理内存总量
used memory实际使用内存(含缓存)
active memory最近使用的内存(可能被回收)

四、特殊场景解决方案

1. 容器环境内存查看

docker stats --no-stream

输出示例:

容器IDCPU%MEM USAGE / LIMITMEM%
a1b2c3d40.25%512MiB / 2GiB25.00%

2. 内存泄漏排查

sudo apt install pmap
pmap -x  | tail -n 10

步骤说明:
1. 通过top找到异常进程PID
2. 使用pmap查看该进程内存映射详情
3. 重点关注mappedprivate列持续增长的情况

五、数据对比:不同工具适用场景

工具适用场景输出复杂度实时性
free快速查看总量★☆☆静态
/proc/meminfo需要精确数值时★★☆静态
htop交互式监控★★★实时
vmstat系统级分析★★★实时

FAQ常见问题大全

Q1: free命令中"available"和"free"有什么区别?
A1: "free"是完全未使用的内存,"available"包含可被快速回收的缓存和缓冲区,更准确反映可用内存。

Q2: 如何查看每个CPU核心的内存使用情况?
A2: 使用numactl --hardware查看NUMA节点分布,结合ps -o pid,psr,rss查看进程的CPU亲和性和内存占用。

Q3: 为什么系统显示内存不足但free命令显示还有很多空闲?
A3: 可能原因:1) 应用程序存在内存泄漏 2) 碎片化导致大块内存不足 3) 内核参数限制(如vm.overcommit_memory

Q4: 如何监控内存使用历史趋势?
A4: 安装sysstat包后,使用sar -r查看历史内存数据,或配置/etc/default/sysstat设置采集频率。

Q5: 交换分区(swap)使用率高怎么办?
A5: 解决方案:1) 增加物理内存 2) 调整swappiness值(默认60,建议生产环境设为10-20) 3) 检查是否有内存泄漏进程

本网站发布或转载的文章均来自网络,其原创性以及文中表达的观点和判断不代表本网站。
上一篇: OSI是什么意思?深度解析网络通信的七层模型 下一篇: VMware开机自动启动虚拟机全攻略:从配置到优化