Debian怎样优化缓存回收策略
导读:Debian缓存回收策略优化指南 一 监控与诊断 使用free -m观察内存总体情况,重点关注available列(表示可回收后可用内存),不要只看“free”。 用top/htop按**%MEM或RES排序,快速定位高内存进程;必要时用...
Debian缓存回收策略优化指南
一 监控与诊断
- 使用free -m观察内存总体情况,重点关注available列(表示可回收后可用内存),不要只看“free”。
- 用top/htop按**%MEM或RES排序,快速定位高内存进程;必要时用ps aux --sort=-%mem | head -n 10**列出前10。
- 持续采样与排查:如vmstat 1 5观察si/so(swap in/out)是否频繁;结合dmesg检查OOM或内存压力日志。
- 若怀疑应用问题,使用valgrind --leak-check=full定位内存泄漏。
二 内核参数调优
- 调整vm.swappiness(默认通常为60):值越低越倾向保留匿名页在内存,减少换出。建议:服务器10–20、桌面30–50。
- 调整vm.vfs_cache_pressure(默认100):提高该值会更快回收目录项/索引节点等VFS缓存;过高会影响文件操作性能。
- 调整脏页刷写阈值:
- vm.dirty_ratio(如设为20):当脏页占总内存比例达到该值,强制回写。
- vm.dirty_background_ratio(如设为5):后台回写线程在脏页达该比例时开始写回。
- 应用示例(写入**/etc/sysctl.conf或/etc/sysctl.d/99-memory.conf**):
执行sysctl -p使配置生效。vm.swappiness=10 vm.vfs_cache_pressure=200 vm.dirty_ratio=20 vm.dirty_background_ratio=5 - 仅在明确需要时手动清理页面缓存(会短暂影响性能):
sync echo 1 > /proc/sys/vm/drop_caches # 仅页缓存 echo 2 > /proc/sys/vm/drop_caches # 目录项与索引节点 echo 3 > /proc/sys/vm/drop_caches # 页缓存、dentry、inode
三 磁盘与APT缓存清理
- APT缓存与无用包:
sudo apt-get clean sudo apt-get autoclean sudo apt-get autoremove --purge - 清理旧内核(先查版本再删):
dpkg --list | grep linux-image sudo apt-get purge linux-image-< version> linux-headers-< version> - systemd日志:
sudo journalctl --vacuum-time=7d sudo journalctl --vacuum-size=100M - 临时文件与包残留:
sudo find /tmp -mindepth 1 -mtime +1 -delete sudo find /var/tmp -mindepth 1 -mtime +1 -delete dpkg --list | awk '$1 ~ /^rc/ { print $2} ' | xargs sudo apt-get purge - 大文件定位:
sudo du -sh /* 2> /dev/null | sort -hr | head sudo find /var -type f -size +100M -exec du -h { } + 2> /dev/null | sort -hr | head
四 交换空间与I/O优化
- 合理设置Swap:内存紧张但磁盘较慢时,适度增加Swap可降低OOM风险;内存充足时降低swappiness以减少抖动。
- 创建Swap文件示例(示例2G):
sudo fallocate -l 2G /swapfile sudo chmod 600 /swapfile sudo mkswap /swapfile sudo swapon /swapfile echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab - 文件系统挂载选项:对不敏感路径使用noatime,nodiratime减少元数据写入。
- I/O调度器:SSD可选none/mq-deadline;机械盘可用mq-deadline或cfq(视内核与负载而定)。
五 应用与工作负载优化
- 数据库与中间件:
- MySQL/MariaDB:调优innodb_buffer_pool_size(通常设为物理内存的50%–70%,视实例共存情况)。
- PostgreSQL:调优shared_buffers(常见为内存的**25%**左右起步)。
- Java应用:合理设置**-Xms/-Xmx**,避免堆过大导致系统内存紧张与频繁GC。
- Web服务:根据并发与内存,调整Nginx worker_processes/worker_connections或Apache MaxRequestWorkers。
- 精简与治理:关闭不必要的服务与容器;对容器化环境定期执行docker system prune -af等清理。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Debian怎样优化缓存回收策略
本文地址: https://pptw.com/jishu/768697.html
