FastDFS性能测试

FastDFS简介

fastdfs是一个开源的,高性能的的分布式文件系统,他主要的功能包括:文件存储,同步和访问,设计基于高可用和负载均衡,fastfd非常适用于基于文件服务的站点,例如图片分享和视频分享网站。

fastfds有两个角色:跟踪服务(tracker)和存储服务(storage),跟踪服务控制,调度文件以负载均衡的方式访问;存储服务包括:文件存储,文件同步,提供文件访问接口,同时以key value的方式管理文件的元数据。

跟踪和存储服务可以由1台或者多台服务器组成,同时可以动态的添加,删除跟踪和存储服务而不会对在线的服务产生影响,在集群中,tracker服务是对等的。 存储系统由一个或多个卷(group)组成,卷与卷之间的文件是相互独立的,所有卷的文件容量累加就是整个存储系统中的文件容量。一个卷可以由一台或多台存储服务器组成,一个卷下的存储服务器中的文件都是相同的,卷中的多台存储服务器起到了冗余备份和负载均衡的作用。在卷中增加服务器时,同步已有的文件由系统自动完成,同步完成后,系统自动将新增服务器切换到线上提供服务。当存储空间不足或即将耗尽时,可以动态添加卷。只需要增加一台或多台服务器,并将它们配置为一个新的卷,这样就扩大了存储系统的容量。


测试工具

本次测试使用FastDFS安装包中自带的工具进行测试,该工具是开源代码工具,可以根据自身情况进行修改。

测试步骤

测试前准备

自带的工具是没有编译过的源码,需要进行编译生成测试脚本

首先解压FastDFS安装包

1
$tar zxvf FastDFS_v5.03.tar.gz

进入测试脚本目录

1
$cd FastDFS/test


编译

1
$make && make install

如果编译报错,需要编辑一下Makefile文件,修改FastDFS的安装路径。


编译成功后应该是下面这样


修改客户端配置文件

1
$vim /etc/fdfs/client.conf

修改需要测试的tracker_server的ip和端口


执行测试

首先,需要生成测试用的文件,执行

1
$./gen_files


会分别生成5k、50k、200k、1M、10M、100M的文件各一个

默认情况下,测试upload会循环10次,那样客户端生成的tcp连接为10个。

我们可以通过修改源文件修改这个值。

修改test_upload.c

1
$vim test_upload.c


将常量PROCESS_COUNT 改为需要模拟的客户端tcp连接数,比如1000。

修改完后,需要重新编译一次

1
$make && make install

测试上传

修改测试上传的脚本

1
$vim test_upload.sh


将默认的10修改为需要模拟的数,比如100,这个数不能超过之前配置的常量1000。

执行脚本test_upload.sh进行测试

1
$sh ./test_upload.sh


执行完成后,会提示每个进程的用时,在当前目录下会自动生成一个upload目录用于存储测试数据。

查看结果

进入该目录。

1
$cd upload

执行

1
$../combine_result 10

后面的参数10需要跟脚本test_upload.sh中配置的一致。


测试结果中详细的记录了

第一部分,总共上传的文件数、成功上传的文件数、上传文件的成功率、上传文件所花的时间、平均用时以及每秒查询数(请求数)。

中间部分记录的是每种类型文件上传的个数。

最后一部分是磁盘IO速度以及服务端ip,总共上传数、总共成功数、用时、平均用时、请求速率、成功率。

下载和删除的测试方法一样,分别执行脚本

1
2
$sh ./test_download.sh
$sh ./test_delete.sh

即可,执行前记得修改相应的配置,需要注意的是,测试顺序一定是upload、download、delete,如果一开始就测试download,会提示找不到文件。

以上,为FastDFS的大致测试流程。

阅读更多 登录后自动展开
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页