SlideShare a Scribd company logo
1 of 12
Download to read offline
www.vmcd.org
基于 mongodb 的压力评测工具 YCSB 的一些概括
YCSB 是一款基于 NOSQL Benchmark 的工具,提供了多种方式模拟测试 nosql 的负载,基于现在对 nosql 的一些压力测试还没有得到重视.
YCSB 的全面的测试功能可以给即将上线的 nosql 提供一种另类保障。
There are many new serving databases available, including:
 PNUTS
 BigTable
 HBase
 Hypertable
 Azure
 Cassandra
 CouchDB
 Voldemort
 MongoDb
 OrientDB
 Infinispan
 Dynomite
 Redis
 GemFire
 GigaSpaces XAP
 DynamoDB
 Couchhase
 Aerospike
www.vmcd.org
下面的数据仅供参考,测试于虚拟机服务器。
给一个简单的 load data 的例子:
[root@mysqlstd ycsb-0.1.4]# ./bin/ycsb load mongodb -P workloads/workloada -p mongodb.url=mongodb://127.0.0.1:27017 -p mongodb.database=newdb -p
mongodb.writeConcern=normal -s >data
Loading workload...
Starting test.
0 sec: 0 operations;
10 sec: 18448 operations; 1837.08 current ops/sec; [INSERT AverageLatency(us)=423.35]
20 sec: 42134 operations; 2366.71 current ops/sec; [INSERT AverageLatency(us)=373.44]
30 sec: 61185 operations; 1904.34 current ops/sec; [INSERT AverageLatency(us)=661.58]
40 sec: 85308 operations; 2411.09 current ops/sec; [INSERT AverageLatency(us)=324.83]
50 sec: 97785 operations; 1247.2 current ops/sec; [INSERT AverageLatency(us)=985.33]
50 sec: 100000 operations; 2662.26 current ops/sec; [INSERT AverageLatency(us)=371.24]
www.vmcd.org
load data 之后 可以开始模拟压测了.YCSB 主要分为以下几种模式:
Workload A: Update heavy workload
This workload has a mix of 50/50 reads and writes. An application example is a session store recording recent actions.
Workload B: Read mostly workload
This workload has a 95/5 reads/write mix. Application example: photo tagging; add a tag is an update, but most operations are to read tags.
Workload C: Read only
This workload is 100% read. Application example: user profile cache, where profiles are constructed elsewhere (e.g., Hadoop).
Workload D: Read latest workload
In this workload, new records are inserted, and the most recently inserted records are the most popular. Application example: user status
updates; people want to read the latest.
Workload E: Short ranges
www.vmcd.org
In this workload, short ranges of records are queried, instead of individual records. Application example: threaded conversations, where each
scan is for the posts in a given thread (assumed to be clustered by thread id).
Workload F: Read-modify-write
In this workload, the client will read a record, modify it, and write back the changes. Application example: user database, where user records
are read and modified by the user or to record user activity.
其中 E 模式的 short range 存在问题,当然我们也可以自定义模式:
# Yahoo! Cloud System Benchmark
# Workload A: Update heavy workload
# Application example: Session store recording recent actions
#
# Read/update ratio: 50/50
# Default data size: 1 KB records (10 fields, 100 bytes each, plus key)
# Request distribution: zipfian
recordcount=100000
operationcount=100000
workload=com.yahoo.ycsb.workloads.CoreWorkload
readallfields=true
www.vmcd.org
readproportion=1
updateproportion=0
scanproportion=0
insertproportion=0
修改 read update insert 的百分比来达到模拟真实环境的目的, 下面给个压测例子
比如压测纯读操作:
[root@mysqlstd ycsb-0.1.4]# ./bin/ycsb run mongodb -P workloads/workloadc -P large.dat -p mongodb.url=mongodb://127.0.0.1:27017 -p
mongodb.database=newdb -p mongodb.writeConcern=normal -s >data
Loading workload...
Starting test.
0 sec: 0 operations;
10 sec: 49375 operations; 4922.24 current ops/sec; [READ AverageLatency(us)=192.56]
18 sec: 100000 operations; 6141.57 current ops/sec; [READ AverageLatency(us)=159.72]
95%读+%5 写:
[root@mysqlstd ycsb-0.1.4]# ./bin/ycsb run mongodb -P workloads/workloadd -P large.dat -p mongodb.url=mongodb://127.0.0.1:27017 -p
mongodb.database=newdb -p mongodb.writeConcern=normal -s >data
Loading workload...
Starting test.
www.vmcd.org
0 sec: 0 operations;
10 sec: 43497 operations; 4333.23 current ops/sec; [INSERT AverageLatency(us)=633.66] [READ AverageLatency(us)=196.33]
20 sec: 92795 operations; 4925.37 current ops/sec; [INSERT AverageLatency(us)=792.15] [READ AverageLatency(us)=167.74]
21 sec: 100000 operations; 5637.72 current ops/sec; [INSERT AverageLatency(us)=379.57] [READ AverageLatency(us)=163.45]
另外 thumbtack 对 YCSB 进行了修改,增强了一些功能 开源地址:
https://github.com/thumbtack-technology/ycsb
主要增加支持了 Aerospike and Couchbase 目前 Aerospike 已经开源 针对 SSD 进行了专门优化 :
http://www.aerospike.com/blog/entrepreneurs-break-all-the-rules-aerospike-goes-open-source/
同时 MongoDB 的驱动程序从 2.8.0 版(在 Mongo 2.2 发布之前的版本)升级到了 2.10.1 版,并实现了对 readPreference 配置的设置
mongodb.readPreference = primary|primaryPreferred|secondary|secondaryPreferred
www.vmcd.org
下面结合 thumbtack 修改的版本做个测试 可以得到具体数据:
[root@mysqlstd ycsb]# fab ycsb_load:db=mongodb
[10.0.32.38] Executing task 'ycsb_load'
2014-07-15 01:09:00-07:00
[10.0.32.38] run: echo "/root/ycsb/bin/ycsb load mongodb -s -p mongodb.url=mongodb://127.0.0.1:27017 -p
workload=com.yahoo.ycsb.workloads.CoreWorkload -p updateretrycount=1000 -p mongodb.writeConcern=normal -p mongodb.database=ycsb -p
www.vmcd.org
recordcount=5000000 -p exportmeasurementsinterval=30000 -p fieldcount=10 -p timeseries.granularity=100 -p threadcount=32 -p insertretrycount=10 -p
readretrycount=1000 -p ignoreinserterrors=true -p reconnectionthroughput=10 -p operationcount=2400000000 -p fieldnameprefix=f -p maxexecutiontime=2400
-p mongodb.readPreference=primaryPreferred -p measurementtype=timeseries -p reconnectiontime=1000 -p fieldlength=10 -p insertstart=0 -p
insertcount=5000000 > /root/ycsb/2014-07-15_01-09_mongodb_load.out 2> /root/ycsb/2014-07-15_01-09_mongodb_load.err" | at 01:09 today
[10.0.32.38] out: job 13 at 2014-07-15 01:09
Done.
Disconnecting from 10.0.32.38... done.
[mongo@mysqlstd ~]$ /data/mongodb/mongodb/bin/mongo
MongoDB shell version: 2.6.1
connecting to: test
> show dbs
admin 0.031GB
local 0.031GB
newdb 0.500GB
newdb1 0.500GB
newdb2 0.500GB
ycsb 1.500GB
> use ycsb
switched to db ycsb
> db.usertable.c
db.usertable.clean( db.usertable.convertToCapped( db.usertable.copyTo( db.usertable.createIndex(
db.usertable.constructor db.usertable.convertToSingleObject( db.usertable.count(
> db.usertable.count()
2675710
www.vmcd.org
模拟压力环境:workload mode=A
[root@mysqlstd ycsb]# fab ycsb_run:db=mongodb,workload=A
[10.0.32.38] Executing task 'ycsb_run'
2014-07-15 02:13:00-07:00
[10.0.32.38] run: echo "/root/ycsb/bin/ycsb run mongodb -s -P /root/ycsb/workloads/workloada -p mongodb.url=mongodb://127.0.0.1:27017 -p
workload=com.yahoo.ycsb.workloads.CoreWorkload -p updateretrycount=1000 -p mongodb.writeConcern=normal -p mongodb.database=ycsb -p
recordcount=5000000 -p exportmeasurementsinterval=30000 -p fieldcount=10 -p timeseries.granularity=100 -p threadcount=32 -p insertretrycount=10 -p
readretrycount=1000 -p ignoreinserterrors=true -p reconnectionthroughput=10 -p operationcount=1800000 -p fieldnameprefix=f -p maxexecutiontime=180 -p
mongodb.readPreference=primaryPreferred -p measurementtype=timeseries -p reconnectiontime=1000 -p fieldlength=10 >
/root/ycsb/2014-07-15_02-13_mongodb_workloada.out 2> /root/ycsb/2014-07-15_02-13_mongodb_workloada.err" | at 02:13 today
[10.0.32.38] out: job 23 at 2014-07-15 02:13
[10.0.32.38] out:
Done.
Disconnecting from 10.0.32.38... done.
使用 merge.py 得到具体数值
[root@mysqlstd ycsb]# ./bin/merge.py
OVERALL OVERALL READ READ READ READ READ READ READ READ READ UPDATE UPDATE UPDATE UPDATE UPDATE
UPDATE UPDATE UPDATE UPDATE CLEANUP CLEANUP CLEANUCLEANUP CLEANUP CLEANUP CLEANUP CLEANUP CLEANUP
RunTime Throughput Operations Retries Return=0 Return=[^0].* AverageLatency MinLatency MaxLatency 95thPercentileLatency
www.vmcd.org
99thPercentileLatency Operations Retries Return=0 Return=[^0].* AverageLatency MinLatency MaxLatency 95thPercentileLatency
99thPercentileLatency Operations Retries Return=0 Return=[^0].* AverageLatency MinLatency MaxLatency 95thPercentileLatency
99thPercentileLatency
1 61156 28.58264111 1665 747000 918 747 927.7820691 0.132 6630.776 83 33000 50 33 2075.808675 0.504 9767.828
32 0 18.08734375 0.465 207.159
Total 61156 28.58264111 1665 747000 918 747 927.7820691 0.132 6630.776 83 33000 50 33 2075.808675 0.504
9767.828 32 0 0 0 18.08734375 0.465 207.159
[mongo@mysqlstd ~]$ /data/mongodb/mongodb/bin/mongostat
connected to: 127.0.0.1
insert query update delete getmore command flushes mapped vsize res faults locked db idx miss % qr|qw ar|aw netIn netOut conn
time
*0 5568 5369 *0 0 5381|0 0 3.06g 6.47g 282m 9 admin:0.9% 0 0|0 0|0 1m 894k
95 02:14:05
*0 4298 6267 *0 0 6279|0 0 3.06g 6.47g 282m 6 admin:0.6% 0 0|0 1|0 1m 962k
96 02:14:06
*0 4675 6119 *0 0 6066|0 0 3.06g 6.47g 282m 2 admin:0.0% 0 95|0 1|0 1m 948k
92 02:14:07
*0 4137 4866 *0 0 4948|0 0 3.06g 6.47g 282m 18 admin:2.1% 0 0|0 0|0 1m 790k
91 02:14:08
*0 4568 5904 *0 0 5922|0 0 3.06g 6.47g 282m 4 admin:0.1% 0 0|0 0|0 1m 927k
92 02:14:09
*0 4727 6034 *0 0 6046|0 0 3.06g 6.47g 282m 5 admin:0.0% 0 0|0 0|0 1m 949k
90 02:14:10
*0 4991 5673 *0 0 5690|0 0 3.06g 6.47g 282m 3 admin:0.9% 0 0|0 0|0 1m 914k
94 02:14:11
www.vmcd.org
*0 4740 5173 *0 0 5183|0 1 3.06g 6.47g 282m 7 admin:0.1% 0 0|0 0|0 1m 839k
94 02:14:12
*0 4332 5493 *0 0 5510|0 0 3.06g 6.47g 282m 8 admin:0.9% 0 0|0 0|0 1m 866k
94 02:14:13
*0 4980 5583 *0 0 5592|0 0 3.06g 6.47g 282m 8 admin:0.0% 0 0|0 0|0 1m 901k
97 02:14:14
insert query update delete getmore command flushes mapped vsize res faults locked db idx miss % qr|qw ar|aw netIn netOut conn
time
*0 5750 5030 *0 0 4997|0 0 3.06g 6.47g 282m 20 admin:1.8% 0 94|0 1|1 1m 853k
97 02:14:15
*0 4884 5509 *0 0 5578|0 0 3.06g 6.47g 282m 10 admin:0.1% 0 0|0 0|0 1m 894k
97 02:14:16
*0 5733 5773 *0 0 5784|0 0 3.06g 6.47g 282m 5 admin:0.0% 0 0|0 0|0 1m 952k
92 02:14:17
*0 5178 5202 *0 0 5219|0 0 3.06g 6.47g 282m 14 admin:0.0% 0 0|0 0|0 1m 861k
95 02:14:18
*0 4179 5680 *0 0 5688|0 0 3.06g 6.47g 282m 8 admin:0.0% 0 0|0 0|1 1m 884k
93 02:14:19
*0 4879 5695 *0 0 5707|0 0 3.06g 6.47g 282m 11 admin:0.1% 0 0|0 0|0 1m 911k
93 02:14:20
*0 5271 5402 *0 0 5413|0 0 3.06g 6.47g 282m 12 admin:0.0% 0 0|0 0|0 1m 887k
95 02:14:21
*0 4583 4852 *0 0 4867|0 1 3.06g 6.47g 282m 11 admin:0.0% 0 0|0 0|0 1m 795k
93 02:14:22
*0 6654 4956 *0 0 4967|0 0 3.06g 6.47g 282m 10 admin:1.5% 0 0|0 0|0 1m 881k
95 02:14:23
www.vmcd.org
REF:
http://www.aerospike.com/blog/entrepreneurs-break-all-the-rules-aerospike-goes-open-source/
https://github.com/thumbtack-technology/ycsb
http://www.aerospike.com/wp-content/uploads/2013/02/Ultra-High-Performance-NoSQL-Benchmarking_zh-CN.pdf
https://github.com/brianfrankcooper/YCSB/wiki
http://labs.yahoo.com/news/yahoo-cloud-serving-benchmark/

More Related Content

What's hot

My sql failover test using orchestrator
My sql failover test  using orchestratorMy sql failover test  using orchestrator
My sql failover test using orchestratorYoungHeon (Roy) Kim
 
PostgreSQL Troubleshoot On-line, (RITfest 2015 meetup at Moscow, Russia).
PostgreSQL Troubleshoot On-line, (RITfest 2015 meetup at Moscow, Russia).PostgreSQL Troubleshoot On-line, (RITfest 2015 meetup at Moscow, Russia).
PostgreSQL Troubleshoot On-line, (RITfest 2015 meetup at Moscow, Russia).Alexey Lesovsky
 
GitLab PostgresMortem: Lessons Learned
GitLab PostgresMortem: Lessons LearnedGitLab PostgresMortem: Lessons Learned
GitLab PostgresMortem: Lessons LearnedAlexey Lesovsky
 
Testing multi outputformat based mapreduce
Testing multi outputformat based mapreduceTesting multi outputformat based mapreduce
Testing multi outputformat based mapreduceAshok Agarwal
 
ProxySQL & PXC(Query routing and Failover Test)
ProxySQL & PXC(Query routing and Failover Test)ProxySQL & PXC(Query routing and Failover Test)
ProxySQL & PXC(Query routing and Failover Test)YoungHeon (Roy) Kim
 
Adopting GraalVM - Scala eXchange London 2018
Adopting GraalVM - Scala eXchange London 2018Adopting GraalVM - Scala eXchange London 2018
Adopting GraalVM - Scala eXchange London 2018Petr Zapletal
 
PostgreSQL Streaming Replication Cheatsheet
PostgreSQL Streaming Replication CheatsheetPostgreSQL Streaming Replication Cheatsheet
PostgreSQL Streaming Replication CheatsheetAlexey Lesovsky
 
SCALE 15x Minimizing PostgreSQL Major Version Upgrade Downtime
SCALE 15x Minimizing PostgreSQL Major Version Upgrade DowntimeSCALE 15x Minimizing PostgreSQL Major Version Upgrade Downtime
SCALE 15x Minimizing PostgreSQL Major Version Upgrade DowntimeJeff Frost
 
Out of the box replication in postgres 9.4(pg confus)
Out of the box replication in postgres 9.4(pg confus)Out of the box replication in postgres 9.4(pg confus)
Out of the box replication in postgres 9.4(pg confus)Denish Patel
 
Deep dive into PostgreSQL statistics.
Deep dive into PostgreSQL statistics.Deep dive into PostgreSQL statistics.
Deep dive into PostgreSQL statistics.Alexey Lesovsky
 
Non-Relational Postgres / Bruce Momjian (EnterpriseDB)
Non-Relational Postgres / Bruce Momjian (EnterpriseDB)Non-Relational Postgres / Bruce Momjian (EnterpriseDB)
Non-Relational Postgres / Bruce Momjian (EnterpriseDB)Ontico
 
Production MongoDB in the Cloud
Production MongoDB in the CloudProduction MongoDB in the Cloud
Production MongoDB in the Cloudbridgetkromhout
 
[OpenTRS-001] ooops
[OpenTRS-001] ooops[OpenTRS-001] ooops
[OpenTRS-001] ooopsTheori
 
MySQL Audit using Percona audit plugin and ELK
MySQL Audit using Percona audit plugin and ELKMySQL Audit using Percona audit plugin and ELK
MySQL Audit using Percona audit plugin and ELKYoungHeon (Roy) Kim
 
PostgreSQL: Data analysis and analytics
PostgreSQL: Data analysis and analyticsPostgreSQL: Data analysis and analytics
PostgreSQL: Data analysis and analyticsHans-Jürgen Schönig
 
StackExchange.redis
StackExchange.redisStackExchange.redis
StackExchange.redisLarry Nung
 
Using ngx_lua in upyun 2
Using ngx_lua in upyun 2Using ngx_lua in upyun 2
Using ngx_lua in upyun 2OpenRestyCon
 

What's hot (20)

My sql failover test using orchestrator
My sql failover test  using orchestratorMy sql failover test  using orchestrator
My sql failover test using orchestrator
 
PostgreSQL Troubleshoot On-line, (RITfest 2015 meetup at Moscow, Russia).
PostgreSQL Troubleshoot On-line, (RITfest 2015 meetup at Moscow, Russia).PostgreSQL Troubleshoot On-line, (RITfest 2015 meetup at Moscow, Russia).
PostgreSQL Troubleshoot On-line, (RITfest 2015 meetup at Moscow, Russia).
 
GitLab PostgresMortem: Lessons Learned
GitLab PostgresMortem: Lessons LearnedGitLab PostgresMortem: Lessons Learned
GitLab PostgresMortem: Lessons Learned
 
Testing multi outputformat based mapreduce
Testing multi outputformat based mapreduceTesting multi outputformat based mapreduce
Testing multi outputformat based mapreduce
 
ProxySQL & PXC(Query routing and Failover Test)
ProxySQL & PXC(Query routing and Failover Test)ProxySQL & PXC(Query routing and Failover Test)
ProxySQL & PXC(Query routing and Failover Test)
 
Adopting GraalVM - Scala eXchange London 2018
Adopting GraalVM - Scala eXchange London 2018Adopting GraalVM - Scala eXchange London 2018
Adopting GraalVM - Scala eXchange London 2018
 
PostgreSQL Streaming Replication Cheatsheet
PostgreSQL Streaming Replication CheatsheetPostgreSQL Streaming Replication Cheatsheet
PostgreSQL Streaming Replication Cheatsheet
 
SCALE 15x Minimizing PostgreSQL Major Version Upgrade Downtime
SCALE 15x Minimizing PostgreSQL Major Version Upgrade DowntimeSCALE 15x Minimizing PostgreSQL Major Version Upgrade Downtime
SCALE 15x Minimizing PostgreSQL Major Version Upgrade Downtime
 
Out of the box replication in postgres 9.4(pg confus)
Out of the box replication in postgres 9.4(pg confus)Out of the box replication in postgres 9.4(pg confus)
Out of the box replication in postgres 9.4(pg confus)
 
Prometheus Storage
Prometheus StoragePrometheus Storage
Prometheus Storage
 
Deep dive into PostgreSQL statistics.
Deep dive into PostgreSQL statistics.Deep dive into PostgreSQL statistics.
Deep dive into PostgreSQL statistics.
 
Non-Relational Postgres / Bruce Momjian (EnterpriseDB)
Non-Relational Postgres / Bruce Momjian (EnterpriseDB)Non-Relational Postgres / Bruce Momjian (EnterpriseDB)
Non-Relational Postgres / Bruce Momjian (EnterpriseDB)
 
Db2
Db2Db2
Db2
 
Unqlite
UnqliteUnqlite
Unqlite
 
Production MongoDB in the Cloud
Production MongoDB in the CloudProduction MongoDB in the Cloud
Production MongoDB in the Cloud
 
[OpenTRS-001] ooops
[OpenTRS-001] ooops[OpenTRS-001] ooops
[OpenTRS-001] ooops
 
MySQL Audit using Percona audit plugin and ELK
MySQL Audit using Percona audit plugin and ELKMySQL Audit using Percona audit plugin and ELK
MySQL Audit using Percona audit plugin and ELK
 
PostgreSQL: Data analysis and analytics
PostgreSQL: Data analysis and analyticsPostgreSQL: Data analysis and analytics
PostgreSQL: Data analysis and analytics
 
StackExchange.redis
StackExchange.redisStackExchange.redis
StackExchange.redis
 
Using ngx_lua in upyun 2
Using ngx_lua in upyun 2Using ngx_lua in upyun 2
Using ngx_lua in upyun 2
 

Similar to 基于Mongodb的压力评测工具 ycsb的一些概括

Python Load Testing - Pygotham 2012
Python Load Testing - Pygotham 2012Python Load Testing - Pygotham 2012
Python Load Testing - Pygotham 2012Dan Kuebrich
 
1404 app dev series - session 8 - monitoring & performance tuning
1404   app dev series - session 8 - monitoring & performance tuning1404   app dev series - session 8 - monitoring & performance tuning
1404 app dev series - session 8 - monitoring & performance tuningMongoDB
 
Automated YCSB Benchmarking
Automated YCSB BenchmarkingAutomated YCSB Benchmarking
Automated YCSB BenchmarkingMiro Cupak
 
What You Should Know About WebLogic Server 12c (12.2.1.2) #oow2015 #otntour2...
What You Should Know About WebLogic Server 12c (12.2.1.2)  #oow2015 #otntour2...What You Should Know About WebLogic Server 12c (12.2.1.2)  #oow2015 #otntour2...
What You Should Know About WebLogic Server 12c (12.2.1.2) #oow2015 #otntour2...Frank Munz
 
Real World Lessons on the Pain Points of Node.JS Application
Real World Lessons on the Pain Points of Node.JS ApplicationReal World Lessons on the Pain Points of Node.JS Application
Real World Lessons on the Pain Points of Node.JS ApplicationBen Hall
 
Running MongoDB Enterprise on Kubernetes
Running MongoDB Enterprise on KubernetesRunning MongoDB Enterprise on Kubernetes
Running MongoDB Enterprise on KubernetesAriel Jatib
 
Automatically scaling your Kubernetes workloads - SVC201-S - Chicago AWS Summit
Automatically scaling your Kubernetes workloads - SVC201-S - Chicago AWS SummitAutomatically scaling your Kubernetes workloads - SVC201-S - Chicago AWS Summit
Automatically scaling your Kubernetes workloads - SVC201-S - Chicago AWS SummitAmazon Web Services
 
MongoDB.local DC 2018: MongoDB Ops Manager + Kubernetes
MongoDB.local DC 2018: MongoDB Ops Manager + KubernetesMongoDB.local DC 2018: MongoDB Ops Manager + Kubernetes
MongoDB.local DC 2018: MongoDB Ops Manager + KubernetesMongoDB
 
SRV402 Deep Dive on Amazon EC2 Instances, Featuring Performance Optimization ...
SRV402 Deep Dive on Amazon EC2 Instances, Featuring Performance Optimization ...SRV402 Deep Dive on Amazon EC2 Instances, Featuring Performance Optimization ...
SRV402 Deep Dive on Amazon EC2 Instances, Featuring Performance Optimization ...Amazon Web Services
 
DB proxy server test: run tests on tens of virtual machines with Jenkins, Vag...
DB proxy server test: run tests on tens of virtual machines with Jenkins, Vag...DB proxy server test: run tests on tens of virtual machines with Jenkins, Vag...
DB proxy server test: run tests on tens of virtual machines with Jenkins, Vag...Timofey Turenko
 
SRV402 Deep Dive on Amazon EC2 Instances, Featuring Performance Optimization ...
SRV402 Deep Dive on Amazon EC2 Instances, Featuring Performance Optimization ...SRV402 Deep Dive on Amazon EC2 Instances, Featuring Performance Optimization ...
SRV402 Deep Dive on Amazon EC2 Instances, Featuring Performance Optimization ...Amazon Web Services
 
Monitoring all Elements of Your Database Operations With Zabbix
Monitoring all Elements of Your Database Operations With ZabbixMonitoring all Elements of Your Database Operations With Zabbix
Monitoring all Elements of Your Database Operations With ZabbixZabbix
 
6 tips for improving ruby performance
6 tips for improving ruby performance6 tips for improving ruby performance
6 tips for improving ruby performanceEngine Yard
 
手把手教你如何串接 Log 到各種網路服務
手把手教你如何串接 Log 到各種網路服務手把手教你如何串接 Log 到各種網路服務
手把手教你如何串接 Log 到各種網路服務Mu Chun Wang
 
Live deployment, ci, drupal
Live deployment, ci, drupalLive deployment, ci, drupal
Live deployment, ci, drupalAndrii Podanenko
 
Introduction to LAVA Workload Scheduler
Introduction to LAVA Workload SchedulerIntroduction to LAVA Workload Scheduler
Introduction to LAVA Workload SchedulerNopparat Nopkuat
 
Orchestration tool roundup kubernetes vs. docker vs. heat vs. terra form vs...
Orchestration tool roundup   kubernetes vs. docker vs. heat vs. terra form vs...Orchestration tool roundup   kubernetes vs. docker vs. heat vs. terra form vs...
Orchestration tool roundup kubernetes vs. docker vs. heat vs. terra form vs...Nati Shalom
 
Uri Cohen & Dan Kilman, GigaSpaces - Orchestration Tool Roundup - OpenStack l...
Uri Cohen & Dan Kilman, GigaSpaces - Orchestration Tool Roundup - OpenStack l...Uri Cohen & Dan Kilman, GigaSpaces - Orchestration Tool Roundup - OpenStack l...
Uri Cohen & Dan Kilman, GigaSpaces - Orchestration Tool Roundup - OpenStack l...Cloud Native Day Tel Aviv
 
OpenNebulaConf 2016 - Measuring and tuning VM performance by Boyan Krosnov, S...
OpenNebulaConf 2016 - Measuring and tuning VM performance by Boyan Krosnov, S...OpenNebulaConf 2016 - Measuring and tuning VM performance by Boyan Krosnov, S...
OpenNebulaConf 2016 - Measuring and tuning VM performance by Boyan Krosnov, S...OpenNebula Project
 
MongoDB.local Austin 2018: MongoDB Ops Manager + Kubernetes
MongoDB.local Austin 2018: MongoDB Ops Manager + KubernetesMongoDB.local Austin 2018: MongoDB Ops Manager + Kubernetes
MongoDB.local Austin 2018: MongoDB Ops Manager + KubernetesMongoDB
 

Similar to 基于Mongodb的压力评测工具 ycsb的一些概括 (20)

Python Load Testing - Pygotham 2012
Python Load Testing - Pygotham 2012Python Load Testing - Pygotham 2012
Python Load Testing - Pygotham 2012
 
1404 app dev series - session 8 - monitoring & performance tuning
1404   app dev series - session 8 - monitoring & performance tuning1404   app dev series - session 8 - monitoring & performance tuning
1404 app dev series - session 8 - monitoring & performance tuning
 
Automated YCSB Benchmarking
Automated YCSB BenchmarkingAutomated YCSB Benchmarking
Automated YCSB Benchmarking
 
What You Should Know About WebLogic Server 12c (12.2.1.2) #oow2015 #otntour2...
What You Should Know About WebLogic Server 12c (12.2.1.2)  #oow2015 #otntour2...What You Should Know About WebLogic Server 12c (12.2.1.2)  #oow2015 #otntour2...
What You Should Know About WebLogic Server 12c (12.2.1.2) #oow2015 #otntour2...
 
Real World Lessons on the Pain Points of Node.JS Application
Real World Lessons on the Pain Points of Node.JS ApplicationReal World Lessons on the Pain Points of Node.JS Application
Real World Lessons on the Pain Points of Node.JS Application
 
Running MongoDB Enterprise on Kubernetes
Running MongoDB Enterprise on KubernetesRunning MongoDB Enterprise on Kubernetes
Running MongoDB Enterprise on Kubernetes
 
Automatically scaling your Kubernetes workloads - SVC201-S - Chicago AWS Summit
Automatically scaling your Kubernetes workloads - SVC201-S - Chicago AWS SummitAutomatically scaling your Kubernetes workloads - SVC201-S - Chicago AWS Summit
Automatically scaling your Kubernetes workloads - SVC201-S - Chicago AWS Summit
 
MongoDB.local DC 2018: MongoDB Ops Manager + Kubernetes
MongoDB.local DC 2018: MongoDB Ops Manager + KubernetesMongoDB.local DC 2018: MongoDB Ops Manager + Kubernetes
MongoDB.local DC 2018: MongoDB Ops Manager + Kubernetes
 
SRV402 Deep Dive on Amazon EC2 Instances, Featuring Performance Optimization ...
SRV402 Deep Dive on Amazon EC2 Instances, Featuring Performance Optimization ...SRV402 Deep Dive on Amazon EC2 Instances, Featuring Performance Optimization ...
SRV402 Deep Dive on Amazon EC2 Instances, Featuring Performance Optimization ...
 
DB proxy server test: run tests on tens of virtual machines with Jenkins, Vag...
DB proxy server test: run tests on tens of virtual machines with Jenkins, Vag...DB proxy server test: run tests on tens of virtual machines with Jenkins, Vag...
DB proxy server test: run tests on tens of virtual machines with Jenkins, Vag...
 
SRV402 Deep Dive on Amazon EC2 Instances, Featuring Performance Optimization ...
SRV402 Deep Dive on Amazon EC2 Instances, Featuring Performance Optimization ...SRV402 Deep Dive on Amazon EC2 Instances, Featuring Performance Optimization ...
SRV402 Deep Dive on Amazon EC2 Instances, Featuring Performance Optimization ...
 
Monitoring all Elements of Your Database Operations With Zabbix
Monitoring all Elements of Your Database Operations With ZabbixMonitoring all Elements of Your Database Operations With Zabbix
Monitoring all Elements of Your Database Operations With Zabbix
 
6 tips for improving ruby performance
6 tips for improving ruby performance6 tips for improving ruby performance
6 tips for improving ruby performance
 
手把手教你如何串接 Log 到各種網路服務
手把手教你如何串接 Log 到各種網路服務手把手教你如何串接 Log 到各種網路服務
手把手教你如何串接 Log 到各種網路服務
 
Live deployment, ci, drupal
Live deployment, ci, drupalLive deployment, ci, drupal
Live deployment, ci, drupal
 
Introduction to LAVA Workload Scheduler
Introduction to LAVA Workload SchedulerIntroduction to LAVA Workload Scheduler
Introduction to LAVA Workload Scheduler
 
Orchestration tool roundup kubernetes vs. docker vs. heat vs. terra form vs...
Orchestration tool roundup   kubernetes vs. docker vs. heat vs. terra form vs...Orchestration tool roundup   kubernetes vs. docker vs. heat vs. terra form vs...
Orchestration tool roundup kubernetes vs. docker vs. heat vs. terra form vs...
 
Uri Cohen & Dan Kilman, GigaSpaces - Orchestration Tool Roundup - OpenStack l...
Uri Cohen & Dan Kilman, GigaSpaces - Orchestration Tool Roundup - OpenStack l...Uri Cohen & Dan Kilman, GigaSpaces - Orchestration Tool Roundup - OpenStack l...
Uri Cohen & Dan Kilman, GigaSpaces - Orchestration Tool Roundup - OpenStack l...
 
OpenNebulaConf 2016 - Measuring and tuning VM performance by Boyan Krosnov, S...
OpenNebulaConf 2016 - Measuring and tuning VM performance by Boyan Krosnov, S...OpenNebulaConf 2016 - Measuring and tuning VM performance by Boyan Krosnov, S...
OpenNebulaConf 2016 - Measuring and tuning VM performance by Boyan Krosnov, S...
 
MongoDB.local Austin 2018: MongoDB Ops Manager + Kubernetes
MongoDB.local Austin 2018: MongoDB Ops Manager + KubernetesMongoDB.local Austin 2018: MongoDB Ops Manager + Kubernetes
MongoDB.local Austin 2018: MongoDB Ops Manager + Kubernetes
 

More from Louis liu

Tcpcopy benchmark
Tcpcopy benchmarkTcpcopy benchmark
Tcpcopy benchmarkLouis liu
 
JK Log-Center architect
JK Log-Center architectJK Log-Center architect
JK Log-Center architectLouis liu
 
JKDB BACKUP Introduction
JKDB BACKUP IntroductionJKDB BACKUP Introduction
JKDB BACKUP IntroductionLouis liu
 
Infiniflash benchmark
Infiniflash benchmarkInfiniflash benchmark
Infiniflash benchmarkLouis liu
 
MySQL Tokudb engine benchmark
MySQL Tokudb engine benchmarkMySQL Tokudb engine benchmark
MySQL Tokudb engine benchmarkLouis liu
 
Nvmfs benchmark
Nvmfs benchmarkNvmfs benchmark
Nvmfs benchmarkLouis liu
 
MySQL 5.7 milestone
MySQL 5.7 milestoneMySQL 5.7 milestone
MySQL 5.7 milestoneLouis liu
 
MySQL Oslayer performace optimization
MySQL  Oslayer performace optimizationMySQL  Oslayer performace optimization
MySQL Oslayer performace optimizationLouis liu
 
MySQL async message subscription platform
MySQL async message subscription platformMySQL async message subscription platform
MySQL async message subscription platformLouis liu
 
Jkcn MySQLDB 架构
Jkcn MySQLDB 架构Jkcn MySQLDB 架构
Jkcn MySQLDB 架构Louis liu
 
My sql fabric ha and sharding solutions
My sql fabric ha and sharding solutionsMy sql fabric ha and sharding solutions
My sql fabric ha and sharding solutionsLouis liu
 
NetApp ef540 SSD Storage Test
NetApp ef540 SSD Storage TestNetApp ef540 SSD Storage Test
NetApp ef540 SSD Storage TestLouis liu
 
Exadata best practice on E-commerce area
Exadata best practice on E-commerce area Exadata best practice on E-commerce area
Exadata best practice on E-commerce area Louis liu
 
MySQL 5.5&5.6 new features summary
MySQL 5.5&5.6 new features summaryMySQL 5.5&5.6 new features summary
MySQL 5.5&5.6 new features summaryLouis liu
 
Ssd gc review
Ssd gc reviewSsd gc review
Ssd gc reviewLouis liu
 
1号店数据库架构
1号店数据库架构1号店数据库架构
1号店数据库架构Louis liu
 
Architecture of YHD
Architecture of YHDArchitecture of YHD
Architecture of YHDLouis liu
 
Think of oracle and mysql bind value
Think of oracle and mysql bind value Think of oracle and mysql bind value
Think of oracle and mysql bind value Louis liu
 

More from Louis liu (20)

Tcpcopy benchmark
Tcpcopy benchmarkTcpcopy benchmark
Tcpcopy benchmark
 
JK Log-Center architect
JK Log-Center architectJK Log-Center architect
JK Log-Center architect
 
Wdt Test
Wdt TestWdt Test
Wdt Test
 
JKDB BACKUP Introduction
JKDB BACKUP IntroductionJKDB BACKUP Introduction
JKDB BACKUP Introduction
 
Infiniflash benchmark
Infiniflash benchmarkInfiniflash benchmark
Infiniflash benchmark
 
MySQL Tokudb engine benchmark
MySQL Tokudb engine benchmarkMySQL Tokudb engine benchmark
MySQL Tokudb engine benchmark
 
Nvmfs benchmark
Nvmfs benchmarkNvmfs benchmark
Nvmfs benchmark
 
MySQL 5.7 milestone
MySQL 5.7 milestoneMySQL 5.7 milestone
MySQL 5.7 milestone
 
MySQL Oslayer performace optimization
MySQL  Oslayer performace optimizationMySQL  Oslayer performace optimization
MySQL Oslayer performace optimization
 
MySQL async message subscription platform
MySQL async message subscription platformMySQL async message subscription platform
MySQL async message subscription platform
 
Jkcn MySQLDB 架构
Jkcn MySQLDB 架构Jkcn MySQLDB 架构
Jkcn MySQLDB 架构
 
My sql fabric ha and sharding solutions
My sql fabric ha and sharding solutionsMy sql fabric ha and sharding solutions
My sql fabric ha and sharding solutions
 
NetApp ef540 SSD Storage Test
NetApp ef540 SSD Storage TestNetApp ef540 SSD Storage Test
NetApp ef540 SSD Storage Test
 
Exadata best practice on E-commerce area
Exadata best practice on E-commerce area Exadata best practice on E-commerce area
Exadata best practice on E-commerce area
 
MySQL 5.5&5.6 new features summary
MySQL 5.5&5.6 new features summaryMySQL 5.5&5.6 new features summary
MySQL 5.5&5.6 new features summary
 
Ssd gc review
Ssd gc reviewSsd gc review
Ssd gc review
 
1号店数据库架构
1号店数据库架构1号店数据库架构
1号店数据库架构
 
Architecture of YHD
Architecture of YHDArchitecture of YHD
Architecture of YHD
 
Oracle dgha
Oracle dghaOracle dgha
Oracle dgha
 
Think of oracle and mysql bind value
Think of oracle and mysql bind value Think of oracle and mysql bind value
Think of oracle and mysql bind value
 

Recently uploaded

HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesBoston Institute of Analytics
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024The Digital Insurer
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CVKhem
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024SynarionITSolutions
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsRoshan Dwivedi
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdflior mazor
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...apidays
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...apidays
 

Recently uploaded (20)

HTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation StrategiesHTML Injection Attacks: Impact and Mitigation Strategies
HTML Injection Attacks: Impact and Mitigation Strategies
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024Manulife - Insurer Innovation Award 2024
Manulife - Insurer Innovation Award 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Real Time Object Detection Using Open CV
Real Time Object Detection Using Open CVReal Time Object Detection Using Open CV
Real Time Object Detection Using Open CV
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024Top 10 Most Downloaded Games on Play Store in 2024
Top 10 Most Downloaded Games on Play Store in 2024
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live StreamsTop 5 Benefits OF Using Muvi Live Paywall For Live Streams
Top 5 Benefits OF Using Muvi Live Paywall For Live Streams
 
Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
GenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdfGenAI Risks & Security Meetup 01052024.pdf
GenAI Risks & Security Meetup 01052024.pdf
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 

基于Mongodb的压力评测工具 ycsb的一些概括

  • 1. www.vmcd.org 基于 mongodb 的压力评测工具 YCSB 的一些概括 YCSB 是一款基于 NOSQL Benchmark 的工具,提供了多种方式模拟测试 nosql 的负载,基于现在对 nosql 的一些压力测试还没有得到重视. YCSB 的全面的测试功能可以给即将上线的 nosql 提供一种另类保障。 There are many new serving databases available, including:  PNUTS  BigTable  HBase  Hypertable  Azure  Cassandra  CouchDB  Voldemort  MongoDb  OrientDB  Infinispan  Dynomite  Redis  GemFire  GigaSpaces XAP  DynamoDB  Couchhase  Aerospike
  • 2. www.vmcd.org 下面的数据仅供参考,测试于虚拟机服务器。 给一个简单的 load data 的例子: [root@mysqlstd ycsb-0.1.4]# ./bin/ycsb load mongodb -P workloads/workloada -p mongodb.url=mongodb://127.0.0.1:27017 -p mongodb.database=newdb -p mongodb.writeConcern=normal -s >data Loading workload... Starting test. 0 sec: 0 operations; 10 sec: 18448 operations; 1837.08 current ops/sec; [INSERT AverageLatency(us)=423.35] 20 sec: 42134 operations; 2366.71 current ops/sec; [INSERT AverageLatency(us)=373.44] 30 sec: 61185 operations; 1904.34 current ops/sec; [INSERT AverageLatency(us)=661.58] 40 sec: 85308 operations; 2411.09 current ops/sec; [INSERT AverageLatency(us)=324.83] 50 sec: 97785 operations; 1247.2 current ops/sec; [INSERT AverageLatency(us)=985.33] 50 sec: 100000 operations; 2662.26 current ops/sec; [INSERT AverageLatency(us)=371.24]
  • 3. www.vmcd.org load data 之后 可以开始模拟压测了.YCSB 主要分为以下几种模式: Workload A: Update heavy workload This workload has a mix of 50/50 reads and writes. An application example is a session store recording recent actions. Workload B: Read mostly workload This workload has a 95/5 reads/write mix. Application example: photo tagging; add a tag is an update, but most operations are to read tags. Workload C: Read only This workload is 100% read. Application example: user profile cache, where profiles are constructed elsewhere (e.g., Hadoop). Workload D: Read latest workload In this workload, new records are inserted, and the most recently inserted records are the most popular. Application example: user status updates; people want to read the latest. Workload E: Short ranges
  • 4. www.vmcd.org In this workload, short ranges of records are queried, instead of individual records. Application example: threaded conversations, where each scan is for the posts in a given thread (assumed to be clustered by thread id). Workload F: Read-modify-write In this workload, the client will read a record, modify it, and write back the changes. Application example: user database, where user records are read and modified by the user or to record user activity. 其中 E 模式的 short range 存在问题,当然我们也可以自定义模式: # Yahoo! Cloud System Benchmark # Workload A: Update heavy workload # Application example: Session store recording recent actions # # Read/update ratio: 50/50 # Default data size: 1 KB records (10 fields, 100 bytes each, plus key) # Request distribution: zipfian recordcount=100000 operationcount=100000 workload=com.yahoo.ycsb.workloads.CoreWorkload readallfields=true
  • 5. www.vmcd.org readproportion=1 updateproportion=0 scanproportion=0 insertproportion=0 修改 read update insert 的百分比来达到模拟真实环境的目的, 下面给个压测例子 比如压测纯读操作: [root@mysqlstd ycsb-0.1.4]# ./bin/ycsb run mongodb -P workloads/workloadc -P large.dat -p mongodb.url=mongodb://127.0.0.1:27017 -p mongodb.database=newdb -p mongodb.writeConcern=normal -s >data Loading workload... Starting test. 0 sec: 0 operations; 10 sec: 49375 operations; 4922.24 current ops/sec; [READ AverageLatency(us)=192.56] 18 sec: 100000 operations; 6141.57 current ops/sec; [READ AverageLatency(us)=159.72] 95%读+%5 写: [root@mysqlstd ycsb-0.1.4]# ./bin/ycsb run mongodb -P workloads/workloadd -P large.dat -p mongodb.url=mongodb://127.0.0.1:27017 -p mongodb.database=newdb -p mongodb.writeConcern=normal -s >data Loading workload... Starting test.
  • 6. www.vmcd.org 0 sec: 0 operations; 10 sec: 43497 operations; 4333.23 current ops/sec; [INSERT AverageLatency(us)=633.66] [READ AverageLatency(us)=196.33] 20 sec: 92795 operations; 4925.37 current ops/sec; [INSERT AverageLatency(us)=792.15] [READ AverageLatency(us)=167.74] 21 sec: 100000 operations; 5637.72 current ops/sec; [INSERT AverageLatency(us)=379.57] [READ AverageLatency(us)=163.45] 另外 thumbtack 对 YCSB 进行了修改,增强了一些功能 开源地址: https://github.com/thumbtack-technology/ycsb 主要增加支持了 Aerospike and Couchbase 目前 Aerospike 已经开源 针对 SSD 进行了专门优化 : http://www.aerospike.com/blog/entrepreneurs-break-all-the-rules-aerospike-goes-open-source/ 同时 MongoDB 的驱动程序从 2.8.0 版(在 Mongo 2.2 发布之前的版本)升级到了 2.10.1 版,并实现了对 readPreference 配置的设置 mongodb.readPreference = primary|primaryPreferred|secondary|secondaryPreferred
  • 7. www.vmcd.org 下面结合 thumbtack 修改的版本做个测试 可以得到具体数据: [root@mysqlstd ycsb]# fab ycsb_load:db=mongodb [10.0.32.38] Executing task 'ycsb_load' 2014-07-15 01:09:00-07:00 [10.0.32.38] run: echo "/root/ycsb/bin/ycsb load mongodb -s -p mongodb.url=mongodb://127.0.0.1:27017 -p workload=com.yahoo.ycsb.workloads.CoreWorkload -p updateretrycount=1000 -p mongodb.writeConcern=normal -p mongodb.database=ycsb -p
  • 8. www.vmcd.org recordcount=5000000 -p exportmeasurementsinterval=30000 -p fieldcount=10 -p timeseries.granularity=100 -p threadcount=32 -p insertretrycount=10 -p readretrycount=1000 -p ignoreinserterrors=true -p reconnectionthroughput=10 -p operationcount=2400000000 -p fieldnameprefix=f -p maxexecutiontime=2400 -p mongodb.readPreference=primaryPreferred -p measurementtype=timeseries -p reconnectiontime=1000 -p fieldlength=10 -p insertstart=0 -p insertcount=5000000 > /root/ycsb/2014-07-15_01-09_mongodb_load.out 2> /root/ycsb/2014-07-15_01-09_mongodb_load.err" | at 01:09 today [10.0.32.38] out: job 13 at 2014-07-15 01:09 Done. Disconnecting from 10.0.32.38... done. [mongo@mysqlstd ~]$ /data/mongodb/mongodb/bin/mongo MongoDB shell version: 2.6.1 connecting to: test > show dbs admin 0.031GB local 0.031GB newdb 0.500GB newdb1 0.500GB newdb2 0.500GB ycsb 1.500GB > use ycsb switched to db ycsb > db.usertable.c db.usertable.clean( db.usertable.convertToCapped( db.usertable.copyTo( db.usertable.createIndex( db.usertable.constructor db.usertable.convertToSingleObject( db.usertable.count( > db.usertable.count() 2675710
  • 9. www.vmcd.org 模拟压力环境:workload mode=A [root@mysqlstd ycsb]# fab ycsb_run:db=mongodb,workload=A [10.0.32.38] Executing task 'ycsb_run' 2014-07-15 02:13:00-07:00 [10.0.32.38] run: echo "/root/ycsb/bin/ycsb run mongodb -s -P /root/ycsb/workloads/workloada -p mongodb.url=mongodb://127.0.0.1:27017 -p workload=com.yahoo.ycsb.workloads.CoreWorkload -p updateretrycount=1000 -p mongodb.writeConcern=normal -p mongodb.database=ycsb -p recordcount=5000000 -p exportmeasurementsinterval=30000 -p fieldcount=10 -p timeseries.granularity=100 -p threadcount=32 -p insertretrycount=10 -p readretrycount=1000 -p ignoreinserterrors=true -p reconnectionthroughput=10 -p operationcount=1800000 -p fieldnameprefix=f -p maxexecutiontime=180 -p mongodb.readPreference=primaryPreferred -p measurementtype=timeseries -p reconnectiontime=1000 -p fieldlength=10 > /root/ycsb/2014-07-15_02-13_mongodb_workloada.out 2> /root/ycsb/2014-07-15_02-13_mongodb_workloada.err" | at 02:13 today [10.0.32.38] out: job 23 at 2014-07-15 02:13 [10.0.32.38] out: Done. Disconnecting from 10.0.32.38... done. 使用 merge.py 得到具体数值 [root@mysqlstd ycsb]# ./bin/merge.py OVERALL OVERALL READ READ READ READ READ READ READ READ READ UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE UPDATE CLEANUP CLEANUP CLEANUCLEANUP CLEANUP CLEANUP CLEANUP CLEANUP CLEANUP RunTime Throughput Operations Retries Return=0 Return=[^0].* AverageLatency MinLatency MaxLatency 95thPercentileLatency
  • 10. www.vmcd.org 99thPercentileLatency Operations Retries Return=0 Return=[^0].* AverageLatency MinLatency MaxLatency 95thPercentileLatency 99thPercentileLatency Operations Retries Return=0 Return=[^0].* AverageLatency MinLatency MaxLatency 95thPercentileLatency 99thPercentileLatency 1 61156 28.58264111 1665 747000 918 747 927.7820691 0.132 6630.776 83 33000 50 33 2075.808675 0.504 9767.828 32 0 18.08734375 0.465 207.159 Total 61156 28.58264111 1665 747000 918 747 927.7820691 0.132 6630.776 83 33000 50 33 2075.808675 0.504 9767.828 32 0 0 0 18.08734375 0.465 207.159 [mongo@mysqlstd ~]$ /data/mongodb/mongodb/bin/mongostat connected to: 127.0.0.1 insert query update delete getmore command flushes mapped vsize res faults locked db idx miss % qr|qw ar|aw netIn netOut conn time *0 5568 5369 *0 0 5381|0 0 3.06g 6.47g 282m 9 admin:0.9% 0 0|0 0|0 1m 894k 95 02:14:05 *0 4298 6267 *0 0 6279|0 0 3.06g 6.47g 282m 6 admin:0.6% 0 0|0 1|0 1m 962k 96 02:14:06 *0 4675 6119 *0 0 6066|0 0 3.06g 6.47g 282m 2 admin:0.0% 0 95|0 1|0 1m 948k 92 02:14:07 *0 4137 4866 *0 0 4948|0 0 3.06g 6.47g 282m 18 admin:2.1% 0 0|0 0|0 1m 790k 91 02:14:08 *0 4568 5904 *0 0 5922|0 0 3.06g 6.47g 282m 4 admin:0.1% 0 0|0 0|0 1m 927k 92 02:14:09 *0 4727 6034 *0 0 6046|0 0 3.06g 6.47g 282m 5 admin:0.0% 0 0|0 0|0 1m 949k 90 02:14:10 *0 4991 5673 *0 0 5690|0 0 3.06g 6.47g 282m 3 admin:0.9% 0 0|0 0|0 1m 914k 94 02:14:11
  • 11. www.vmcd.org *0 4740 5173 *0 0 5183|0 1 3.06g 6.47g 282m 7 admin:0.1% 0 0|0 0|0 1m 839k 94 02:14:12 *0 4332 5493 *0 0 5510|0 0 3.06g 6.47g 282m 8 admin:0.9% 0 0|0 0|0 1m 866k 94 02:14:13 *0 4980 5583 *0 0 5592|0 0 3.06g 6.47g 282m 8 admin:0.0% 0 0|0 0|0 1m 901k 97 02:14:14 insert query update delete getmore command flushes mapped vsize res faults locked db idx miss % qr|qw ar|aw netIn netOut conn time *0 5750 5030 *0 0 4997|0 0 3.06g 6.47g 282m 20 admin:1.8% 0 94|0 1|1 1m 853k 97 02:14:15 *0 4884 5509 *0 0 5578|0 0 3.06g 6.47g 282m 10 admin:0.1% 0 0|0 0|0 1m 894k 97 02:14:16 *0 5733 5773 *0 0 5784|0 0 3.06g 6.47g 282m 5 admin:0.0% 0 0|0 0|0 1m 952k 92 02:14:17 *0 5178 5202 *0 0 5219|0 0 3.06g 6.47g 282m 14 admin:0.0% 0 0|0 0|0 1m 861k 95 02:14:18 *0 4179 5680 *0 0 5688|0 0 3.06g 6.47g 282m 8 admin:0.0% 0 0|0 0|1 1m 884k 93 02:14:19 *0 4879 5695 *0 0 5707|0 0 3.06g 6.47g 282m 11 admin:0.1% 0 0|0 0|0 1m 911k 93 02:14:20 *0 5271 5402 *0 0 5413|0 0 3.06g 6.47g 282m 12 admin:0.0% 0 0|0 0|0 1m 887k 95 02:14:21 *0 4583 4852 *0 0 4867|0 1 3.06g 6.47g 282m 11 admin:0.0% 0 0|0 0|0 1m 795k 93 02:14:22 *0 6654 4956 *0 0 4967|0 0 3.06g 6.47g 282m 10 admin:1.5% 0 0|0 0|0 1m 881k 95 02:14:23