Ubuntu系统回收内存的有效方法
Ubuntu内核会自动利用空闲内存作为缓存(如PageCache、dentries、inodes),以提升文件访问速度。当需要手动回收时,可通过以下步骤操作:
free -h,了解总内存、已用内存、空闲内存及缓存占用情况。sync命令,确保内存中的未写数据(如文件修改)保存到硬盘,避免数据丢失。sudo sh -c 'echo 1 > /proc/sys/vm/drop_caches';sudo sh -c 'echo 2 > /proc/sys/vm/drop_caches';sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches'。free -h可看到缓存占用显著减少。后台运行的应用程序或进程会占用大量内存,可通过以下方式清理:
htop(需安装,sudo apt install htop)或top,按MEM%排序,识别占用内存高的进程。F9键,选择SIGKILL(强制终止)或SIGTERM(正常终止),输入进程ID(PID)确认。软件安装、更新会留下缓存文件(如APT包缓存),临时文件也会占用内存:
sudo apt clean(清除已下载的软件包),sudo apt autoclean(清除旧版本的软件包缓存)。sudo rm -rf /tmp/*(删除/tmp目录下的所有临时文件,重启后会自动重建)。sudo find /var/log -type f -name "*.log" -exec truncate -s 0 {} \;(清空/var/log目录下所有.log文件的内容,避免日志过大占用内存)。闲置的软件和旧内核会持续占用内存,需定期清理:
sudo apt remove --purge 软件名(彻底卸载软件及配置文件),sudo apt autoremove(自动删除不再需要的依赖包)。uname -r(当前使用的内核版本),dpkg -l | grep linux-image(所有已安装的内核);sudo apt purge 旧内核版本(如sudo apt purge linux-image-5.15.0-86-generic)。通过修改内核参数,可改变内存管理策略,提升内存回收效率:
swappiness参数控制内核使用交换空间(Swap)的倾向,默认值为60(值越高,越易使用Swap,导致性能下降)。降低该值可减少Swap使用,优先回收物理内存。
sudo sysctl vm.swappiness=10(设为10,推荐范围10-30);/etc/sysctl.conf文件,添加vm.swappiness=10,保存后运行sudo sysctl -p使配置生效。sudo sysctl vm.vfs_cache_pressure=50;/etc/sysctl.conf中添加vm.vfs_cache_pressure=50,运行sudo sysctl -p。若不熟悉命令行,可使用以下工具快速清理内存:
sudo apt install bleachbit,运行后选择清理项目即可。sudo add-apt-repository ppa:gerardpuig/ppa && sudo apt update && sudo apt install ubuntu-cleaner,运行后点击“Clean”按钮即可。交换空间是硬盘上的虚拟内存,当物理内存不足时,系统会将部分内存数据移至Swap,以释放物理内存。但Swap速度远低于RAM,频繁使用会导致性能下降:
sudo swapon --show(显示已启用的Swap分区/文件)。sudo fallocate -l 512M /swapfile(若fallocate不可用,用sudo dd if=/dev/zero of=/swapfile bs=1M count=512);sudo chmod 600 /swapfile(仅root可读写);sudo mkswap /swapfile;sudo swapon /swapfile。/etc/fstab文件,添加/swapfile none swap sw 0 0,保存后重启系统即可。