性能·内存 / 命令文档

Linux内存管理

$ memory 8 个章节 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系统的内存性能!

同分类 · 其他命令文档