您好,欢迎访问三七文档
当前位置:首页 > 办公文档 > 其它办公文档 > ycsb性能测试工具简介、安装与使用
YCSB测试工具----针对NoSQL的性能测试工具报告人:第八组---金天阳目录一、简介二、安装与使用三、总结YCSB:YCSB(Yahoo!CloudServingBenchmark)是雅虎开源的一款通用的性能测试工具。主要用在云端或服务器端的性能评测分析,可以对各类NoSQL(泛指非关系型的数据库)产品进行相关的性能测试和评估,包括:Hbase、Mongodb等。一、基本介绍提出YCSB目的:NoSQL数据库不支持ACID型事务,为各种不同的OLTP(OnLineTransactionProcessing)应用程序提供服务,与传统的服务负载有很大的区别。因此,不能用传统标准(比如TPC-C)来衡量NoSQL数据库性能。相关论文:BenchmarkingCloudServingSystemswithYCSB.----ACMSymposiumonCloudComputing(SoCC),Indianapolis,IN,USA,2010.YCSBCLIENTWorkloadExecutorClientThreadsStatisticsDBInterfaceLayerDB数据库驱动,比如JDBCworkloadaworkloadbworkloadcdb.properties一、基本介绍YCSB客户端架构到下载,直接解压后就可以使用,无需编译和安装。解压后的目录:binjdbc-bindingjdbc-binding-0.1.4_onesql.jarjdbc-binding-0.7.0.jarjdbc-binding-0.7.0_replace.jarlibLICENSE.txtNOTICE.txtworkloads二、安装与使用JAVA环境配置:exportJAVA_HOME=/usr/java/jdk1.8.0_40exportPATH=$JAVA_HOME/bin:$JAVA_HOME/jre:$PATH相应的DB驱动:比如:jdbc-binding/lib/目录下的mysql-connector-java-5.1.14.jar注意:java版本要大于等于java编译器版本java–version//java版本javac–version//java编译器版本(1)环境配置:YCSB是一个JAVA应用程序。因此依赖于JRE。二、安装与使用db.properties:用于连接mysql数据库,以及设定YCSB客户端的线程。(2)文件配置二、安装与使用属性含义target表示1s中各个线程总共的操作次数。如果系统性能不满足,比如最高性能只有100,你设置了1000,那么YCSB会尽量往这个数目去靠近。默认是不做限制。threadcount设置ycsbclient的并发测试线程数,默认是1,单线程。db.driver数据库驱动。比如:com.mysql.jdbc.Driver。db.url数据库URL地址。比如:jdbc:mysql://10.11.1.195:57004/obtestdb.user数据库用户名。db.password数据库用户密码。Workloads目录下文件(默认):(2)文件配置二、安装与使用文件名模式各种操作比例workloadaUpdateheavyworkloadRead/update50/50workloadbReadmostlyworkloadRead/update95/5workloadcReadonlyRead/update100/0workloaddReadlatestworkloadRead/update/insert95/0/5workloadeShortrangesScan/insert95/5workloadfRead-modify-writeRead/read-modify-write50/50Workloads文件具体配置项:可以新建符合自己测试要求的配置文件(2)文件配置二、安装与使用属性含义recordcount测试数据集的记录总数operationcount测试过程中执行的操作总数workloadworkload实现类(com.yahoo.ycsb.workloads.CoreWorkload)readallfields查询时是否读取记录的所有字段readproportion读操作的百分比(比如,0.5)updateproportion更新操作的百分比scanproportion扫描操作的百分比insertproportion插入操作的百分比requestdistribution请求分布模式,包括:Uniform(等概率随机选择记录)、Zipfian(随机选择记录,存在热纪录)和Latest(近期写入的记录是热记录)(3)测试数据加载阶段:测试数据的插入二、安装与使用连接mysql客户端,创建表usertable(默认)。表结构如下:DROPTABLEIFEXISTSusertable;CREATETABLEusertable(YCSB_KEYVARCHAR(255)PRIMARYKEY,FIELD0VARCHAR(100),FIELD1VARCHAR(100),FIELD2VARCHAR(100),FIELD3VARCHAR(100),FIELD4VARCHAR(100),FIELD5VARCHAR(100),FIELD6VARCHAR(100),FIELD7VARCHAR(100),FIELD8VARCHAR(100),FIELD9VARCHAR(100));准备阶段:注意:测试表的表名(table)、非主键字段的个数(fieldcount)和长度(fieldlength)可以在workload文件中配置。更多的参数设置参考(3)测试数据加载阶段:测试数据的插入二、安装与使用执行命令阶段:(脚本的执行依赖于python)pythonbin/ycsbloadjdbc-Pworkloads/workloada-Pdb.properties-s注意:1、两个“-P”同时使用,在配置文件中相同的配置项会被后者覆盖。如果没有重复,则同时使用两个文件中的配置。2、使用“-p”则可以将配置文件中的属性重置,比如,-p“operationcount=10000”。3、使用“-s”可以设置在屏幕上输出的格式。执行命令阶段:(脚本的执行依赖于python)pythonbin/ycsbrunjdbc-Pworkloads/workloadw-Pdb.properties-s–load-pstatus.interval=1(4)测试操作执行阶段:性能测试阶段二、安装与使用注意:“status.interval=1”表示每隔1s显示一次测试结果。默认为10s。(5)测试结果分析二、安装与使用运行结果(实时监控):执行load命令,操作(insert)在各个时间段的分布情况(一行)。10sec:95181operations;9518.1currentops/sec;estcompletionin1minutes[INSERT:Count=95209,Max=85247,Min=1437,Avg=4895.37,90=7083,99=24047,99.9=41055,99.99=56831](5)测试结果分析二、安装与使用属性含义[OVERALL],RunTime(ms)数据加载所用时间(毫秒)[OVERALL],Throughput(ops/sec)加载操作的吞吐量(ops/sec)[INSERT],Operations执行insert操作的总数[INSERT],AverageLatency(us)每次insert操作的平均延时(微秒)[INSERT],MinLatency(us)所有insert操作的最小延时(微秒)[INSERT],MaxLatency(us)所有insert操作的最大延时(微秒)[INSERT],95thPercentileLatency(us)95%的insert操作延时在?毫秒以内[INSERT],99thPercentileLatency(us)99%的insert操作延时在?毫秒以内[INSERT],Return=OK操作成功返回数运行结果(整体测试情况):属性含义(insert操作,执行load)1、配置方便,具有较强的可扩展性2、安装和使用简单,容易入门3、源码开源,激励开发YCSB,使其支持更多的数据库性能测试4、可以任意设置读写比例、线程数量,打印结果比较详细5、是HBase等NoSQL官方的测试标准6、实时显示测试进度和测试结果1、不能自动生成测试结果文档,需要人工统计2、可支持的数据库类型有限(目前至少支持13种)三、总结优点:缺点:
本文标题:ycsb性能测试工具简介、安装与使用
链接地址:https://www.777doc.com/doc-3775358 .html