All the following tests were carried out using the YugabyteDB provided TPC-C workload test tool. TPC-C is a standard Online Transaction Processing (OLTP) workload simulating a business environment. This workload helps both measure the transaction rate level of a given configuration and generate read and write I/Os to the PowerFlex storage.
The TPC-C workload clients were run from client VMs which were hosted on a separate ESXi host. This is a common practice when running performance tests so the workload clients, which simulate the users, are not taking memory and CPU resources from the database cluster nodes.
The results of the tests are measured in transactions per minute, known as TPM-C. TPM-C measures the number of order transactions per minute.
For more information about the TPC-C workload, see Overview of the TPC-C Benchmark and Benchmark YSQL performance using TPC-C.
Different memory and CPU resource configurations for the database nodes were used in the performance tests to arrive at a configuration which would demonstrate the YugabyteDB database ability to handle high transaction rates and generate both read and write I/Os to the PowerFlex storage layer.
Although providing large RAM to each cluster node causes the dataset to be fully cached, no read I/Os to storage (all reads are satisfied from database or filesystem cache), and in essence provide the best transaction rate, this was not our goal. Instead, a more realistic environment was simulated, where database capacity often grows larger than the RAM available on the nodes.
For this test environment, by reducing the available RAM in the YugabyteDB cluster nodes, we could see both read and write I/Os going to the PowerFlex storage layer. Similarly, the number of CPU cores were increased on each VM as this workload demanded a high level of CPU utilization. The following figure shows a test setup: