使用 pigz 多线程特性提高解压缩速度.md
数据源
- 通过脚本创建出不同大小的文件
- 实验数据10w个不同大小的文件量
### 创建实验文件夹
mkdir /app/example
### 脚本批量创建不同大小的文件和对应数量(10w个)
#! /bin/bash
cd /app/example
count=0
##1w个1M文件
for count in {1..10000};do
filename="$RANDOM$(date +%s)"
dd if=/dev/zero of=${filename}.txt bs=1M count=1
done
## 8w个小文件
for count in {1..80000};do
filename="$RANDOM$(date +%s)"
dd if=/dev/zero of=${filename}.txt bs=100 count=1
done
## 1w个大文件
for count in {1..10000};do
filename="$RANDOM$(date +%s)"
dd if=/dev/zero of=${filename}.txt bs=10M count=1
done
- 执行脚本创建
date && /bin/bash /opt/example.sh >>/dev/null 2>&1 && date
压缩比较
通过传统 tar 方式进行压缩打包
date && tar -zcf example.tar.gz example/ && date
通过 pigz 方式加速打包
- 方式(观察负载情况,要比之前的高)
date && tar --use-compress-program=pigz -cpf example.tar.gz example/ && date
感觉也不是很快,不过我在生产环境实际操作的时候,要快得多,验证的时候可能还有其他因素影响了