首页主机资讯ubuntu缓存大小怎么调整

ubuntu缓存大小怎么调整

时间2025-10-25 01:11:04发布访客分类主机资讯浏览1349
导读:Ubuntu缓存大小调整方法分类及操作指南 一、内存缓存(PageCache/dentries/inodes)调整 内存缓存是Ubuntu提升文件访问速度的核心机制,主要包括PageCache(页面缓存)、dentries(目录项缓存)和i...

Ubuntu缓存大小调整方法分类及操作指南

一、内存缓存(PageCache/dentries/inodes)调整

内存缓存是Ubuntu提升文件访问速度的核心机制,主要包括PageCache(页面缓存)dentries(目录项缓存)inodes(索引节点缓存)。调整这类缓存需通过内核参数实现:

1. 查看当前缓存状态

使用free -h命令可查看系统内存使用情况,其中“buff/cache”列即为内存缓存总量(包含PageCache、dentries等)。

free -h
2. 临时调整缓存参数(立即生效,重启失效)
  • 调整vm.vfs_cache_pressure:控制内核回收dentries和inodes缓存的倾向性,值越大越积极回收(减少缓存),值越小越保守(增加缓存)。默认值通常为100,建议范围50-200。
    sudo sysctl -w vm.vfs_cache_pressure=100  # 设置为100(默认值)
    
  • 调整vm.dirty_ratiovm.dirty_background_ratio:控制脏页(已修改但未写入磁盘的内存页)的比例。dirty_ratio是触发同步写入的阈值(默认20%),dirty_background_ratio是触发后台写入的阈值(默认10%)。降低这两个值可减少写回延迟,提高数据安全性。
    sudo sysctl -w vm.dirty_ratio=20    # 同步写入阈值设为20%
    sudo sysctl -w vm.dirty_background_ratio=10  # 后台写入阈值设为10%
    
3. 永久调整缓存参数(重启后仍有效)

编辑/etc/sysctl.conf文件,添加或修改上述参数(以vm.vfs_cache_pressure为例):

sudo nano /etc/sysctl.conf

在文件末尾添加:

vm.vfs_cache_pressure=100
vm.dirty_ratio=20
vm.dirty_background_ratio=10

保存后执行sudo sysctl -p使配置生效。

4. 手动清理内存缓存(非破坏性操作)

若需立即释放内存缓存(如系统内存紧张),可使用以下命令(需root权限):

  • 清理PageCache
    sudo sync &
        &
         echo 1 | sudo tee /proc/sys/vm/drop_caches
    
  • 清理dentries和inodes
    sudo sync &
        &
         echo 2 | sudo tee /proc/sys/vm/drop_caches
    
  • 清理所有缓存(PageCache+dentries+inodes)
    sudo sync &
        &
         echo 3 | sudo tee /proc/sys/vm/drop_caches
    

注:sync命令用于将缓存数据写入磁盘,避免数据丢失。

二、APT软件包缓存调整

APT(Advanced Package Tool)会缓存下载的软件包(位于/var/cache/apt/archives/),可通过以下方式调整缓存大小或清理缓存:

1. 清理APT缓存(释放磁盘空间)
  • 清理旧版本软件包
    sudo apt-get autoclean
    
  • 清理所有缓存(包括未使用的软件包)
    sudo apt-get clean
    
2. 永久调整APT缓存大小

编辑/etc/apt/apt.conf.d/95local文件(若不存在则创建),添加APT::Cache-Limit参数(单位:字节):

sudo nano /etc/apt/apt.conf.d/95local

设置缓存大小(例如500MB):

APT::Cache-Limit "500000000";
      # 500MB

保存后,APT将自动限制缓存文件的总大小。

三、其他缓存调整(可选)

1. 调整swappiness(交换分区使用倾向)

vm.swappiness参数控制内核使用交换分区(swap)的倾向性,值越大越倾向于使用swap(默认60),值越小越倾向于使用物理内存(建议10-30)。

  • 临时调整
    sudo sysctl -w vm.swappiness=10
    
  • 永久调整:编辑/etc/sysctl.conf,添加:
    vm.swappiness=10
    
    执行sudo sysctl -p生效。
2. 配置应用层缓存(如Memcached/DNS缓存)
  • Memcached(内存缓存服务器):用于缓存数据库查询、网页内容等,需安装并配置/etc/memcached.conf中的-m参数(缓存大小,单位MB):
    sudo apt install memcached
    sudo nano /etc/memcached.conf  # 修改 -m 1024(1GB)
    sudo systemctl restart memcached
    
  • DNS缓存(dnsmasq):用于缓存域名解析结果,需安装并配置/etc/dnsmasq.conf中的cache-size参数(缓存条目数,默认150):
    sudo apt install dnsmasq
    sudo nano /etc/dnsmasq.conf  # 添加 cache-size=1000
    sudo systemctl restart dnsmasq
    

注意事项

  • 调整缓存参数需根据系统实际情况(如内存大小、应用需求)进行,避免过度调整导致性能下降(如swappiness设为0可能导致内存耗尽时系统崩溃)。
  • 生产环境中调整前建议在测试环境验证,避免影响业务运行。
  • 定期监控缓存使用情况(如free -mvmstat),及时优化参数。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: ubuntu缓存大小怎么调整
本文地址: https://pptw.com/jishu/735206.html
ubuntu缓存与性能关系探讨 Debian Extract有什么限制

游客 回复需填写必要信息