博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Linux下将两个10G的文件打包成一个文件需要多久
阅读量:6716 次
发布时间:2019-06-25

本文共 1423 字,大约阅读时间需要 4 分钟。

Linux下将两个10G的文件打包成一个文件需要多久

微博上kevin_prajna提了一个问题:“求Linux下一打包工具,需求:能把两个10G的文件打包成一个文件,时间在1分钟之内能接受!”。

暂且作答一下吧。首先问题是求解工具,那么我们忽略IO问题,采用内存盘来解决, 在公司一台128G内存的机器上:

mkdir /mnt/testmount -t ramfs none /mnt/testcd /mnt/test

生成一个小脚本,生成两个10G的文件:

#!/bin/bashfor (( i = 0; i < 2; i++)); doecho $i    dd if=/dev/zero of=file$i.bin bs=1M count=10000done;

生成测试文件:

time ./test.sh <<<010000+0 records in10000+0 records out10485760000 bytes (10 GB) copied, 4.78903 s, 2.2 GB/s110000+0 records in10000+0 records out10485760000 bytes (10 GB) copied, 4.92947 s, 2.1 GB/s./test.sh 0.00s user 9.68s system 99% cpu 9.731 total

测试结果,生成两个10G文件,消耗了9.731秒

采用tar打包工具测试:

time tar cvf out.bin file* <<

采用 tar打包这两个文件,并且写入 out.bin文件,消耗了 14.353秒, 完全满足kevin_prajna的要求。

然后我们用cpio来测试,由于cpio对10G这样的文件打包有bug,会报错,所以我们用20个1G文件测试:

#!/bin/bashfor (( i = 0; i < 20; i++)); doecho $i    dd if=/dev/zero of=file$i.bin bs=1M count=1000done;

生成20个1G测试文件,用了 9.806秒

使用tar对这20个1G文件打包,用了13.800 秒

cpio的测试结果:

# time ls file*|cpio -o > out.bin                                                                                                                                           <<<40960002 blocksls --color=tty file*  0.00s user 0.00s system 0% cpu 0.002 totalcpio -o > out.bin  6.31s user 37.61s system 99% cpu 44.029 total

cpio打包这20个1G文件消耗了44.029秒,速度相对tar,还是慢了好多。

测试环境:

Dell R710, 2*Xeon E5620, 128G RAM

OS: Ubuntu 12.04 x86_64

从上面也可以看出,现在CPU和工具是很强悍的,弱爆的是磁盘IO,这是要大把花银子的。

转载地址:http://zckmo.baihongyu.com/

你可能感兴趣的文章
WinForm------如何修改PanelControl控件背景色
查看>>
Android性能优化第(二)篇---Memory Monitor检测内存泄露
查看>>
linux网络命令
查看>>
.NET Core 2.0及.NET Standard 2.0
查看>>
Makefile生成器,使用C++和Boost实现
查看>>
ITOO之底层关系
查看>>
算法笔记_141:无向图的欧拉回路判断问题(Java)
查看>>
XX年年终总结---重新飞跃
查看>>
Spark学习笔记之-Spark远程调试
查看>>
js---06函数传参数
查看>>
WCF系列教程之WCF服务配置
查看>>
Makefile 11——支持头文件目录指定
查看>>
解决JsonFormat日期少一天问题
查看>>
POJ 1201 Intervals
查看>>
linux下串口调试工具
查看>>
[转]如何在 .Net Framework 4.0 项目上使用 OData?
查看>>
UVa 12279 - Emoogle Balance
查看>>
头文件algorithm中的常用函数
查看>>
一套解决方案,多个项目
查看>>
Qt3D Shader
查看>>