4种专业方法监控Linux云服务器内存使用情况
作为系统管理员或DevOps工程师,掌握服务器内存使用状况是保障业务稳定运行的基本功。本文将详细介绍Linux环境下4种专业的内存监控方法,帮助您及时发现内存泄漏和性能瓶颈。
一、命令行工具实时监控
1. free命令 – 基础内存查看
free -h
free -m
free -s 5
参数说明:
– -h:人类可读格式显示
– -m:以MB为单位显示
– -s 5:每5秒刷新一次
2. top/htop命令 – 动态进程监控
安装增强版htop:yum install htop -y
或 apt-get install htop
关键指标解读:
– %MEM:进程占用物理内存百分比
– RES:实际使用的物理内存
– VIRT:虚拟内存使用量
二、系统日志长期记录
1. 配置sar工具
安装sysstat包后,通过crontab设置定时采集:
*/5 * * * * /usr/lib64/sa/sa1 1 1
55 23 * * * /usr/lib64/sa/sa2 -A
2. 查看历史内存数据
sar -r -f /var/log/sa/sa15
sar -r -s 10:00:00 -e 18:00:00
重要字段说明:
– kbmemfree:空闲内存
– kbmemused:已用内存
– %memused:内存使用率
– kbcommit:承诺内存量
三、可视化监控方案
1. Prometheus + Grafana方案
部署步骤:
1. 安装node_exporter
2. 配置Prometheus抓取
3. 导入Grafana仪表板(推荐ID:8919)
2. Zabbix企业级监控
关键监控项配置:
– vm.memory.size[available]
– vm.memory.size[used]
– vm.memory.size[pused]
告警阈值建议:
– 可用内存 < 总内存10%
– Swap使用 > 总Swap50%
四、高级调试技巧
1. 内存泄漏诊断
valgrind --tool=memcheck --leak-check=full ./your_program
pmap -x [pid]
2. OOM Killer分析
查看被杀进程记录:
grep -i kill /var/log/messages*
dmesg | grep -i oom
最佳实践建议
- 生产环境建议同时使用实时监控+历史记录
- 设置合理的告警阈值(建议物理内存使用率>90%告警)
- 定期检查/proc/meminfo中的详细内存统计数据
- 对关键业务进程设置内存使用限制(cgroups)