温馨提示×

centos缓存配置技巧有哪些

小樊
57
2025-06-20 05:58:53
栏目: 智能运维

在CentOS系统中,缓存配置可以通过多种方式实现,具体取决于你想要缓存的内容。以下是一些常见的缓存配置技巧:

文件系统缓存

  • 查看当前缓存使用情况
    free -h
    
    或者
    vmstat -s | grep cache
    
  • 调整缓存大小:通常不需要手动调整文件系统缓存,因为Linux内核会自动管理。但如果你确实需要调整,可以通过修改/etc/sysctl.conf文件来实现:
    echo "vm.vfs_cache_pressure=50" >> /etc/sysctl.conf
    sysctl -p
    
    这个参数控制内核回收缓存的压力,值越低,内核越倾向于保留缓存。

DNS缓存

  • 使用nscd(Name Service Cache Daemon)
    • 安装nscd:
      sudo yum install nscd
      
    • 启动并启用nscd服务:
      sudo systemctl start nscd
      sudo systemctl enable nscd
      
    • 配置nscd:编辑/etc/nscd.conf文件,根据需要进行配置,例如:
      enable-cache hosts yes positive-time-to-live hosts 3600 negative-time-to-live hosts 20
      

Web服务器缓存

Apache

  • 安装mod_cache
    sudo yum install mod_cache mod_cache_disk
    
  • 启用模块
    sudo systemctl restart httpd
    sudo a2enmod cache
    sudo a2enmod cache_disk
    sudo systemctl restart httpd
    
  • 配置缓存:编辑/etc/httpd/conf.d/cache.conf文件,例如:
    <IfModule mod_cache.c>
      <IfModule mod_cache_disk.c>
        CacheRoot "/var/cache/httpd/mod_cache_disk"
        CacheEnable disk /
        CacheDirLevels 2
        CacheDirLength 1
      </IfModule>
    </IfModule>
    

Nginx

  • 配置缓存:编辑/etc/nginx/nginx.conf文件,添加缓存配置:
    http {
        proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m max_size=1g inactive=60m use_temp_path=off;
        server {
            listen 80;
            server_name example.com;
            location / {
                proxy_cache my_cache;
                proxy_pass http://backend;
                proxy_cache_valid 200 302 10m;
                proxy_cache_valid 404 1m;
            }
        }
    }
    

数据库缓存

MySQL

  • 调整缓存大小:编辑/etc/my.cnf/etc/mysql/my.cnf文件,例如:
    [mysqld]
    innodb_buffer_pool_size = 1G
    query_cache_size = 64M
    query_cache_type = 1
    

PostgreSQL

  • 调整缓存大小:编辑/var/lib/pgsql/data/postgresql.conf文件,例如:
    shared_buffers = 25% of total RAM
    work_mem = 4MB
    maintenance_work_mem = 512MB
    

内存管理

  • 查看内存使用情况:使用free -h命令查看内存使用情况,包括总内存、已用内存、空闲内存、共享内存、缓冲区和缓存的使用情况。
  • 手动清理缓存
    sync
    echo 1 > /proc/sys/vm/drop_caches
    
    清理页缓存。
    echo 2 > /proc/sys/vm/drop_caches
    
    清理目录项和索引节点缓存。
    echo 3 > /proc/sys/vm/drop_caches
    
    清理所有缓存。

自动清理缓存

  • 可以设置定时任务自动执行缓存清理,例如每天凌晨2点清理一次缓存:
    echo "0 2 * * * root sync; echo 3 /proc/sys/vm/drop_caches" | crontab -u root
    

其他优化措施

  • 调整内核参数:编辑/etc/sysctl.conf文件,添加或修改以下参数以提高性能:
    net.ipv4.tcp_tw_reuse = 1
    net.ipv4.tcp_tw_recycle = 1
    net.ipv4.tcp_fin_timeout = 30
    net.ipv4.tcp_keepalive_time = 1200
    net.ipv4.ip_local_port_range = "1024 65535"
    net.ipv4.tcp_max_syn_backlog = 8192
    net.core.somaxconn = 1024
    net.core.netdev_max_backlog = 2000
    net.ipv4.tcp_max_orphans = 32768
    net.ipv4.tcp_syncookies = 1
    
    然后执行以下命令使更改生效:
    sudo sysctl -p
    

通过上述方法,可以有效地管理和优化CentOS系统的缓存,从而提升系统性能和响应速度。在进行任何系统级操作之前,建议先备份重要数据,并在测试环境中验证优化效果。

0