Custom scripts are used to execute the TPC-H dataset on services in sequence.

Test optimization

Configurations of services are optimized before tests are performed to ensure that you can complete the performance test.

  • AnalyticDB for MySQL

    Default configurations of AnalyticDB for MySQL are used.

  • MySQL
    • Parameters are configured as the default database parameters in Alibaba Cloud.
    • Some indexes are added to the original MySQL schema. For more information, see MySQL.
  • Presto

    The following execution parameters are optimized:

    task.concurrency=128
    exchange.max-reponse-size=16MB
    query.max-memory-per-node=2GB
    task.max-partial-aggregation-memory=32MB
    exchange.max-buffer-size=128MB
    query.max-total-memory-per-node=4GB
    sink.max-buffer-size=64MB
  • Spark

    The following execution parameters are optimized:

    spark-sql --num-executors 12 
    --executor-cores 3 
    --executor-memory 16G
  • Impala

    disable_pool_mem_limits is set to true to disable the memory limit on Impala.

Test method

Note
  • The dataset is executed two times to perform pretests on each service.
  • After pretests, each service is tested three times consecutively. The final result is the average of the test results.

You can reference the following test script for MySQL to compile other scripts for each service:

while [ $n -lt 23 ]
do
 echo "query ${n} starting"
 time mysql -f tpch <tpch_${n}.sql
 echo "query $n ended!"
 n=`expr ${n} + 1`
done