在 CentOS(以及大多数 Linux 系统)中,“缓存优化”通常分为 系统缓存(内存/磁盘)、软件缓存(如 Nginx、MySQL) 和 文件系统缓存 几个层面。下面从常见场景给你一个系统性的优化思路。
Linux 会主动使用空闲内存做 文件缓存(PageCache),提升 IO 性能:
查看缓存占用:
free -h
cat /proc/meminfo
swapon -s
建议:
调整 swap 倾向:
# 值越小越倾向用内存(默认60)
sysctl vm.swappiness=10
永久生效:
echo "vm.swappiness=10" >> /etc/sysctl.conf
sysctl vm.dirty_ratio
sysctl vm.dirty_background_ratio
常见优化(写多场景):
vm.dirty_background_ratio = 5
vm.dirty_ratio = 10
含义:
CentOS 7/8 推荐:
xfs(默认,稳定)挂载优化:
mount -o noatime,nodiratime /dev/sdb1 /data
永久:
/dev/sdb1 /data xfs noatime,nodiratime 0 0
查看:
cat /sys/block/sda/queue/scheduler
SSD 推荐:
echo deadline > /sys/block/sda/queue/scheduler
# 或(CentOS 8+)
echo none > /sys/block/sda/queue/scheduler
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=mycache:10m max_size=10g inactive=60m;
location / {
proxy_cache mycache;
proxy_cache_valid 200 302 10m;
}
SHOW VARIABLES LIKE 'innodb_buffer_pool_size';
建议:
innodb_buffer_pool_size = 8G
query_cache_type = 0 # MySQL 8 已移除
maxmemory 4gb
maxmemory-policy allkeys-lru
仅调试或释放内存时:
sync
echo 3 > /proc/sys/vm/drop_caches
⚠ 不建议生产频繁执行
❌ “available 内存少 = 内存不够”
✅ Linux 用缓存提升性能,正常
❌ 盲目关缓存
✅ 缓存是性能核心
我可以帮你直接给出 可执行的优化参数。