【转】打包2个10g文件 测试
微博上kevin_prajna提了一个问题:“求Linux下一打包工具,需求:能把两个10G的文件打包成一个文件,时间在1分钟之内能接受!”。 暂且作答一下吧。首先问题是求解工具,那么我们忽略IO问题,采用内存盘来解决, 在公司一台128G内存的机器上: mkdir /mnt/test
mount -t ramfs none /mnt/test
cd /mnt/test
生成一个小脚本,生成两个10G的文件: #!/bin/bash
for (( i = ; i < ; i++)); do
echo $i
dd if=/dev/zero of=file$i.bin bs=1M count=
done;
生成测试文件: time ./test.sh <<< + records in
+ records out
bytes ( GB) copied, 4.78903 s, 2.2 GB/s + records in
+ records out
bytes ( GB) copied, 4.92947 s, 2.1 GB/s
./test.sh .00s user .68s system % cpu 9.731 total
测试结果,生成两个10G文件,消耗了9.731秒 采用tar打包工具测试: time tar cvf out.bin file* <<<
file0.bin
file1.bin
tar cvf out.bin file* .40s user .90s system % cpu 14.353 total
采用 tar打包这两个文件,并且写入 out.bin文件,消耗了 .353秒, 完全满足kevin_prajna的要求。 然后我们用cpio来测试,由于cpio对10G这样的文件打包有bug,会报错,所以我们用20个1G文件测试: #!/bin/bash
for (( i = ; i < ; i++)); do
echo $i
dd if=/dev/zero of=file$i.bin bs=1M count=
done;
生成20个1G测试文件,用了 .806秒 使用tar对这20个1G文件打包,用了13. 秒 cpio的测试结果: # time ls file*|cpio -o > out.bin <<<
blocks
ls --color=tty file* .00s user .00s system % cpu 0.002 total
cpio -o > out.bin .31s user .61s system % cpu 44.029 total
cpio打包这20个1G文件消耗了44.029秒,速度相对tar,还是慢了好多。 测试环境: Dell R710, *Xeon E5620, 128G RAM
OS: Ubuntu 12.04 x86_64 从上面也可以看出,现在CPU和工具是很强悍的,弱爆的是磁盘IO,这是要大把花银子的。
【转】打包2个10g文件 测试的更多相关文章
- webpack打包多个入口文件
打包后的目录结构: webpack.config.js // path 模块提供了一些用于处理文件路径 const path = require('path'); // fs模块用于对系统文件及目录进 ...
- java将文件打包成ZIP压缩文件的工具类实例
package com.lanp; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import ja ...
- Java中基本的打包jar和war文件(包括eclipse打包操作)
前言: 为什么要打jar包? 1.举个例子,当编写一个工具类库,里面有十几个类,每个类对应一个class文件时,为了方便别人调用,是不是要装在一个文件中,方便传递和引用. 2.打jar包还有一个好处, ...
- IDEA将项目打包为指定class文件的jar
转自:https://blog.csdn.net/makang456/article/details/86699375 [背景] 公司最近要和某大公司合作,将本公司的产品提供给其它公司单独部署 ...
- 实用程序包utils - 基于Rollup打包输出各模块文件(二)
上一次,我们讲到了如何去搭建一个前端工具库的工程,那么今天我们来聊一聊如何去将其打包输出. 需求 事情是这个样子的.我有一个这样的需求,或者是我发现有这么一个需求.就是有时候吧,我也不想搞的那么复杂, ...
- 如何将Debug文件夹下的资源打包成一个EXE文件直接执行
前言:前段时间写了个小程序,想分享给好友看看,可所以资源都放在Debug文件夹下,整个文件夹发给人家这也太……,为了显得稍微专业一点,想把它们打包一个EXE文件执行,因为我见到到这样的程序,直接一个E ...
- 使用webpack打包ThinkPHP的资源文件
使用webpack打包ThinkPHP的资源文件 利用自己的空余时间一直在维护http://www.wx2share.com这个小网站,全是一个人在弄,由于只租得起虚拟空间,所以后台采用了简单方便的T ...
- Linux Shell 04 数字/字符串/文件测试
一. 数字测试 格式:n1 -op n2 测试操作op: eq/ne/le/ge/lt/gt --> 等于/不等于/小于等于/大于等于/小于/大于 1. 数字比较可以使用特殊的( ...
- [shell基础]——整数比较;字符串比较;文件测试;逻辑测试符
整数比较方法一:[ ] 或 [[ ]] (1) 此方法需要使用整数比较运算符.[标注:equal 等于 greater 大于 less-then 小于] (2) 使用时一定要注意前后一 ...
随机推荐
- BootStrap-select 插件的使用
这是一款下拉框多选的插件,非常的抢到,什么样式都是有的:首先去参看一下官网的信息,详细介绍是怎么使用的: 相关官网网址: https://silviomoreto.github.io/bootstr ...
- Oracle数据库进行撤销
第一步:在v$sqlarea 这视图里面找到你操作那条SQL的时间;select r.FIRST_LOAD_TIME,r. from v$sqlarea r order by r.FIRST_LOAD ...
- ctcms Nginx 伪静态
location /whole { rewrite ^/whole/(.+).html$ /index.php?c=whole&key=$1; } location /show { rewri ...
- css边框颜色渐变
在实际开发中,我们经常遇见边框需要背景渐变的实现要求,那么如何去实现呢,今天给大家分享依稀几种情况 1.直角的背景渐变 <!DOCTYPE html> <html lang=&quo ...
- 手动解除联合的ArcGIS Server
ArcGIS Server可以通过和Portal联合,组建WebGIS系统. 假如已经联合的ArcGIS Server已经无法访问,例如服务器宕机了,或者网络断开了.需要手动解除联合的ArcGIS S ...
- OpenGL学习--03--矩阵
Model--View--Projection 1.tutorial03.cpp // Include standard headers #include <stdio.h> #inclu ...
- keras Lambda 层
Lambda层 keras.layers.core.Lambda(function, output_shape=None, mask=None, arguments=None) 本函数用以对上一层的输 ...
- ubuntu密码正确,却不能登录图形界面
传统的方法是修改.Xauthority文件权限,不过我试了没有用. 后来发现我的问题是因为安装了NVIDIA cuda驱动而导致的. 所以先卸载nvidia驱动,再更新,就可以正常进入了. 命令: s ...
- Angular-学习。
今天刚学了点关于Angular的知识,就迫不及待的想跟大家来分享. 1.angular.extend ( )方法可以把一个或多个对象中的方法和属性扩展到一个目的对象中. <script typ ...
- [CENTOS7] [IPTABLES] 卸载Firewall Id安装 IPTABLES及防火墙设置
卸载Firewall ID,重装IPTABLES:先停止服务 systemctl stop firewalldsystemctl mask firewalld yum install iptabl ...