yugabyte workspace - add yugabyte-workload-gen

This commit is contained in:
bluxmit 2022-02-06 16:43:43 +00:00
parent 953f1678f1
commit 8d02a80514
2 changed files with 65 additions and 1 deletions

View file

@ -16,8 +16,13 @@ RUN echo "------------------------------------------------------ yugabyte 2.11"
&& chmod +x /tmp/tpcc/tpccbenchmark \
&& mv /tmp/tpcc /opt/tpcc \
&& ln -s /opt/tpcc/tpccbenchmark /usr/bin/tpccbenchmark \
echo "------------------------------------------------------ Yugabyte workload generator" \
&& mkdir /opt/yugabyte-workload-gen \
&& cd /opt/yugabyte-workload-gen && wget https://github.com/yugabyte/yb-sample-apps/releases/download/1.3.9/yb-sample-apps.jar \
&& echo "------------------------------------------------------ user" \
&& chown -R abc /opt/yugabyte
&& chown -R abc /opt/yugabyte \
&& chown -R abc /opt/tpcc \
&& chown -R abc /opt/yugabyte-workload-gen
ENV PATH="/opt/yugabyte/bin:/opt/yugabyte/postgres/bin:${PATH}"

View file

@ -8,6 +8,7 @@ This workspace was build from the [Postgres workspace](https://github.com/bluxmi
includes all its features. In addition:
- [Yugabyte 2.11 release](https://github.com/yugabyte/yugabyte-db/releases)
- [tpccbenchmark](https://docs.yugabyte.com/latest/benchmark/tpcc-ysql/)
- [YugabyteDB workload generator](https://github.com/Yugabyte/yb-sample-apps)
Yugabyte release is in the folder `/opt/yugabyte` with `./bin and ./postgres/bin` added to the PATH.
@ -17,3 +18,61 @@ Yugabyte release is in the folder `/opt/yugabyte` with `./bin and ./postgres/bin
Postgres tools from the [Postgres workspace](https://github.com/bluxmit/alnoda-workspaces/blob/main/workspaces/postgres-workspace/README.md)
work with Yugabyte too.
### tpccbenchmark
[tpccbenchmark](https://docs.yugabyte.com/latest/benchmark/tpcc-ysql/) runs the TPC-C workload against YugabyteDB YSQL.
TPC-C is a popular online transaction processing benchmark that provides metrics you can use to evaluate the performance
of YugabyteDB for concurrent transactions of different types and complexity that are either executed online or queued
for deferred execution.
Example of use
1. Create db for testing
```
pgcli -h yugabyte-tservers-ip -p 5433 -U yugabyte
>> CREATE DATABASE loadtest;
```
2. Configure tpccbenchmark
```
cd /opt/tpcc
nano config/workload_all.xml # change <DBName> to loadtest
```
3. Prepare and execute load test
```
./tpccbenchmark --create=true --nodes=yuga-yb-tservers loadtest
./tpccbenchmark --load=true \
--nodes=yuga-yb-tservers \
--warehouses=10 \
--loaderthreads 20
./tpccbenchmark --execute=true \
--nodes=yuga-yb-tservers \
--warehouses=10
```
### YugabyteDB workload generator
[YugabyteDB workload generator](https://github.com/Yugabyte/yb-sample-apps) emulates various workloads against YugabyteDB.
Help
```
cd /opt/yugabyte-workload-gen
java -jar yb-sample-apps.jar
```
Example of use
```
cd /opt/yugabyte-workload-gen
java -jar yb-sample-apps.jar \
--workload SqlInserts \
--nodes yugabyte-tservers-ip:5433 \
--nouuid \
--value_size 256 \
--num_threads_read 16 \
--num_threads_write 4 \
--num_unique_keys 10000000
```