2017-07-13 18:25:26 +00:00
|
|
|
# Keycloak Performance Testsuite - Provisioning Parameters
|
|
|
|
|
|
|
|
## Keycloak Server Settings:
|
|
|
|
|
|
|
|
| Category | Setting | Property | Default value |
|
|
|
|
|-------------|-------------------------------|------------------------------------|------------------------------------------------------------------|
|
2017-09-29 12:00:20 +00:00
|
|
|
| JVM | Memory settings | `keycloak.jvm.memory` | -Xms64m -Xmx2g -XX:MetaspaceSize=96M -XX:MaxMetaspaceSize=256m |
|
2017-07-13 18:25:26 +00:00
|
|
|
| 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 |
|
|
|
|
|
2017-09-29 12:00:20 +00:00
|
|
|
## Docker settings
|
|
|
|
|
|
|
|
By default, there are 4 CPU cores allocated: core 0 for monitoring, core 1 for database (MariaDB), and cores 2 and 3 for Keycloak server.
|
|
|
|
Default memory limits for database and Keycloak server are 2g. The `cpuset` and `memlimit` parameters set here are set to `cpuset` and
|
|
|
|
`mem_limit` parameters of docker-compose configuration. See docker-compose documentation for meaning of the values. How to set the parameters
|
|
|
|
correctly depends on number of factors - number of cpu cores, NUMA, available memory etc., hence it is out of scope of this document.
|
|
|
|
|
|
|
|
| Container | Setting | Property | Default value |
|
|
|
|
|-------------|-------------------------------|---------------------------------|-------------------------------------------------------|
|
|
|
|
| Keycloak | Allocated CPUs | `keycloak.docker.cpuset` | 2-3 |
|
|
|
|
| | Allocated CPUs for DC1 | `keycloak.dc1.docker.cpuset` | 2-3 |
|
|
|
|
| | Allocated CPUs for DC2 | `keycloak.dc2.docker.cpuset` | 2-3 |
|
|
|
|
| | Available memory | `keycloak.docker.memlimit` | 2g |
|
|
|
|
| MariaDB | Allocated CPUs | `db.docker.cpuset` | 1 |
|
|
|
|
| | Available memory | `db.docker.memlimit` | 2g |
|
|
|
|
| Monitoring | Allocated CPUs | `monitoring.docker.cpuset` | 0 |
|
|
|
|
|