Ubuntu系统释放内存的常用方法
在释放内存前,需先了解系统内存状态。使用以下命令查看详细信息:
free -h:显示总内存、已用内存、空闲内存、缓冲区缓存(Buffers/Cache)及可用内存(Available,系统可立即分配给应用程序的内存)。top/htop:动态查看进程级内存占用(htop需安装,更直观),可按内存使用排序(Shift+M),识别高内存消耗进程。ps aux命令列出所有进程,找到目标进程的PID(第二列),执行kill -9 <PID>强制终止(谨慎操作,避免杀死系统关键进程)。Ubuntu会自动利用空闲内存作为磁盘缓存(PageCache、dentries、inodes),提升文件读写性能,但当内存不足时,可手动清理释放:
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'(同时清理页面缓存、dentries、inodes,最彻底)。apt命令移除不再使用的软件,sudo apt-get remove --purge <软件名>(彻底删除软件及配置文件),sudo apt-get autoremove(自动卸载无用的依赖包)。dpkg -l | grep linux-image(排除当前使用的内核,通常标记为“ii”状态);sudo apt-get purge <linux-image-version>(如linux-image-5.15.0-86-generic)。sudo apt-get clean(清理APT缓存中的软件包文件,位于/var/cache/apt/archives)、sudo apt-get autoclean(清理过期的APT缓存)。journalctl命令清理旧日志,sudo journalctl --vacuum-time=2weeks(删除两周前的日志),或sudo journalctl --vacuum-size=100M(限制日志大小为100MB)。swappiness参数控制内核使用交换空间(Swap)的倾向,默认值为60(值越高,越易使用Swap)。降低该值可减少Swap使用,提升内存利用率:
sudo sysctl vm.swappiness=10(设为10,推荐范围10-30);/etc/sysctl.conf文件,添加vm.swappiness=10,保存后执行sudo sysctl -p使设置生效。若物理内存不足,可通过增加Swap空间(虚拟内存)缓解压力:
sudo fallocate -l 2G /swapfile(若fallocate不可用,用sudo dd if=/dev/zero of=/swapfile bs=1M count=2048);sudo chmod 600 /swapfile(仅root可读写);sudo mkswap /swapfile;sudo swapon /swapfile;/etc/fstab文件,添加/swapfile none swap sw 0 0。sudo apt-get install bleachbit,运行:bleachbit。sudo add-apt-repository ppa:gerardpuig/ppa && sudo apt-get update && sudo apt-get install ubuntu-cleaner。