跳到主要内容

并发性能测试

本章节介绍了Curvine并发性能测试的方法和结果。

测试环境

测试机器配置如下:

  • CPU:80核
  • 内存:256GB
  • 磁盘:1SSD

测试工具

使用curvine自带的性能测试工具进行测试,测试工具位于bin目录下:

  • curvine-bench:使用rust客户端测试
  • java-bench:使用java客户端测试

测试用例:使用40个线程并发读写1000个文件,每个文件大小为100MB;测试磁盘读,需要每次清理page cache。

rust客户端测试,修改bin/curvine-bench.sh:

${CURVINE_HOME}/lib/curvine-bench \
--action ${ACTION} \
--dir $DIR \
--conf $CURVINE_HOME/conf/curvine-cluster.toml \
--checksum true \
--client-threads 14 \
--buf-size 128KB \
--file-size 100MB \
--file-num 1000 \

java 客户端测试,修改bin/java-bench.sh:

java -Xms10g -Xmx10g \
-Dcurvine.conf.dir=${CURVINE_HOME}/conf \
io.curvine.bench.CurvineBenchV2 \
-action $ACTION \
-dataDir $DIR \
-threads 40 \
-bufferSize 128kb \
-fileSize 100mb \
-fileNum 1000 \
-checksum true \
-clearDir fasle

客户端测试结果

运行脚本:

# rust 客户端读写数据
bin/curvine-bench.sh fs.write
bin/curvine-bench.sh fs.read

# java 客户端读写数据
bin/java-bench.sh fs.write
bin/java-bench.sh fs.read

rust客户端测试结果:

操作类型速度(Gib/s)
写内存11.7
读内存17.3
写磁盘4.3
读磁盘3.5

java客户端测试结果:

操作类型速度(Gib/s)
写内存10.1
读内存10.6
写磁盘4.0
读磁盘3.5

FUSE测试结果

使用fuse3进行测试。

运行脚本:

# rust file api读写数据
bin/curvine-bench.sh fuse.write
bin/curvine-bench.sh fuse.read

# java file api读写数据
bin/java-bench.sh fuse.write
bin/java-bench.sh fuse.read

rust测试结果:

类型速度(Gib/s)
内存写10.6
内存读11.1
磁盘写3.5
磁盘读2.6

java测试结果:

类型速度(Gib/s)
内存写9.0
内存读9.3
磁盘写3.2
磁盘读2.4