在 CentOS(或其他 Linux 系统)里,“分卷”通常指 LVM 逻辑卷(LV)、mdadm 软 RAID、或 压缩/归档分卷(如 tar split)。不同场景提速方式不同,下面按常见情况给你说明。
iostat -x 1
或
fio --name=test --rw=randwrite --bs=4k --numjobs=4 --size=1G --filename=/dev/sdX
如果是单盘瓶颈,分卷再多也没用。
如果你有多块磁盘:
lvcreate -i 2 -I 64k -L 100G -n lv_data vg0 /dev/sdb /dev/sdc
-i:条带数(磁盘数)-I:条带大小(常用 64k / 128k)✅ 这相当于“软件 RAID0”,读写为多盘并发
EXT4:
mkfs.ext4 -E stride=16,stripe-width=32 /dev/vg0/lv_data
XFS(推荐):
mkfs.xfs -d su=64k,sw=2 /dev/vg0/lv_data
挂载优化:
mount -o noatime,nodiratime,discard /dev/vg0/lv_data /data
mdadm --create /dev/md0 --level=0 --raid-devices=2 /dev/sdb /dev/sdc
mdadm --create /dev/md0 --level=0 --chunk=128 --raid-devices=2 /dev/sdb /dev/sdc
echo 32768 > /sys/block/md0/md/stripe_cache_size
tar -cf - /data | pigz -p 8 | split -b 1G - data.tar.gz.
pigz:多线程 gzip-p 8:8 线程直接写磁盘:
tar -I pigz -cf data.tar.gz /data
split -b 1G data.tar.gz data.part
CentOS 7:
echo deadline > /sys/block/sdb/queue/scheduler
CentOS 8+:
echo mq-deadline > /sys/block/sdb/queue/scheduler
sysctl -w vm.dirty_ratio=20
sysctl -w vm.dirty_background_ratio=10
你可以先告诉我:
我可以直接给你一条最合适的命令方案。