

















务必将WAL日志(pg_wal目录)放在独立的物理磁盘或高性能分区,隔离数据文件写入压力,对提升性能至关重要
文件系统选择:优先选择 XFS,尤其是在大文件和高并发的数据库场景下,实测4K随机写性能比 ext4 提升约 25%。
文件系统4K对齐:创建时使用 mkfs.xfs -f -s size=4096 /dev/sdX 确保 4KiB 对齐,这在很多虚拟化环境中效果显著。
挂载参数优化:如果数据库是 MySQL/PostgreSQL,且使用 XFS 文件系统,可在挂载选项增加参数提升日志子系统吞吐量:
mount -t xfs -o remount,noatime,nodiratime,logbufs=8,logbsize=256k,inode64,commit=60 /dev/sdX /mnt/db
noatime,nodiratime:关闭访问时间记录,减少大量微小写 IO(高并发必备)
commit=60:延长文件系统刷盘间隔(默认 5 秒,降低频繁 fsync)
async:异步写,数据先落页缓存,再后台刷盘,大幅降低即时 IO 压力
ext4:barrier=0:关闭 ext4 写屏障(硬件有 RAID 卡 + 电池 BBU 才建议开,断电无风险)
xfs:logbufs=8,logbsize=256k 放大日志缓冲区,减少元数据刷盘
Linux 不同内核 / 磁盘推荐调度器:
SSD 固态硬盘:推荐 mq-deadline / none(新版本内核)
HDD 机械硬盘:推荐 mq-deadline(老内核 deadline)
严禁 SSD 使用 cfq(完全不适合,队列堆积严重)
查看当前调度器:cat /sys/block/sda/queue/scheduler
SSD 设置 mq-deadline:echo mq-deadline > /sys/block/sda/queue/scheduler
老SSD/高速盘设置 none:echo none > /sys/block/sda/queue/scheduler
编辑内核启动参数 /etc/default/grub,添加:elevator=mq-deadline
然后更新 grub,并重启服务器:grub2-mkconfig -o /boot/grub2/grub.cfg
针对 IO 队列堆积,util 高的情况,可对快设备队列参数进行优化。
并发高时默认队列深度太小,请求排队:
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。