CentOS 下分卷速度慢,通常不是单一原因,而是磁盘、文件系统、压缩方式、工具参数等多个因素叠加。下面按常见场景给你系统分析,并给出优化建议。
iostat -x 1
看 %util 是否接近 100%。✅ 建议:
压缩是 CPU 密集型操作,会明显拖慢速度。
| 压缩方式 | 速度 | 压缩率 |
|---|---|---|
| gzip | 中 | 中 |
| bzip2 | 慢 | 高 |
| xz | 很慢 | 很高 |
✅ 建议:
tar -cf - bigfile | split -b 1G
pigz(多线程 gzip)tar -cf - bigfile | pigz | split -b 1G
split 和 cat 本身很快,慢的是前面的 tar / cp / dd。
❌ 错误理解:
dd if=/dev/sda of=xxx bs=1M
dd 默认没进度、没优化,非常慢。
✅ 优化:
dd if=/dev/sda of=xxx bs=64M status=progress
✅ 建议:
大量小文件(几万、几十万):
✅ 优化:
rsync✅ 检查:
free -h
vmstat 1
tar czvf - bigdir | split -b 1G
✅ 优化:
tar cf - bigdir | split -b 1G
或
tar cf - bigdir | pigz | split -b 1G
dd if=bigfile of=part bs=1M
✅ 优化:
dd if=bigfile of=part bs=64M status=progress
cat /dev/sda > /dev/sdb
✅ 优化:
dd if=/dev/sda of=/dev/sdb bs=64M conv=noerror,sync status=progress
iostat 是否 IO 打满?pigz 替代 gzip?你可以直接贴出:
lsblkiostat -x 1(前 10 行)我可以精确判断是 CPU、磁盘还是参数问题,并给你最优命令。