插件窝 干货文章 CentOS 7下搭建web服务器的磁盘IO性能优化方法

CentOS 7下搭建web服务器的磁盘IO性能优化方法

优化 bash 磁盘 文件 967    来源:    2025-04-12

CentOS 7下Web服务器磁盘IO性能优化指南

一、基础优化措施

1. 文件系统选择与优化

  • 推荐文件系统:XFS (CentOS 7默认)

    # 创建XFS文件系统(如果新部署)
    mkfs.xfs /dev/sdX
    
  • 挂载选项优化

    # /etc/fstab示例优化条目
    /dev/sdX  /data  xfs  defaults,noatime,nodiratime,allocsize=8m,inode64,logbsize=256k,logbufs=8  0 0
    
    • noatime/nodiratime: 禁用访问时间更新
    • allocsize: 提高大文件性能
    • inode64: 支持大容量存储

2. I/O调度器优化

# 查看当前调度器
cat /sys/block/sdX/queue/scheduler

# 设置为deadline(传统硬盘)或noop(SSD)
echo "deadline" > /sys/block/sdX/queue/scheduler

# 永久生效(添加到/etc/rc.local)
echo 'echo deadline > /sys/block/sdX/queue/scheduler' >> /etc/rc.local
chmod +x /etc/rc.local

3. 内核参数优化

# /etc/sysctl.conf添加以下参数
vm.dirty_ratio = 10
vm.dirty_background_ratio = 5
vm.swappiness = 10
vm.vfs_cache_pressure = 50

# 应用设置
sysctl -p

二、Web服务特定优化

1. Nginx优化

# nginx.conf中优化部分
http {
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    open_file_cache max=10000 inactive=30s;
    open_file_cache_valid 60s;
    open_file_cache_min_uses 2;
    open_file_cache_errors on;
    aio on;
    directio 4m;
}

2. Apache优化

# httpd.conf中优化部分
EnableSendfile on
EnableMMAP off

<IfModule mpm_prefork_module>
    StartServers        10
    MinSpareServers     10
    MaxSpareServers     20
    ServerLimit         256
    MaxClients          256
    MaxRequestsPerChild 4000
</IfModule>

三、高级优化方案

1. 使用tmpfs缓存

# 挂载tmpfs作为临时缓存
mount -t tmpfs -o size=512M tmpfs /var/cache/nginx

2. RAID优化

  • 对于数据库服务器:RAID 10
  • 对于Web内容服务器:RAID 5/6

3. SSD缓存方案(使用bcache)

# 安装bcache工具
yum install bcache-tools

# 创建bcache设备
make-bcache -B /dev/sdX -C /dev/sdY

4. 日志分离

  • 将访问日志、错误日志存放在独立磁盘
  • 考虑使用RAM disk存放临时日志

四、监控与诊断工具

  1. iostat - 监控磁盘I/O

    iostat -x 2
    
  2. iotop - 查看进程I/O使用情况

    yum install iotop
    iotop -o
    
  3. vmstat - 系统整体I/O情况

    vmstat 2
    
  4. blktrace - 深入分析块设备I/O

    yum install blktrace
    blktrace -d /dev/sdX -o - | blkparse -i -
    

五、定期维护建议

  1. 定期检查文件系统碎片(XFS一般不需要碎片整理)
  2. 监控磁盘SMART状态
  3. 定期清理不需要的日志文件
  4. 考虑使用logrotate管理日志文件

通过以上优化措施,可以显著提升CentOS 7 Web服务器的磁盘I/O性能,特别是在高并发访问场景下。具体优化效果需根据实际硬件配置和工作负载进行调整和测试。