温馨提示×

centos缓存怎样优化

小樊
42
2026-10-11 13:53:05
栏目: 智能运维

在 CentOS(包括 CentOS 7 / 8 / Stream)中,“缓存优化”通常分为 系统级缓存(PageCache / 内存缓存)、磁盘缓存、应用层缓存(如 Nginx、MySQL) 和 DNS / YUM 缓存 等几类。下面按常见场景给你一套实用优化思路。


一、Linux 系统缓存(PageCache)优化

CentOS 默认使用空闲内存做文件缓存,这是性能友好的,一般不建议手动清理。

1. 查看缓存使用情况

free -h
cat /proc/meminfo

关注:

  • Cached
  • Buffers
  • Available

2. 调整 swap 使用倾向(减少 swap)

# 值越小越倾向使用内存
sysctl vm.swappiness
sysctl -w vm.swappiness=10

持久化:

echo "vm.swappiness=10" >> /etc/sysctl.conf
sysctl -p

3. 脏页(写缓存)优化

sysctl vm.dirty_ratio
sysctl vm.dirty_background_ratio

常见优化(数据库服务器):

vm.dirty_ratio = 10
vm.dirty_background_ratio = 5

二、磁盘 I/O 缓存优化

1. 文件系统缓存

CentOS 常用:

  • ext4(默认)
  • xfs(推荐,尤其大文件)

XFS 优化挂载参数:

/dev/sdb1 /data xfs defaults,noatime,nodiratime 0 0

2. 禁用不必要的 atime

mount -o remount,noatime /

三、YUM / DNF 缓存优化

1. 保留 YUM 缓存(避免重复下载)

vi /etc/yum.conf
keepcache=1

缓存目录:

/var/cache/yum

2. 使用本地镜像(内网环境)

  • 搭建 nginx + yum repo
  • 或使用 reposync

四、Nginx 缓存优化(Web 场景)

1. 开启静态文件缓存

location ~* \.(js|css|png|jpg|gif)$ {
    expires 30d;
    access_log off;
}

2. 代理缓存

proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=mycache:10m max_size=10g;

五、MySQL 缓存优化(常见瓶颈)

1. 查询缓存(MySQL 5.7 及以前)

SHOW VARIABLES LIKE 'query_cache%';

⚠️ MySQL 8.0 已移除 query cache

2. InnoDB 缓冲池(最重要)

innodb_buffer_pool_size = 物理内存的 60%~70%

查看命中率:

SHOW STATUS LIKE 'Innodb_buffer_pool_read%';

六、DNS 缓存优化

1. 使用 systemd-resolved(CentOS 8+)

systemctl enable --now systemd-resolved

2. 或安装 nscd

yum install nscd
systemctl enable --now nscd

七、什么时候“不要”优化缓存?

✅ 正确做法:

  • 让 Linux 自己管理 PageCache
  • 只在特定瓶颈(IO、DB、Web)时优化

❌ 错误做法:

echo 3 > /proc/sys/vm/drop_caches

(生产环境频繁清缓存 = 性能自杀)


八、推荐排查顺序

  1. free -h → 内存是否紧张
  2. iostat -x 1 → 磁盘是否瓶颈
  3. top / htop → CPU / 进程
  4. 对应优化 Nginx / MySQL / 应用

如果你能告诉我:

  • CentOS 版本(7 / 8 / Stream)
  • 用途(Web / 数据库 / 文件服务器)
  • 性能问题表现(慢 / 卡 / 内存满)

我可以给你更精准的缓存优化方案。

0 踩