最近一周
benchmark工作:
机器配置:
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即可~
结论:
-
对于
ext3的
write ,
在
1g
地方出现下降,说明
write buffer
为
1g
-
对于
ext3
的
read ,
在
1m
和
1g
的地方都出现下降,如何解释呢????
TODO
-
ext
在读的时候有
3000MB/s
,这是如何产生的???
-
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在读写时,有些波动。
分享到:
相关推荐
2. **splice函数用法**:博客可能介绍了如何在C代码中正确调用splice函数,包括参数设置、错误处理等关键点。 3. **性能指标**:博主可能会讨论如何测量和分析吞吐量、延迟、CPU利用率等性能指标,以评估splice的...
JavaScript splice 数组操作(删除,插入)JavaScript splice 数组操作(删除,插入)JavaScript splice 数组操作(删除,插入)JavaScript splice 数组操作(删除,插入)JavaScript 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 ...
在提供的示例中,`array.splice(0,2)`会删除数组的第一个和第二个元素,并返回一个包含被删除元素的新数组。 2. 插入元素: 要在数组中插入元素,可以将第二个参数设置为0,这样不会删除任何现有元素。例如,`...
例如,`array.splice(2, 0, 'a', 'b');`会在数组的第3个元素位置(索引为2)插入字符串'a'和'b',不删除任何元素。如果`deleteCount`大于0,那么从`start`开始的元素会被移除。如果`deleteCount`省略,则会移除从`...
`splice-feats`是Kaldi语音识别工具包中的一个命令行工具,主要用于处理声学特征,尤其是用于在训练声学模型之前对特征进行拼接(splice)操作。这个操作是深度学习模型,如循环神经网络(RNN)或卷积神经网络(CNN...
2. splice方法的参数:splice方法接受三个或更多的参数。第一个参数指定开始操作的索引位置,第二个参数表示要删除的元素数量,之后的参数可以是零个或多个,表示要添加进数组的新元素。 3. 删除数组元素:splice...
定义和用法splice() 方法用于插入、删除或替换数组的元素。语法arrayObject.splice(index,howmany,element1,…..,elementX)参数 描述index 必需。规定从何处添加/删除元素。该参数是开始插入和(或)删除的数组元素...
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(...
2. `fs.writeFile()` 和 `fs.writeFileSync()`:写入文件,可以覆盖原有内容或追加。 3. `fs.appendFile()` 和 `fs.appendFileSync()`:向文件末尾追加内容。 4. `fs.unlink()` 和 `fs.unlinkSync()`:删除文件。 5....
删除或替换部分字符串,例如Array#splice 它可以正确处理带有表情符号的切片字符串。 安装 $ npm install splice-string 用法 import spliceString from 'splice-string' ; spliceString ( 'unicorn' , 3 , 4 , '...
- 首次调用`splice()`,我们在索引2(即"banana")的位置插入了"water",`howMany`设为0,表示不删除任何元素。因此,数组变为`["orange", "mango", "water", "banana", "sugar", "tea"]`,返回值`removed`是空数组...
2. **插入元素**: 如果`howMany`参数设置为0,`splice()`方法可以用于在指定位置插入元素,而不会删除任何元素。此时,第三个参数及其后的所有参数都将被视为要插入的元素。例如: ```javascript var insert =...
- 替换元素:`color.splice(1, 2, 'brown', 'pink')`将替换掉`color`数组中索引1和2的元素为'brown'和'pink'。 与`slice()`不同,`splice()`会直接修改原数组,并返回被删除的元素。在示例中,`x.splice(1, 2)`后,...
2. **howMany**:要删除的元素个数。如果为0,表示不删除任何元素,但仍然可以插入新元素。 3. **item1, ..., itemX**:可选参数,表示要在指定位置插入的新元素。 `splice()` 的主要功能包括: - 删除元素:当`...
array.splice(index, howMany[, item1[, item2[, ...]]]) ``` - `index`:必需,要操作的元素的开始位置。 - `howMany`:必需,要删除的元素数量。如果为0,则不会删除任何元素,但仍然可以进行插入或替换操作。 - ...
文章中还提到了关于splice参数的一些细节,例如,当数组的第二个参数为2时,表示从`start`索引位置开始删除元素,删除元素的数量为2。这对于在数组中删除多个元素或者在特定位置进行元素的替换或插入是非常有用的。 ...