bash
iostat -x 1
bash
vmstat 1
bash
iotop -o
bash
dstat -cdlmnpsy
# ext4优化示例
mount -o noatime,nodiratime,data=writeback,barrier=0,discard /dev/sdX /mountpoint
# XFS优化示例
mount -o noatime,nodiratime,logbsize=256k,logbufs=8 /dev/sdX /mountpoint
常用优化选项:
- noatime/nodiratime
: 禁用访问时间更新
- data=writeback
: ext4更快的写入模式(有风险)
- barrier=0
: 禁用写入屏障(有风险)
- discard
: 启用TRIM(SSD)
- stripe=n
: RAID优化
# ext4日志模式调整
tune2fs -o journal_data_writeback /dev/sdX
# 调整预读值(适合大文件顺序读取)
blockdev --setra 8192 /dev/sdX
# 调整脏页比例(内存充足时)
sysctl -w vm.dirty_ratio=20
sysctl -w vm.dirty_background_ratio=10
# 查看当前调度器
cat /sys/block/sdX/queue/scheduler
# 修改调度器
echo deadline > /sys/block/sdX/queue/scheduler
调度器选择指南: - deadline: 通用服务器最佳选择 - noop: SSD或虚拟化环境 - cfq: 桌面环境
# 对齐分区
parted -a optimal /dev/sdX
# 启用TRIM
fstrim -v /mountpoint
# 调整SSD参数
echo noop > /sys/block/sdX/queue/scheduler
echo 1 > /sys/block/sdX/queue/iosched/fifo_batch
# 创建缓存池
lvcreate -L 10G -n cachepool vg /dev/ssd
# 附加缓存到原始LV
lvconvert --type cache --cachepool vg/cachepool vg/originallv
# 创建bcache设备
make-bcache -B /dev/slowdisk -C /dev/fastdisk
# 配置缓存模式
echo writeback > /sys/block/bcache0/bcache/cache_mode
# 创建tmpfs
mount -t tmpfs -o size=1G tmpfs /mnt/ramdisk
# 检查文件系统错误
fsck -f /dev/sdX
# 碎片整理(仅XFS)
xfs_fsr /mountpoint
# 更新数据库索引
updatedb
通过以上方法,可以显著提升Linux文件系统的I/O性能,但最佳配置取决于具体工作负载和硬件环境。