性能·内存 / 命令文档
Linux内存管理
概述
深入理解虚拟内存、物理内存与交换空间
内存架构关系图
物理内存
RAM硬件
实际硬件内存
虚拟内存
逻辑地址
程序视角内存
交换空间
磁盘扩展
磁盘虚拟内存
物理内存 (Physical Memory)
含义:实际的RAM硬件内存条
价值:
提供最快的数据访问速度
存储当前运行程序的代码和数据
系统性能的核心瓶颈
特点:有限、昂贵、断电丢失
虚拟内存 (Virtual Memory)
含义:操作系统为每个进程提供的逻辑内存空间
价值:
让程序认为有巨大连续内存
进程间内存隔离保护
支持内存超量分配
简化程序内存管理
特点:逻辑概念、映射到物理内存
交换空间 (Swap Space)
含义:磁盘上用作虚拟内存扩展的区域
价值:
扩展可用内存总量
防止内存耗尽导致系统崩溃
支持休眠功能
提供内存压力缓冲
特点:速度慢、容量大、持久化
运维操作指南
内存监控命令
# 查看内存使用情况 free -h cat /proc/meminfo # 实时监控内存 watch -n 1 free -h # 查看进程内存使用 ps aux --sort=-%mem | head -10
交换空间管理
# 查看交换空间 swapon --show cat /proc/swaps # 创建交换文件 dd if=/dev/zero of=/swapfile bs=1G count=4 chmod 600 /swapfile mkswap /swapfile swapon /swapfile # 永久挂载 echo '/swapfile none swap sw 0 0' >> /etc/fstab
性能调优参数
# 查看交换积极性 cat /proc/sys/vm/swappiness # 设置交换积极性(0-100) echo 10 > /proc/sys/vm/swappiness # 永久设置 echo 'vm.swappiness=10' >> /etc/sysctl.conf # 清理页面缓存 echo 1 > /proc/sys/vm/drop_caches
故障排查
# 查看内存压力 dmesg | grep -i "killed process" # 查看OOM killer日志 journalctl | grep -i "out of memory" # 分析内存碎片 cat /proc/buddyinfo cat /proc/pagetypeinfo # 查看虚拟内存统计 vmstat 1 5
关键注意事项
交换过度使用:频繁swap会严重影响性能,监控swappiness值
内存泄漏:定期检查进程内存使用,及时发现异常增长
OOM Killer:内存不足时系统会杀死进程,需要合理配置
虚拟内存限制:32位系统有4GB虚拟内存限制
交换分区位置:避免在同一磁盘上放置交换分区和高I/O应用
最佳实践建议
监控策略 定期监控内存使用率,设置告警阈值85%
交换空间大小 通常设置为物理内存的1-2倍,最大8GB
性能调优 SSD环境可适当提高swappiness,HDD建议10以下
应用优化 优化应用内存使用,避免内存泄漏
容量规划 根据应用特性合理规划内存容量
故障预案 制定内存不足时的应急处理方案
掌握这些概念,你就能够有效地管理和优化Linux系统的内存性能!