Ubuntu 内存占用优化实操指南
一 监控与定位
free -h。当 available 持续低于总内存的 20% 时,通常意味着需要扩容或优化应用占用。top(按 Shift+M 按内存排序)或安装 htop(sudo apt install htop,F6 选择 RES 排序,F9 结束进程)定位异常进程。vmstat 1 5 查看 si/so(换入/换出)是否持续大于 0,以及 wa(I/O 等待)是否偏高,判断是否因内存不足导致磁盘抖动。cat /proc/meminfo | grep -E "MemTotal|MemFree|Buffers|Cached|SwapCached" 获取更细的统计。二 系统级优化
sync 将缓冲区落盘,再写入不同级别到 /proc/sys/vm/drop_caches:
echo 1:仅释放页缓存echo 2:释放目录项和 inodesecho 3:释放所有缓存(常用)sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches',随后用 free -m 验证 available 是否上升。注意:缓存释放是临时的,系统会很快重新占用。sudo sysctl -w vm.swappiness=10;永久:echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf && sudo sysctl -p。sudo apt install zram-configsudo systemctl enable --now zram-configzramctl 或 swapon --show 应能看到 zram 交换设备。sudo fallocate -l 4G /swapfile && sudo chmod 600 /swapfilesudo mkswap /swapfile && sudo swapon /swapfile/etc/fstab 持久化:/swapfile none swap sw 0 0。三 桌面与自启动精简
systemctl 禁用不需要的服务(如蓝牙、打印、自动更新提示等),减少开机与常驻占用。rm -rf ~/.cache/thumbnails/*;必要时移除 Apport 错误报告(sudo systemctl disable --now apport.service)。sudo journalctl --vacuum-time=3d 或 --vacuum-size=100Msudo apt clean && sudo apt autoremove --purgesudo rm -rf /var/lib/snapd/cache/*四 应用与容器实践
docker run -d --memory="2g" --memory-swap="3g" nginx;在 K8s 中使用 requests/limits 控制资源边界。五 安全与风险提示
swappiness、ZRAM 与 Swap 配置修改后,观察一段时间并压测关键业务,确保稳定性与性能符合预期。