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。