Pythian Blog: Technical Track

Benchmarking Google Cloud SQL instances

Google Cloud SQL is a fully managed database service that makes it easy to set-up, maintain, manage, and administer your relational MySQL databases in the cloud. Cloud SQL allows you to focus on your applications rather than administering your databases. Hosted on Google Cloud Platform, Cloud SQL provides a database infrastructure for applications running anywhere. To evaluate the performance of Google’s Cloud SQL Instances, we ran the tpcc-mysql benchmarking utility with a scale factor of 500 warehouses. The purpose of running tpcc-mysql on each system was to determine the throughput of each instance under varying loads (number of connections or threads). While the benchmark tests were being run, we took regular snapshots of the following data using MySQL Workbench.
  • Number of select transactions executed per second
  • Number of insert transactions executed per second
  • Number of update transactions executed per second
  • InnoDB Disk Reads – MB/s
  • InnoDB Disk Reads – MB/s

Testing Methodology

Following is the methodology used for performing the tpcc benchmarks:
    1. All the testing was done with the tpcc-mysql package, with a scale factor of 500 Warehouses.
    2. All testing was done using a Google Compute VM
      • Ubuntu 15.04 machine
      • Specifications: n1-standard-4 - 4 vCPU, 15 GB Memory
      • Zone: us-central1-a
    3. Following Cloud SQL instances were bench-marked:
Cloud SQL Instance Cloud SQL Instance Type Zone Memory
D8 Standard instances us-central1-a 4G
D16 Standard instances us-central1-a 8G
D32 Standard instances us-central1-a 16G
db-n1-standard-4 Performance instances - Standard us-central1-a 15G
db-n1-standard-8 Performance instances - Standard us-central1-a 30G
db-n1-standard-16 Performance instances - Standard us-central1-a 60G
db-n1-highmem-2 Performance instances - Hi Memory us-central1-a 13G
db-n1-highmem-4 Performance instances - Hi Memory us-central1-a 26G
db-n1-highmem-8 Performance instances - Hi Memory us-central1-a 52G
db-n1-highmem-16 Performance instances - Hi Memory us-central1-a 104G
  1. We used 100, 200, 300 and 400 concurrent user sessions (threads).
  2. We used a scale factor of 500 warehouses which roughly transforms to 50 GB data in the database.
  3. We performed four iterations of tests per instance by varying the number of connections (threads) per run. Tests were performed using the 100, 200, 300 and 400 threads.
  4. For each set of user sessions, we performed a half hour-long run, gathering data for new order transactions every 10 seconds.
  5. Following data was gathered:
    • Throughout expressed as tpm-C - Orders Processed per Minute
    • Number of select transactions executed per second
    • Number of insert transactions executed per second
    • Number of update transactions executed per second
    • InnoDB Disk Reads – MB/s
    • InnoDB Disk Reads – MB/s

Benchmarking Results - DML Transactions Per Minute

The following graph represents the transactions for each instance under varying loads for SELECT transactions.
  • For 100, 200 and 300 threads db-n1-highmem-16 outperformed the rest by a large margin
  • For 400 threads db-n1-highmem-8 and db-n1-highmem-16 performed the similar
  • db-n1-standard-8 and db-n1-standard-16 performed the same for all thread counts
  • Rest of the instances performed similarly
The following graph represents the transactions for each instance under varying loads for INSERT transactions.
  • For 100, 200 and 300 threads db-n1-highmem-16 outperformed the rest by a large margin
  • For 400 threads db-n1-highmem-8 and db-n1-highmem-16 performed same
  • db-n1-himem-4, db-n1-standard-8 and db-n1-standard-16 performed the same for all thread counts
  • Rest of the instances performed similarly
The following graph represents the transactions for each instance under varying loads for UPDATE transactions.
  • For 100, 200 and 300 threads db-n1-highmem-16 outperformed the rest by a large margin
  • db-n1-standard-8 and db-n1-standard-16 performed the same for all thread counts
  • Rest of the instances performed similarly

Conclusion

The following graph represents the overall throughput of all instances under varying loads. A few notable conclusions follow.
  • The greatest throughput was achieved at 100 threads
  • db-n1-standard-16 (60G) performed very close to db-n1-himem-16 (104G).
  • db-n1-himem-8 (52G) performance was appreciably lower than db-n1-standard-16 (60G)
  • Google Cloud SQL High Performance instances performed significantly better than currently being offered Google Cloud SQL Standard Class Instances by a scale of 100-200%
Want to learn more? Schedule an assessment with one of our cloud experts.

No Comments Yet

Let us know what you think

Subscribe by email