meminfo 文件查看系统内存信息:
1. 使用 free 命令
free -h 以易读格式显示内存使用情况
free -m 以 MB 单位显示
free -s 5 每5秒刷新显示
2. 查看 /proc/meminfo
cat /proc/meminfo 显示详细内存统计
重点关注:
MemTotal - 总内存
MemFree - 空闲内存
Buffers - 缓冲区内存
Cached - 缓存内存
SwapTotal - 交换分区总量
3. top 命令
运行 top 后按 M 按内存排序
RES 列显示进程实际内存占用
%MEM 显示内存百分比
4. vmstat 命令
vmstat -s 显示内存统计摘要
vmstat 1 5 每秒刷新显示5次
5. htop 命令
比 top 更直观的交互式查看器
支持鼠标操作和颜色显示
6. smem 命令
提供更详细的内存使用报告
smem -u 按用户统计
smem -p 按进程统计
7. glibc 内存检测
MALLOC_CHECK_=1 环境变量
可检测内存分配错误
8. slab 内存查看
cat /proc/slabinfo
显示内核 slab 分配器信息
9. 内存泄漏检测工具
valgrind - 用于检测内存泄漏
mtrace - glibc 内置工具
10. 内核参数调优
vm.swappiness - 控制交换倾向
vm.overcommit_memory - 内存分配策略
11. NUMA 架构查看
numastat - 显示 NUMA 内存分配
lscpu | grep NUMA - 查看 NUMA 节点
12. 内存压力测试
stress-ng - 内存压力测试工具
可模拟内存密集型场景
13. 内存硬件信息
dmidecode -t memory
显示物理内存条信息
14. 内存性能监控
sar -r 1 5
sysstat 工具提供历史统计
15. 内存限制控制
cgroup 内存子系统
ulimit -v 设置虚拟内存限制
16. 内存错误检测
mcelog - 记录内存硬件错误
EDAC 驱动 - 内存纠错功能
17. 内存回收机制
kswapd - 内核交换守护进程
内存水位线控制
18. 透明大页查看
cat /sys/kernel/mm/transparent_hugepage/enabled
检查 THP 状态
19. 内存映射查看
pmap -x
显示进程内存映射详情
20. 内存性能分析
perf mem - 内存访问分析
perf stat -e cache-misses
Linux 内存管理涉及多个层次,从硬件信息获取到内核参数调优,需要根据具体场景选择合适的工具。生产环境中建议建立完整的内存监控体系,包括实时监控和历史数据分析。对于关键应用,还应该配置内存使用告警机制。内存问题往往与系统整体性能相关,分析时需要结合 CPU、IO 等指标综合判断。
查看详情
查看详情