11.2. Tuning Presto

The default Presto settings should work well for most workloads. The following information may help you if your cluster is facing a specific performance problem.

When setting up a cluster for a specific workload it may be necessary to adjust the following properties to ensure optimal performance:

Those and other Presto properties are described in properties article.

As an example, on a 11-node cluster dedicated to Presto (1 Coordinator + 10 Workers) with 8-core CPU and 128GB of RAM per node, you might want to start tuning with following values:

  • query.max-memory = 200GB
  • query.max-memory-per-node = 32GB
  • query.initial-hash-partitions = 10
  • task.concurrency = 8

JVM Settings

The following can be helpful for diagnosing GC issues:

-XX:+PrintGCApplicationConcurrentTime
-XX:+PrintGCApplicationStoppedTime
-XX:+PrintGCCause
-XX:+PrintGCDateStamps
-XX:+PrintGCTimeStamps
-XX:+PrintGCDetails
-XX:+PrintReferenceGC
-XX:+PrintClassHistogramAfterFullGC
-XX:+PrintClassHistogramBeforeFullGC
-XX:PrintFLSStatistics=2
-XX:+PrintAdaptiveSizePolicy
-XX:+PrintSafepointStatistics
-XX:PrintSafepointStatisticsCount=1