服务器IO性能优化需分层精准适配:RAID按业务选型(如OLTP用RAID10)、IO调度器匹配介质(NVMe用kyber、HDD用deadline)、缓存分三层配置(Page Cache调参数、RAID卡开Write-Back+BBU、文件系统挂载优化),并以iostat/iotop/smartctl诊断真瓶颈。
服务器 IO 性能优化不是堆硬件,而是分层匹配:从磁盘阵列选型、内核调度策略,到缓存与文件系统配置,每一层都得对准业务负载。重点不在“全开”,而在“精准适配”。
RAID 不是越高级越好,关键看读写特征和容错底线:
Linux 默认的 cfq 在 SSD/NVMe 上反而拖后腿,必须换:
cat /sys/block/sdX/queue/scheduler;临时切换:echo kyber > /sys/block/sdX/queue/scheduler;永久生效需加 elevator=kyber 到 GRUB 内核参数。缓存不是越大越好,而是要让每一层干好自己的活:
vm.dirty_ratio(如设为 10)和 vm.dirty_background_ratio(如设为 5),避免脏页堆积导致突发刷盘卡顿;数据库类应用若启用了自身缓冲池(如 InnoDB Buffer Pool),可考虑启用 O_DIRECT 绕过 Page Cache。noatime,nodiratime,discard,barrier=0;HDD 用 noatime,nodiratime,data=ordered;XFS 对大文件和并发更友好,EXT4 更稳,Btrfs 少用于生产核心存储。优化前先确认是不是真瓶颈:
iostat -x 1 看 %util 是否常超 90%、await 是否持续 > 10ms(SSD)或 > 20ms(HDD);iotop 找出真实吃 IO 的进程;smartctl -a /dev/sdX 排除磁盘硬件隐患(坏道、重映射计数上升);