ubuntu缓存大小怎么调整
导读: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_ratio和vm.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=10sudo 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 -m、vmstat),及时优化参数。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: ubuntu缓存大小怎么调整
本文地址: https://pptw.com/jishu/735206.html
