在网上查In-Memory NoSQL性能测试的资料时,偶然间发现了这个性能测试工具,全称为“Yahoo! Cloud Serving Benchmark”。它内置了对常见NoSQL数据库和数据网格产品的支持,如Cassandra、MongoDB、HBase、Infinispan等等很多的主流产品,而且不仅安装使用简单,还能自由扩展测试数据类型和支持的数据库产品。
1编译安装
首先说一下YCSB的安装。直接下载tar.gz分发包的话其实也不需要安装什么,解压后通过bin目录下的脚本执行即可(依赖JRE)。但由于tar.gz分发包比较大,一百多M,而且我这里总是连接超时,于是直接下载master库的源代码,自己编译。编译方法也很简单,因为工程是Maven管理的,所以只要有Maven环境就可以直接在YCSB根目录下运行package任务,之后就能在distribution工程的target中看到ycsb-0.1.4.tar.gz。最后将编译出的包拷贝到自己的环境如虚拟机里,就能使用了。本机调试也是可以的,只需在IDE中配置好Client.main()方法的启动参数就行了。
2使用
现在来说一下如何使用YCSB,以Redis的性能测试为例,分为1.初始化测试数据 (loading阶段)和2.执行测试操作(transaction阶段)。首先进行初始化,先保证Redis服务已经启动,然后在YCSB根目录下执行:
> bin/ycsb load redis -s -P workloads/workloada -p "redis.host=127.0.0.1" -p "redis.port=6379"
之后我们在Redis中就能看到1000条数据,因为worklo