首页主机资讯ubuntu缓存设置技巧

ubuntu缓存设置技巧

时间2025-12-18 11:04:03发布访客分类主机资讯浏览1380
导读:Ubuntu 缓存设置与优化实用技巧 一 核心原则与监控 理解机制:Linux 会把频繁访问的数据放入Page Cache,目录项与索引节点放入dentries/inodes,以提升 I/O 性能。通常无需手动清理,系统会在需要时自动回收...

Ubuntu 缓存设置与优化实用技巧

一 核心原则与监控

  • 理解机制:Linux 会把频繁访问的数据放入Page Cache,目录项与索引节点放入dentries/inodes,以提升 I/O 性能。通常无需手动清理,系统会在需要时自动回收。需要时可用命令查看与清理。
  • 快速查看:
    • 内存与缓存概览:free -hcat /proc/meminfo
    • 定位大目录:sudo du -sh /* | sort -h
    • 观察 I/O:iostat -x 1vmstat 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
  • 注意:清理缓存只是临时措施,很快会被重新占用;在生产环境避免频繁清理以免影响性能。

二 磁盘与包管理缓存

  • 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_ratiocat /proc/sys/vm/dirty_ratiocat /proc/sys/vm/dirty_expire_centisecscat /proc/sys/vm/dirty_writeback_centisecs
    • 示例(更积极写回,降低突发写放大,需按负载测试):
      • sudo sysctl vm.dirty_background_ratio=5
      • sudo sysctl vm.dirty_ratio=10
      • sudo sysctl vm.dirty_expire_centisecs=30000
      • sudo sysctl vm.dirty_writeback_centisecs=5000
    • 提示:也可使用字节阈值 vm.dirty_background_bytes/vm.dirty_bytes 按容量精确控制。
  • 建议:先记录基线(freeiostat),小步调整并观察延迟与吞吐,再固化到 /etc/sysctl.conf

四 应用层缓存加速

  • 编译缓存
    • ccache:sudo apt install ccache,在构建环境设置 CC=ccache gccexport CC=ccache
    • sccache:作为替代,适合分布式/云构建场景
  • 内存对象缓存
    • 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
  • DNS 缓存
    • dnsmasq:sudo apt install dnsmasq,在 /etc/dnsmasq.conf 设置 cache-mem 512(单位 MB),重启服务
  • 预加载(应用启动加速)
    • preload:sudo apt install 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
如何将Linux时间戳转换为UTC时间 Linux时间戳如何帮助数据同步

游客 回复需填写必要信息