Ubuntu缓存加速系统的核心方法
Preload是一个后台守护进程,通过分析用户使用习惯和频繁运行的应用,提前将常用应用的依赖库和资源加载到内存中。这样在启动应用时,系统可直接从内存读取数据,大幅减少启动时间。安装命令:sudo apt-get install preload(安装后自动运行,无需额外配置)。
APT包管理器的缓存会占用大量磁盘空间(尤其是频繁安装/更新时),定期清理可释放空间并提升后续操作速度:
sudo apt-get clean(删除/var/cache/apt/archives下的所有.deb文件);sudo apt-get autoclean(仅删除不再需要的旧版本包);sudo apt-get autoremove(删除不再被任何已安装软件依赖的包);apt-fast(替换apt-get),通过多线程下载提升更新速度(命令:sudo add-apt-repository ppa:apt-fast/stable && sudo apt-get install apt-fast)。Ubuntu通过PageCache(页面缓存)缓存文件数据,减少磁盘I/O。可通过以下命令手动清理内存缓存(非破坏性操作,不会影响正在运行的程序):
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命令用于将缓存数据写入磁盘,避免数据丢失)。此外,调整vm.swappiness参数可减少系统对交换分区(Swap)的依赖(默认值60,建议设为10-30):
sudo sysctl -w vm.swappiness=10;/etc/sysctl.conf,添加vm.swappiness=10。DNS解析是网络请求的瓶颈之一,启用本地DNS缓存可将解析结果存储在内存中,减少重复查询时间。安装与配置步骤:
sudo apt-get install dnsmasq;/etc/dnsmasq.conf,添加cache-size=512(单位:MB,默认100MB);sudo systemctl restart dnsmasq(生效)。对于开发场景,编译C/C++项目时,ccache可缓存编译结果,再次编译相同代码时直接复用缓存,大幅缩短时间。安装命令:sudo apt-get install ccache(配置环境变量:export PATH="/usr/lib/ccache:$PATH")。
若需更高效的分布式编译缓存,可使用sccache(支持远程存储缓存):sudo apt-get install sccache(配置同理)。
/boot分区),避免占用过多空间导致系统无法启动新内核。命令:df -h(查看/boot使用率);sudo apt-get purge linux-image-<version>(替换为旧内核版本号);sudo apt-get purge linux-headers-<version>。vm.dirty_background_ratio(脏页占比阈值,默认10%)和vm.dirty_ratio(脏页最大占比,默认20%),减少脏页写入磁盘的频率(命令:sudo sysctl -w vm.dirty_background_ratio=5,sudo sysctl -w vm.dirty_ratio=15)。/tmp目录挂载到SSD(固态硬盘),提升临时文件的读写速度。创建配置文件/etc/tmpfiles.d/tmp.conf,添加tmpfs /tmp tmpfs defaults,size=2G 0 0(size根据SSD容量调整)。/var/cache/apt/archives);vm.swappiness需根据实际内存大小(内存越大,可设更低值)。