Ubuntu系统中的缓存主要包括APT软件包缓存、内存缓存(如PageCache、Swap)、DNS缓存、**应用层缓存(如Memcached、dnsmasq)**等。以下是各类型缓存的详细配置说明:
APT缓存用于存储下载的软件包文件(.deb格式),定期清理可释放/var/cache/apt/archives目录的磁盘空间。
sudo apt-get clean。sudo apt-get autoclean。sudo apt-get autoremove。内存缓存(如PageCache)用于加速文件访问,但过多占用会导致系统内存不足。可通过调整Swappiness值控制内存与Swap分区的使用倾向。
cat /proc/sys/vm/swappiness。sudo sysctl vm.swappiness=10。/etc/sysctl.conf文件,添加vm.swappiness=10,保存后重启系统生效。dnsmasq是轻量级DNS缓存服务器,可缓存DNS查询结果,减少重复查询时间。
sudo apt-get install dnsmasq。/etc/dnsmasq.conf文件,添加cache-size=1000(缓存1000条记录,默认值通常为150,可根据需求调整)。/etc/resolv.conf文件,添加上游DNS服务器(如nameserver 8.8.8.8、nameserver 8.8.4.4);若系统使用resolvconf服务,需编辑/etc/resolvconf/resolv.conf.d/head文件,确保nameserver 127.0.0.1(本地dnsmasq)在第一行。sudo systemctl restart dnsmasq。Memcached是高性能分布式内存对象缓存系统,常用于Web应用(如WordPress、Drupal)加速数据库查询。
sudo apt-get install memcached。/etc/memcached.conf文件,修改-m参数(单位:MB,如-m 1024表示分配1GB内存)。sudo systemctl restart memcached。ccache用于缓存编译结果,加快重复编译速度(如开发过程中多次编译同一项目)。
sudo apt-get install ccache。CC="ccache gcc"(如CC="ccache gcc" make),或在项目配置中指定ccache路径。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命令用于将内存中的数据同步到磁盘,避免数据丢失。free -h(以人类可读格式显示)。top(默认)或htop(需安装,更直观)。vmstat 1(每秒刷新一次)。autoclean仅删除旧版本,clean删除所有缓存,清理前无需备份。systemd-resolved服务,需禁用其DNS功能(编辑/etc/systemd/resolved.conf,设置DNSStubListener=no),避免端口冲突。