> For the complete documentation index, see [llms.txt](https://mariadb.com/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://mariadb.com/docs/gridgain/gridgain-8/tuning-and-troubleshooting/performance-tuning.md).

# Performance Tuning

Tuning GridGain 8 for throughput and latency: general practices, memory and JVM, persistence, SQL, memory quotas, and thread pools.

Practical guidance for getting the most out of a GridGain 8 cluster. Work through the areas relevant to your workload — most deployments benefit from general and JVM tuning first, then storage and query tuning as specific bottlenecks appear.

{% columns %}
{% column %}
{% content-ref url="/pages/pkmoBZ5nDnifjN8zmyqt" %}
[Performance and Tuning](/docs/gridgain/gridgain-8/tuning-and-troubleshooting/performance-tuning/general-tips.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Basic and advanced performance-tuning practices for GridGain, including recommended high-performance settings, JVM options, ulimits, and OS tuning.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/4Yi9gR0A6UE2z6jZXUcD" %}
[Memory and JVM Tuning](/docs/gridgain/gridgain-8/tuning-and-troubleshooting/performance-tuning/memory-and-jvm-tuning.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Best practices for memory, JVM, and garbage-collection tuning in GridGain deployments, with and without native persistence or external storage.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/4CtHTiwkU6iEf0OrnY6x" %}
[Persistence Tuning](/docs/gridgain/gridgain-8/tuning-and-troubleshooting/performance-tuning/persistence-tuning.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Best practices for tuning GridGain native persistence, including page size, WAL configuration, checkpointing, write throttling, and Direct I/O.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/c5Si1bQRH6XylZ5NAjHx" %}
[SQL Tuning](/docs/gridgain/gridgain-8/tuning-and-troubleshooting/performance-tuning/sql-tuning.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Basic and advanced optimization techniques for GridGain SQL queries, including EXPLAIN, join order, index inline size, query parallelism, and partition pruning.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/g7wo6o2o6K3rpFlgFX7n" %}
[SQL Statistics](/docs/gridgain/gridgain-8/tuning-and-troubleshooting/performance-tuning/sql-statistics.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
How GridGain collects and uses SQL statistics to build optimal query plans, including configuration, overriding, and obsolescence tracking.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/rND3CU5FFPA8adnHncvh" %}
[SQL Memory Management](/docs/gridgain/gridgain-8/tuning-and-troubleshooting/performance-tuning/sql-memory-management.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
How memory quotas prevent GridGain nodes from running out of memory when SQL queries return large result sets, including global and per-query quotas and offloading.
{% endcolumn %}
{% endcolumns %}

{% columns %}
{% column %}
{% content-ref url="/pages/hpUTXelNsvN8tFYy0d85" %}
[Thread Pools Tuning](/docs/gridgain/gridgain-8/tuning-and-troubleshooting/performance-tuning/thread-pools-tuning.md)
{% endcontent-ref %}
{% endcolumn %}

{% column %}
Overview of the internal thread pools GridGain maintains, how to size them, and how to create a custom thread pool for compute tasks.
{% endcolumn %}
{% endcolumns %}
