一、优化APT软件包缓存(针对Debian系统核心包管理)
APT缓存是Debian系统最常用的缓存类型,直接影响软件包安装/更新的效率。
sudo apt-get clean(删除/var/cache/apt/archives/下所有.deb包)、sudo apt-get autoclean(删除旧版本的.deb包)、sudo apt-get autoremove(删除不再需要的依赖包),释放磁盘空间并减少无效缓存占用。/etc/apt/apt.conf.d/95proxies文件,添加以下配置:Acquire::http::Cache::Size "1000"(设置HTTP缓存大小为1000MB)、Acquire::http::Cache::Expire "7d"(设置缓存过期时间为7天),避免缓存过大占用空间或过小导致频繁重新下载。/etc/squid/squid.conf中的cache_dir和http_access),客户端通过Acquire::http::Proxy "http://localhost:3128"指向该服务器,减少对外部仓库的重复下载。二、提升Web服务器缓存命中率(针对Apache/Nginx)
若系统运行Web服务(如Apache或Nginx),优化其缓存配置可显著减少重复请求对后端的压力。
sudo a2enmod cache cache_disk;/etc/apache2/apache2.conf中添加CacheEnable disk /(启用磁盘缓存)、CacheRoot "/var/cache/apache2/"(设置缓存根目录)、CacheDirLevels 2(缓存目录层级)、CacheDirLength 1(目录名长度);mod_expires模块添加ExpiresByType image/jpg "access plus 1 month"(JPG图片缓存1个月)、ExpiresByType text/css "access plus 1 week"(CSS文件缓存1周)等规则;Header set Cache-Control "public, max-age=86400"(设置公共缓存,有效期1天)。/etc/nginx/sites-available/对应配置文件中添加proxy_cache_path /usr/nginx/cache/webpages levels 1 2 keys_zone webpages:30m max_size 2g inactive 60m use_temp_path off(设置缓存目录、层级、共享内存大小、最大容量及过期时间);server块中添加location / { proxy_cache webpages; proxy_cache_valid 200 10m; }(对200状态码的响应缓存10分钟);expires指令设置静态资源强缓存(如expires 30d;),通过add_header Cache-Control "no-cache"设置动态内容协商缓存。三、优化系统级缓存(针对内存与磁盘I/O)
系统级缓存(如内存缓存、文件系统缓存)能减少对慢速设备(如磁盘)的访问,提升整体性能。
/etc/sysctl.conf文件,修改vm.swappiness参数(控制内存交换到Swap的倾向,值越低越倾向于使用物理内存),例如设置为vm.swappiness=10(默认60),减少Swap使用,提高缓存命中率;执行sudo sysctl -p使更改生效。sudo apt install libgoogle-perftools-dev),替代默认的glibc内存分配器,减少锁竞争、优化内存碎片,提高多线程程序的缓存命中率。free -m命令监控buff/cache列,确保内存充足时缓存占用合理。四、应用层缓存优化(针对动态内容与数据库)
对于动态网站或应用,应用层缓存能减少数据库查询和代码执行次数,提升响应速度。
sudo apt install php-opcache,编辑php.ini(如/etc/php/8.1/apache2/php.ini)启用opcache.enable=1、opcache.memory_consumption=128(分配128MB内存)、opcache.revalidate_freq=60(60秒检查文件更新),缓存PHP预编译字节码,减少脚本加载时间。sudo apt install redis-server)或Memcached(sudo apt install memcached),在应用中集成(如通过phpredis扩展),缓存数据库查询结果、会话数据等高频访问数据,减少直接访问数据库的次数。五、监控与持续优化
apt-cache stats查看缓存命中次数(hits)和总请求次数(total),计算命中率(hits/total);%{X-Cache}o日志字段(需配置LogFormat),Nginx通过$upstream_cache_status变量(如HIT、MISS)监控;free -m查看buff/cache列,vmstat 1查看cache(内存缓存)和buff(缓冲区缓存)的变化;info stats查看keyspace_hits(键命中次数)和keyspace_misses(键未命中次数),Memcached通过stats命令查看get_hits和get_misses。