Prepare table: usertable
Configure your database and table.
建立一張新的表 名為 usertable
CREATE TABLE usertable ( YCSB_KEY VARCHAR(255) PRIMARY KEY, FIELD0 TEXT, FIELD1 TEXT, FIELD2 TEXT, FIELD3 TEXT, FIELD4 TEXT, FIELD5 TEXT, FIELD6 TEXT, FIELD7 TEXT, FIELD8 TEXT, FIELD9 TEXT );
Step
0.8.0 Getting Started
- obtain ycsb
curl -O --location https://github.com/brianfrankcooper/YCSB/releases/download/0.8.0/ycsb-0.8.0.tar.gz
tar xfvz ycsb-0.8.0.tar.gz
cd ycsb-0.8.0
You will be using the ycsb command to interact with YCSB. Run:
./bin/ycsb
to see the usage.
- load data
./bin/ycsb load jdbc -P workloads/workloada -p db.driver=org.postgresql.Driver -p db.url=jdbc:postgresql://ue01/dpdb -p db.user=dpuser -p db.passwd=dpuser
- run the stress test
./bin/ycsb run jdbc -P workloads/workloada -p db.driver=org.postgresql.Driver -p db.url=jdbc:postgresql://ue01/dpdb -p db.user=dpuser -p db.passwd=dpuser
Example
# Load data ./bin/ycsb run jdbc -P workloads/workloada -p db.driver=org.postgresql.Driver -p db.url=jdbc:postgresql://ue01/dpdb -p db.user=dpuser -p db.passwd=dpuser # Run ./bin/ycsb load jdbc -P workloads/workloada -p db.driver=org.postgresql.Driver -p db.url=jdbc:postgresql://ue01/dpdb -p db.user=dpuser -p db.passwd=dpuser
Postgresql Output
(py2)[dpuser@ue03 ycsb-0.8.0]$ ./bin/ycsb run jdbc -P workloads/workloada -p db.driver=org.postgresql.Driver -p db.url=jdbc:postgresql://ue01/dpdb -p db.user=dpuser -p db.passwd=dpuser /usr/java/latest/bin/java -cp /home/dpuser/YCSB/ycsb-0.8.0/jdbc-binding/conf:/home/dpuser/YCSB/ycsb-0.8.0/conf:/home/dpuser/YCSB/ycsb-0.8.0/lib/core-0.8.0.jar:/home/dpuser/YCSB/ycsb-0.8.0/lib/jackson-core-asl-1.9.4.jar:/home/dpuser/YCSB/ycsb-0.8.0/lib/HdrHistogram-2.1.4.jar:/home/dpuser/YCSB/ycsb-0.8.0/lib/jackson-mapper-asl-1.9.4.jar:/home/dpuser/YCSB/ycsb-0.8.0/jdbc-binding/lib/serp-1.13.1.jar:/home/dpuser/YCSB/ycsb-0.8.0/jdbc-binding/lib/openjpa-lib-2.1.1.jar:/home/dpuser/YCSB/ycsb-0.8.0/jdbc-binding/lib/postgresql-9.4.1208.jre7.jar:/home/dpuser/YCSB/ycsb-0.8.0/jdbc-binding/lib/geronimo-jms_1.1_spec-1.1.1.jar:/home/dpuser/YCSB/ycsb-0.8.0/jdbc-binding/lib/commons-collections-3.2.1.jar:/home/dpuser/YCSB/ycsb-0.8.0/jdbc-binding/lib/openjpa-jdbc-2.1.1.jar:/home/dpuser/YCSB/ycsb-0.8.0/jdbc-binding/lib/sqlite-jdbc-3.8.11.2.jar:/home/dpuser/YCSB/ycsb-0.8.0/jdbc-binding/lib/jdbc-binding-0.8.0.jar:/home/dpuser/YCSB/ycsb-0.8.0/jdbc-binding/lib/openjpa-kernel-2.1.1.jar:/home/dpuser/YCSB/ycsb-0.8.0/jdbc-binding/lib/geronimo-jta_1.1_spec-1.1.1.jar:/home/dpuser/YCSB/ycsb-0.8.0/jdbc-binding/lib/commons-lang-2.4.jar:/home/dpuser/YCSB/ycsb-0.8.0/jdbc-binding/lib/commons-pool-1.5.4.jar com.yahoo.ycsb.Client -db com.yahoo.ycsb.db.JdbcDBClient -P workloads/workloada -p db.driver=org.postgresql.Driver -p db.url=jdbc:postgresql://ue01/dpdb -p db.user=dpuser -p db.passwd=dpuser -t YCSB Client 0.8.0 Command line: -db com.yahoo.ycsb.db.JdbcDBClient -P workloads/workloada -p db.driver=org.postgresql.Driver -p db.url=jdbc:postgresql://ue01/dpdb -p db.user=dpuser -p db.passwd=dpuser -t Loading workload... Starting test. Adding shard node URL: jdbc:postgresql://ue01/dpdb Using 1 shards DBWrapper: report latency for each error is false and specific error codes to track for latency are: [] [OVERALL], RunTime(ms), 6660.0 [OVERALL], Throughput(ops/sec), 150.15015015015015 [CLEANUP], Operations, 1.0 [CLEANUP], AverageLatency(us), 104.0 [CLEANUP], MinLatency(us), 104.0 [CLEANUP], MaxLatency(us), 104.0 [CLEANUP], 95thPercentileLatency(us), 104.0 [CLEANUP], 99thPercentileLatency(us), 104.0 [READ], Operations, 504.0 [READ], AverageLatency(us), 496.7797619047619 [READ], MinLatency(us), 277.0 [READ], MaxLatency(us), 15999.0 [READ], 95thPercentileLatency(us), 715.0 [READ], 99thPercentileLatency(us), 942.0 [READ], Return=OK, 504 [UPDATE], Operations, 496.0 [UPDATE], AverageLatency(us), 12636.911290322581 [UPDATE], MinLatency(us), 8240.0 [UPDATE], MaxLatency(us), 53599.0 [UPDATE], 95thPercentileLatency(us), 13583.0 [UPDATE], 99thPercentileLatency(us), 24847.0 [UPDATE], Return=OK, 496