`
idning
  • 浏览: 138504 次
  • 性别: 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
分享到:
评论

相关推荐

    splice性能测试

    2. **splice函数用法**:博客可能介绍了如何在C代码中正确调用splice函数,包括参数设置、错误处理等关键点。 3. **性能指标**:博主可能会讨论如何测量和分析吞吐量、延迟、CPU利用率等性能指标,以评估splice的...

    JavaScript splice 数组操作(删除,插入)

    JavaScript splice 数组操作(删除,插入)JavaScript splice 数组操作(删除,插入)JavaScript splice 数组操作(删除,插入)JavaScript splice 数组操作(删除,插入)JavaScript splice 数组操作(删除,插入)...

    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方法用法详解

    在提供的示例中,`array.splice(0,2)`会删除数组的第一个和第二个元素,并返回一个包含被删除元素的新数组。 2. 插入元素: 要在数组中插入元素,可以将第二个参数设置为0,这样不会删除任何现有元素。例如,`...

    浅谈js数组和splice的用法

    例如,`array.splice(2, 0, 'a', 'b');`会在数组的第3个元素位置(索引为2)插入字符串'a'和'b',不删除任何元素。如果`deleteCount`大于0,那么从`start`开始的元素会被移除。如果`deleteCount`省略,则会移除从`...

    splice-feats解析1

    `splice-feats`是Kaldi语音识别工具包中的一个命令行工具,主要用于处理声学特征,尤其是用于在训练声学模型之前对特征进行拼接(splice)操作。这个操作是深度学习模型,如循环神经网络(RNN)或卷积神经网络(CNN...

    javascript splice数组简单操作

    2. splice方法的参数:splice方法接受三个或更多的参数。第一个参数指定开始操作的索引位置,第二个参数表示要删除的元素数量,之后的参数可以是零个或多个,表示要添加进数组的新元素。 3. 删除数组元素:splice...

    JavaScript splice()方法详解

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

    php中array_slice和array_splice函数解析

    array_splice($input, 2); // $input变为 array("red", "green") array_splice($input, 1, -1); // $input变为 array("red", "yellow") array_splice($input, 1, count($input), "orange"); // $input变为 array(...

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

    2. `fs.writeFile()` 和 `fs.writeFileSync()`:写入文件,可以覆盖原有内容或追加。 3. `fs.appendFile()` 和 `fs.appendFileSync()`:向文件末尾追加内容。 4. `fs.unlink()` 和 `fs.unlinkSync()`:删除文件。 5....

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

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

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

    - 首次调用`splice()`,我们在索引2(即"banana")的位置插入了"water",`howMany`设为0,表示不删除任何元素。因此,数组变为`["orange", "mango", "water", "banana", "sugar", "tea"]`,返回值`removed`是空数组...

    体验js中splice()的强大(插入、删除或替换数组的元素)

    2. **插入元素**: 如果`howMany`参数设置为0,`splice()`方法可以用于在指定位置插入元素,而不会删除任何元素。此时,第三个参数及其后的所有参数都将被视为要插入的元素。例如: ```javascript var insert =...

    JavaScript中数组slice和splice的对比小结

    - 替换元素:`color.splice(1, 2, 'brown', 'pink')`将替换掉`color`数组中索引1和2的元素为'brown'和'pink'。 与`slice()`不同,`splice()`会直接修改原数组,并返回被删除的元素。在示例中,`x.splice(1, 2)`后,...

    js_array-method-splice

    2. **howMany**:要删除的元素个数。如果为0,表示不删除任何元素,但仍然可以插入新元素。 3. **item1, ..., itemX**:可选参数,表示要在指定位置插入的新元素。 `splice()` 的主要功能包括: - 删除元素:当`...

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

    array.splice(index, howMany[, item1[, item2[, ...]]]) ``` - `index`:必需,要操作的元素的开始位置。 - `howMany`:必需,要删除的元素数量。如果为0,则不会删除任何元素,但仍然可以进行插入或替换操作。 - ...

    JS数组splice操作实例分析

    文章中还提到了关于splice参数的一些细节,例如,当数组的第二个参数为2时,表示从`start`索引位置开始删除元素,删除元素的数量为2。这对于在数组中删除多个元素或者在特定位置进行元素的替换或插入是非常有用的。 ...

Global site tag (gtag.js) - Google Analytics