1. 监控内存使用情况
使用基础命令快速掌握内存状态:free -m 以MB为单位显示总内存、已用/未用内存、缓存/缓冲区占用及应用程序可用内存;top 查看进程级CPU与内存使用率(按M键按内存排序);vmstat 1 动态监控系统整体内存、CPU使用情况及进程状态;pidstat -p <PID> 1 跟踪特定进程的用户态/系统态内存使用细节。
2. 调整内核内存管理参数
vm.swappiness 参数控制内核使用Swap的频率(默认值通常为60,范围0-100)。降低该值(如设置为10)可减少系统对Swap的依赖,提升物理内存利用率。临时调整用sudo sysctl vm.swappiness=10,永久生效则编辑/etc/sysctl.conf添加vm.swappiness=10。vm.overcommit_memory 参数决定内核内存分配策略。设为1(默认值为0)表示内核允许内存过量分配,避免因进程申请过多内存触发OOM(内存溢出)错误。编辑/etc/sysctl.conf添加vm.overcommit_memory=1并执行sudo sysctl -p使设置生效。3. 关闭不必要服务与进程
systemctl list-unit-files --type=service列出所有服务,通过sudo systemctl stop <服务名>停止(如firewalld、NetworkManager等非必需服务),再用sudo systemctl disable <服务名>禁止开机自启,释放内存占用。top或htop(需安装)识别内存占用高的闲置进程(如未使用的开发工具、测试程序),用kill -9 <PID>终止异常进程,避免内存浪费。4. 合理配置Swap空间
sudo fallocate -l 1G /swapfile(若fallocate不可用,用dd if=/dev/zero of=/swapfile bs=1M count=1024替代);设置正确权限sudo chmod 600 /swapfile;格式化为Swap空间sudo mkswap /swapfile;启用Swapsudo swapon /swapfile。/etc/fstab文件,添加/swapfile swap swap defaults 0 0,确保系统重启后自动挂载Swap。5. 使用内存缓存工具
引入内存缓存系统减轻后端存储压力:
memcached -d -m 512 -p 11211启动(分配512MB内存,监听11211端口)。/etc/redis.conf调整maxmemory(最大内存限制)和maxmemory-policy(淘汰策略,如allkeys-lru),重启服务生效。6. 清理内存缓存
手动释放PageCache、dentries和inodes缓存(不影响正在运行的程序):执行echo 1 > /proc/sys/vm/drop_caches清理PageCache;echo 2 > /proc/sys/vm/drop_caches清理dentries和inodes;echo 3 > /proc/sys/vm/drop_caches清理所有缓存。此操作需谨慎使用,建议在系统内存充足时执行。
7. 增加物理内存
若系统频繁出现Swap使用率高(free -m中swap used接近总量)、应用程序响应变慢等问题,增加物理内存是最根本的解决方案。升级内存后,系统会自动减少对Swap的依赖,显著提升运行速度。
8. 优化应用程序内存使用
valgrind工具检测应用程序内存泄漏(如valgrind --leak-check=full ./your_program),定位并修复未释放的内存块。