`
idning
  • 浏览: 135427 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

splice & mfs benchmark 2

阅读更多

最近一周 benchmark工作:   -Lin Yang 4/16/10 4:35 PM  

 


 

 

 

机器配置:

8 8g 内存

 

硬件环境:

$ cat /proc/cpuinfo

model name : Intel(R) Xeon(R) CPU E5420 @ 2.50GHz

cpu MHz : 2499.845

cache size : 6144 KB

 

软件环境:

$ uname -a

Linux head 2.6.30 #2 SMP Tue Aug 11 04:49:44 CST 2009 x86_64 x86_64 x86_64 GNU/Linux

 

网络环境:

千兆网

 

    其中 mfs配置了一个 master,一个 metalogger,两个 chunkserver (其中一个和 master重叠 ) mfs master在编译时加了 gprof的支持,可能会有一定的性能影响。

     

ext3 vs mooseFS

exe3 mooseFs使用 iozone进行测试

 

使用如下命令:

iozone -i 0 -i 1 -g 12G -Rab out.wks

下图为 write  性能比较:

 

 


 

 

下图为 read  性能比较:

 

 


 

 

 


 

对压缩包中的数据,直接使用  gnuplot gnuplot.dem即可~

 

结论:


 

  1. 对于 ext3 write ,  1g 地方出现下降,说明 write buffer  1g

  2. 对于 ext3 read , 1m 1g 的地方都出现下降,如何解释呢???? TODO

  3. ext  在读的时候有 3000MB/s ,这是如何产生的???

  4. mfs ext3 对比,因为我们使用的时候通常都是 filesize<=1G ,考虑缓存因素, mfs 的性能大约是 ext3 1/5


     

                filesize<=1G     filesize>=2G

ext3 w          630                   70

mfs  w          150                   60

 

ext3 r          3061                   68

mfs  r             69                   40

 

对元数据测试:

 

fileop -f 10 -bw -s100K

将产生  10^3 个文件,每个文件 100K

结果:

ext3

mkdir  rmdir   create   read  write  

31439  40682  30015   4353   2938


mfs
mkdir      rmdir  create    open    read   write
 6414      5068     840    4578     655    2869

结论

mfs - 小了一个数量级

对使用 splice进行文件读写, socket读写的性能测试:

测试环境同上,

 

分别

使用splice和read/write进行文件拷贝

使用splice和read/write进行socket发送数据。

 

 

 

测试代码如附件~

 

 

 

    使用r/w和splice进行文件拷贝 - 1




    使用r/w和splice进行文件拷贝 - 2
    使用r/w和splice进行socket文件传送 - 1



结论:

  • 使用splice后,性能确实比r/w要高,但是高的比例较小,约5%-15%
  • 对于socket发送,无论splice还是r/w,使用较大的record size性能会比较好
  • splice在读写时,有些波动。

0
0
分享到:
评论

相关推荐

    String-Splice:拼接,但用于字符串而不是数组

    say splice ( ' This is Rakudo ' , * -2 , 2 ); # This is Raku say " Tonight I'm gonna party like it's 1999 " . & splice ( 18 , 5 , ' program ' ) . & splice ( * -4 , 2 , 20 ); # Tonight I'm gonna ...

    JavaScript splice()方法详解

    定义和用法splice() 方法用于插入、删除或替换数组的元素。语法arrayObject.splice(index,howmany,element1,…..,elementX)参数 描述index 必需。规定从何处添加/删除元素。该参数是开始插入和(或)删除的数组元素...

    splice-feats解析1

    splice-feats解析1

    splice性能测试

    NULL 博文链接:https://idning.iteye.com/blog/638944

    浅谈js数组和splice的用法

    下面小编就为大家带来一篇浅谈js数组和splice的用法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    splice-string:删除或替换部分字符串,例如Array#splice

    删除或替换部分字符串,例如Array#splice 它可以正确处理带有表情符号的切片字符串。 安装 $ npm install splice-string 用法 import spliceString from 'splice-string' ; spliceString ( 'unicorn' , 3 , 4 , '...

    JavaScript中的splice方法用法详解

    2.插入-向数组指定位置插入任意项元素。三个参数,第一个参数(插入位置),第二个参数(0),第三个参数(插入的项) 3.替换-向数组指定位置插入任意项元素,同时删除任意数量的项,三个参数。第一个参数(起始位置...

    JavaScript中的splice()方法使用详解

    JavaScript数组的splice()方法改变数组的内容,增加了新的元素,同时消除旧元素。 语法 array.splice(index, howMany, [element1][, ..., elementN]); 下面是参数的详细信息: index : 在该索引开始改变的数组。 ...

    js删除数组中的元素delete和splice的区别详解

    例如有一个数组是 :var textArr = [‘a’,’b’,’c’,’d’]; 这时我想删除这个数组中的b元素: 方法一:delete 删除数组 delete textArr[1] 结果为: [“a”,undefined,”c”,”d”]  ...textArr.splice

    js_arr_splice.html

    js_arr_splice.html

    PHP中unset,array_splice删除数组中元素的区别

    Array ( [0] =&gt; a [2] =&gt; c [3] =&gt; d )   那么怎么才能做到缺少的元素会被填补并且数组会被重新索引呢?答案是array_splice(): &lt;?php $arr = array('a','b','c','d'); array_splice($arr,1,1); print_r($arr);...

    JS数组splice操作实例分析

    本文实例讲述了JS数组splice操作。分享给大家供大家参考,具体如下: node2:/var/www/html/js#cat h23.js [removed] var narr=['a','b','c','d','e']; console.log(narr); for (var j=0;j&lt;narr&gt;'+narr[j]); }; ...

    原生JS中slice()方法和splice()区别

    规定从何处开始选取,如果是负数,则是从数组元素尾部选取,也就是说-1指最后一个元素,-2指倒数第二个元素;end是可选元素。规定从何处结束选取。该参数没有,表示从开始位置截取到数组末尾,如果是负数,表示从...

    php中array_slice和array_splice函数解析

    本文介绍了php中array_slice和array_splice函数解析,php拆分数组的二个函数(array_slice()、array_splice()),各举一个例子,供大家学习参考。

    splice基于Electron的前端文件处理工具

    splice 基于 Electron 的前端文件处理工具

    浅谈js数组splice删除某个元素爬坑

    // splice:返回从原始数组中删除的项(如果没有任何删除,则返回空数组) // 当指定2个参数时,表示删除 // 当指定3个参数,且第2个参数为0时表示插入 // 当指定3个参数,且第2个参数为1时表示替换 本次就拿删除...

    string-splice:拼接字符串的小辅助函数

    #用途: splice(str, index, ...splice(exampleString, 1, 2, 'ZZZ'); //'aZZZdefg' #Attributions:取自这个堆栈溢出问题的答案: ://stackoverflow.com/questions/20817618/is-there-a-splice-method-for-strings

    Array.slice()与Array.splice()的返回值类型

    最近做个练习,用到Array.slice()和Array.splice(),以前没有注意其返回值类型 Array.slice()返回Array — 一个由原始数组中某一范围的元素构成的数组。 Array.splice()返回Array — 包含从原始数组中删除的元素的...

Global site tag (gtag.js) - Google Analytics