README.provisioning-parameters.md
Keycloak Performance Testsuite - Provisioning Parameters
Keycloak Server Settings:
| Category | Setting | Property | Default value |
|-------------|-------------------------------|------------------------------------|------------------------------------------------------------------|
| JVM | Memory settings | keycloak.jvm.memory
| -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m |
| Undertow | HTTP Listener max connections | keycloak.http.max-connections
| 500 |
| | AJP Listener max connections | keycloak.ajp.max-connections
| 500 |
| IO | Worker IO thread pool | keycloak.worker.io-threads
| 2 |
| | Worker Task thread pool | keycloak.worker.task-max-threads
| 16 |
| Datasources | Connection pool min size | keycloak.ds.min-pool-size
| 10 |
| | Connection pool max size | keycloak.ds.max-pool-size
| 100 |
| | Connection pool prefill | keycloak.ds.pool-prefill
| true |
| | Prepared statement cache size | keycloak.ds.ps-cache-size
| 100 |
Load Balancer Settings:
| Category | Setting | Property | Default value |
|-------------|-------------------------------|---------------------------------------|------------------------------------------------------------------|
| JVM | Memory settings | keycloak-lb.jvm.memory
| -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m |
| Undertow | HTTP Listener max connections | keycloak-lb.http.max-connections
| 500 |
| IO | Worker IO thread pool | keycloak-lb.worker.io-threads
| 2 |
| | Worker Task thread pool | keycloak-lb.worker.task-max-threads
| 16 |
Infinispan Server Settings
| Category | Setting | Property | Default value |
|-------------|-------------------------------|-------------------------|-----------------------------------------------------------------------------------------|
| JVM | Memory settings | infinispan.jvm.memory
| -Xms64m -Xmx512m -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m -XX:+DisableExplicitGC |
CPUs
At the moment it is not possible to dynamically parametrize the number of CPUs for a service via Maven properties or environment variables.
To change the default value (cpus: 1
) it is necessary to edit the Docker Compose file.
Example: Keycloak service using 2 CPU cores
docker-compose.yml
and docker-compose-cluster.yml
:
services:
...
keycloak:
...
cpus: 2
...
docker-compose-crossdc.yml
:
services:
...
keycloak_dc1:
...
cpus: 2
...
keycloak_dc2:
...
cpus: 2
...