温馨提示×

如何优化Ubuntu的网络缓存

小樊
33
2025-12-27 02:59:19
栏目: 智能运维

Ubuntu网络缓存优化指南

一 明确目标与总体思路

  • 区分两类优化:一类是“释放/回收”缓存(如 APTDNS内存 Page Cache),用于解决空间占用或解析异常;另一类是“调优/利用”缓存(如 DNS TTLHTTP 反向代理缓存内核网络缓冲),用于提升访问速度与吞吐。
  • 先测量再优化:用 speedtest-cli 测速、用 nethogs 看进程带宽,定位瓶颈后再选择对应手段,避免盲目改动。必要时先备份关键配置。

二 清理与回收类操作

  • APT 软件包缓存
    • 查看大小:sudo du -sh /var/cache/apt
    • 仅删过期包:sudo apt autoclean
    • 清空所有包缓存:sudo apt clean
    • 移除无用依赖:sudo apt autoremove
  • 系统日志与临时文件
    • 查看日志占用:journalctl --disk-usage
    • 保留最近时间:sudo journalctl --vacuum-time 1w
    • 保留指定大小:sudo journalctl --vacuum-size 500M
    • 清理临时文件:sudo rm -rf /tmp/*(谨慎,避免删除正在使用的文件)
  • 浏览器与用户缓存
    • 浏览器:在设置中清理“缓存”;或清理目录如 ~/.cache/mozilla/firefox/*.default-release/cache/~/.cache/google-chrome/Default/Cache/
    • 缩略图:rm -rf ~/.cache/thumbnails/*
  • 内存 Page Cache(仅在必要时临时释放)
    • 执行:sync && echo 3 | sudo tee /proc/sys/vm/drop_caches
    • 说明:该操作会暂时降低 I/O 性能,生产环境慎用,系统会在需要时自动回收内存缓存。

三 提升访问速度的缓存策略

  • DNS 缓存
    • 若使用 systemd-resolved:刷新缓存 sudo systemd-resolve --flush-caches
    • 若使用 dnsmasq:可调整缓存大小与 TTL,必要时重启服务以清理缓存
  • HTTP 层缓存
    • 部署 Varnish 作为反向代理/HTTP 加速器,缓存静态与可缓存的动态内容,降低后端负载、提升响应
    • 应用层(如 Nginx/Apache)按需配置静态资源缓存策略与失效时间
  • 内存对象缓存(应用加速)
    • 安装并配置 memcached,为数据库查询、会话等提供键值缓存,减轻后端压力。

四 内核网络与 TCP 栈调优(面向高延迟/大带宽/大流量)

  • 查看与调整套接字缓冲
    • 当前值:cat /proc/sys/net/core/rmem_defaultcat /proc/sys/net/core/wmem_defaultcat /proc/sys/net/core/rmem_maxcat /proc/sys/net/core/wmem_max
    • 建议范围(示例,按内存与场景微调):
      • net.core.rmem_max=12582912
      • net.core.wmem_max=12582912
      • net.ipv4.tcp_rmem=10240 87380 12582912
      • net.ipv4.tcp_wmem=10240 87380 12582912
  • 启用性能相关特性
    • net.ipv4.tcp_window_scaling=1
    • net.ipv4.tcp_timestamps=1
    • net.ipv4.tcp_sack=1
    • net.ipv4.tcp_no_metrics_save=1(连接关闭时不保存路由度量,避免旧指标影响新连接)
    • net.core.netdev_max_backlog=5000
  • 使配置生效:sudo sysctl -p
  • 风险提示:增大缓冲会占用更多内存;在 低延迟/小带宽 场景不必盲目拉满,建议结合业务与压测逐步调优。

五 监控与验证

  • 测速与带宽占用
    • 测速:sudo apt-get install speedtest-cli && speedtest-cli
    • 按进程看带宽:sudo apt-get install nethogs && sudo nethogs
  • 生效验证
    • DNS:刷新后对比解析时延/命中率
    • HTTP:观察 Varnish/Hit/Miss 指标与后端负载
    • TCP:在调整后使用 ss -tiip -s link 等观察 RTT、窗口、重传 等指标变化
  • 维护建议
    • 定期清理 APT日志,避免磁盘被占满影响服务
    • 重要改动先在测试环境验证,变更后保留回滚方案。

0