1. 调整I/O调度算法
I/O调度算法决定了磁盘请求的处理顺序,不同算法适用于不同存储介质。对于HDD(机械硬盘),Deadline调度器能最小化请求平均等待时间,适合处理大量随机I/O;对于SSD(固态硬盘),NOOP(无操作)或Deadline调度器更合适,因为SSD无机械寻道时间,简化调度逻辑可减少CPU负载。
操作步骤:
cat /sys/block/sda/queue/scheduler(输出包含noop、deadline等选项);echo deadline > /sys/block/sda/queue/scheduler;/etc/default/grub,在GRUB_CMDLINE_LINUX行添加elevator=deadline,运行grub2-mkconfig -o /boot/grub2/grub.cfg并重启系统。2. 优化文件系统选择与参数
noatime挂载选项:避免每次访问文件都更新访问时间,减少不必要的磁盘写操作。编辑/etc/fstab,将挂载选项改为defaults,noatime,nodiratime(nodiratime进一步禁用目录访问时间更新)。3. 利用缓存机制加速I/O
/dev/sdb1)和原始卷(如/dev/sdc1);lvcreate命令创建缓存逻辑卷(如lvcreate -L 10G -n lv_cache centos);lvconvert --type cache --cachevol /dev/centos/lv_cache /dev/centos/root)。bcache-tools,配置缓存设备和后端设备(如make-bcache -B /dev/sdc1 -C /dev/sdb1),格式化并挂载bcache设备。4. 升级硬件提升基础性能
5. 监控与分析磁盘性能
使用工具定位性能瓶颈,针对性优化:
yum install sysstat;yum install iotop;vmstat 1查看每秒I/O等待时间);sar -d 1 5查看最近5次磁盘活动)。6. 其他优化建议
e4defrag(ext4)或xfs_fsr(XFS)工具整理碎片;vm.dirty_ratio(脏页占比,默认20%)和vm.dirty_background_ratio(后台刷脏页阈值,默认10%),减少磁盘I/O等待时间(如设置为vm.dirty_ratio=30,vm.dirty_background_ratio=15);fs.file-max(最大文件描述符数),适合高并发文件访问场景(如fs.file-max=65536)。innodb_buffer_pool_size)、使用连接池;rsize/wsize设置为65536),启用客户端缓存。