Ubuntu系统回收内存资源的常用方法
在回收内存前,需先了解系统内存状态,常用命令如下:
free -h:直观显示总内存、已用内存、空闲内存、缓存(Buffers/Cache)及可用内存(Available,系统可立即分配给应用程序的内存)。top/htop:实时查看进程级内存占用(htop需安装,界面更友好,命令:sudo apt install htop)。Ubuntu会自动利用空闲内存作为缓存(提升文件读取速度),但可通过以下命令手动释放:
sudo sync && echo 1 | sudo tee /proc/sys/vm/drop_caches
sudo sync && echo 2 | sudo tee /proc/sys/vm/drop_caches
sudo sync && echo 3 | sudo tee /proc/sys/vm/drop_caches
说明:sync命令用于将内存中的未写入数据同步到硬盘,避免数据丢失;清理后系统会重新构建缓存,短期内可能略有性能下降,但长期可提升内存利用率。
sudo apt-get clean # 清理所有APT缓存
sudo apt-get autoclean # 清理旧版本的软件包缓存
/var/log下的.log文件)可能占用大量空间,可删除超过3天的旧日志:sudo journalctl --vacuum-time=3d # 清理3天前的日志
sudo find /var/log -type f -name "*.log" -exec truncate -s 0 {} \; # 清空所有.log文件
/tmp目录下的临时文件可安全删除:sudo rm -rf /tmp/*
ps aux | grep <进程名> # 查找特定进程
top # 实时查看进程资源占用
kill <PID> # 正常终止
kill -9 <PID> # 强制终止(仅用于无法正常关闭的进程)
systemctl list-unit-files --type=service # 查看所有服务
sudo systemctl disable <service_name> # 禁用服务
sudo systemctl stop <service_name> # 立即停止服务
卸载未使用的软件可释放内存及磁盘空间:
sudo apt-get remove --purge <软件名> # 彻底卸载(包括配置文件)
sudo apt-get autoremove # 删除不再需要的依赖包
sudo aptitude autoclean # 清理旧版本的依赖包(需安装aptitude)
swappiness参数控制内核使用交换空间(Swap)的倾向(默认值60,值越小越倾向于使用物理内存)。建议设置为10-20(适用于内存充足的系统):sudo sysctl vm.swappiness=10 # 临时生效
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf # 永久生效
sudo sysctl vm.vfs_cache_pressure=50 # 临时生效
echo "vm.vfs_cache_pressure=50" | sudo tee -a /etc/sysctl.conf # 永久生效
sudo add-apt-repository ppa:gerardpuig/ppa
sudo apt update
sudo apt install ubuntu-cleaner
sudo apt install bleachbit
bleachbit
若物理内存不足,可通过交换空间(硬盘上的虚拟内存)缓解内存压力:
sudo fallocate -l 2G /swapfile # 创建2GB交换文件
sudo chmod 600 /swapfile # 设置权限
sudo mkswap /swapfile # 格式化为交换空间
sudo swapon /swapfile # 启用交换文件
/etc/fstab文件,添加以下行:/swapfile none swap sw 0 0