ubuntu缓存设置技巧
导读:Ubuntu 缓存设置与优化实用技巧 一 核心原则与监控 理解机制:Linux 会把频繁访问的数据放入Page Cache,目录项与索引节点放入dentries/inodes,以提升 I/O 性能。通常无需手动清理,系统会在需要时自动回收...
Ubuntu 缓存设置与优化实用技巧
一 核心原则与监控
- 理解机制:Linux 会把频繁访问的数据放入Page Cache,目录项与索引节点放入dentries/inodes,以提升 I/O 性能。通常无需手动清理,系统会在需要时自动回收。需要时可用命令查看与清理。
- 快速查看:
- 内存与缓存概览:
free -h、cat /proc/meminfo - 定位大目录:
sudo du -sh /* | sort -h - 观察 I/O:
iostat -x 1、vmstat 1
- 内存与缓存概览:
- 手动清理内存缓存(仅在特殊场景使用,如基准测试、内存紧张排查):先
sync再写入 drop_caches:- 仅 PageCache:
echo 1 | sudo tee /proc/sys/vm/drop_caches - 仅 dentries/inodes:
echo 2 | sudo tee /proc/sys/vm/drop_caches - 全部清理:
echo 3 | sudo tee /proc/sys/vm/drop_caches
- 仅 PageCache:
- 注意:清理缓存只是临时措施,很快会被重新占用;在生产环境避免频繁清理以免影响性能。
二 磁盘与包管理缓存
- APT 缓存
- 查看占用:
du -sh /var/cache/apt/archives - 清理旧版本:
sudo apt autoclean - 清理全部包文件:
sudo apt clean - 移除无用依赖:
sudo apt autoremove --purge - 安装后自动删除包文件(图形界面):在 Synaptic 中 Settings → Preferences → Files,勾选“Delete downloaded packages after installation”。
- 查看占用:
- 系统日志与缩略图
- 日志:
sudo journalctl --vacuum-time=3d或--vacuum-size=100M - 缩略图:
rm -rf ~/.cache/thumbnails/*
- 日志:
- Snap 缓存
- 清理:
sudo rm -rf /var/lib/snapd/cache/*
- 清理:
- 建议:定期(如每周)执行上述清理,既释放空间又不影响运行中的缓存收益。
三 内存与页面缓存调优
- 交换倾向(swappiness)
- 查看:
cat /proc/sys/vm/swappiness - 临时调整:
sudo sysctl vm.swappiness=10(桌面/内存充足机器常用 10–30) - 永久生效:
echo 'vm.swappiness=10' | sudo tee -a /etc/sysctl.conf & & sudo sysctl -p
- 查看:
- 脏页写回(影响写入延迟与突发 I/O)
- 查看:
cat /proc/sys/vm/dirty_background_ratio、cat /proc/sys/vm/dirty_ratio、cat /proc/sys/vm/dirty_expire_centisecs、cat /proc/sys/vm/dirty_writeback_centisecs - 示例(更积极写回,降低突发写放大,需按负载测试):
sudo sysctl vm.dirty_background_ratio=5sudo sysctl vm.dirty_ratio=10sudo sysctl vm.dirty_expire_centisecs=30000sudo sysctl vm.dirty_writeback_centisecs=5000
- 提示:也可使用字节阈值
vm.dirty_background_bytes/vm.dirty_bytes按容量精确控制。
- 查看:
- 建议:先记录基线(
free、iostat),小步调整并观察延迟与吞吐,再固化到/etc/sysctl.conf。
四 应用层缓存加速
- 编译缓存
- ccache:
sudo apt install ccache,在构建环境设置CC=ccache gcc或export CC=ccache - sccache:作为替代,适合分布式/云构建场景
- ccache:
- 内存对象缓存
- Memcached:
sudo apt install memcached,编辑/etc/memcached.conf设置-m 1024(单位 MB),重启服务 - Redis:
sudo apt install redis-server,在/etc/redis/redis.conf设置maxmemory 1gb与淘汰策略maxmemory-policy allkeys-lru
- Memcached:
- DNS 缓存
- dnsmasq:
sudo apt install dnsmasq,在/etc/dnsmasq.conf设置cache-mem 512(单位 MB),重启服务
- dnsmasq:
- 预加载(应用启动加速)
- preload:
sudo apt install preload,开机自启,学习常用应用以提前加载到内存
- preload:
- 建议:为数据库、Web 与应用合理配置内存上限与淘汰策略,避免占用过多系统内存。
五 文件系统与 I/O 调度优化
- 挂载选项(编辑
/etc/fstab,示例为 ext4)- 减少元数据写:
noatime,nodiratime - 权衡一致性与性能(谨慎):
data=writeback
- 减少元数据写:
- I/O 调度器(SSD 常用 noop/deadline)
- 查看:
cat /sys/block/sdX/queue/scheduler - 临时切换(示例):
echo noop | sudo tee /sys/block/sdX/queue/scheduler
- 查看:
- 文件系统选择
- ext4:通用稳定;XFS:大文件/高并发;Btrfs:快照/校验;ZFS:高级特性(需额外安装)
- 建议:结合工作负载选择文件系统与调度器,变更前充分测试,生产环境优先使用非破坏性选项。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu缓存设置技巧
本文地址: https://pptw.com/jishu/774892.html
