Stack Sizer
Size a self-hosted stack from official sources.
Load and options
Keycloak
v1.0.0Load
Up to 10,000 users; peaks of 6 password logins, 48 token refreshes and 12 client credential grants a second.
Options
No options change this app's resources.
Recommended resources
App requirements + system baseline + safety headroom. Nothing else is added, and nothing is rounded to a machine size.
vCPU 4.02, RAM 5.1 GiB, Disk 18.055 GiB
vCPU4.02
RAM5.1GiB
Disk18.055GiB
Breakdown
| Line | From | vCPU | RAM (GiB) | Disk (GiB) | Sources |
|---|---|---|---|---|---|
| Keycloak | Keycloak server · Medium load | 2.25 | 2 | 1 | 12345 |
| Keycloak | PostgreSQL · Medium load | 1 | 1 | 6.5 | 6789101112121314 |
| System baseline | Operating system, Container runtime (Docker Engine, containerd), System logs (journald), plus logs for 2 containers | 0.1 | 1.25 | 8.2 | 151617181920 |
| Safety headroom | vCPU 20%, RAM 20%, disk 15% of apps + baseline | 0.67 | 0.85 | 2.355 | 2116221923 |
| Recommended total | 4.02 | 5.1 | 18.055 |
Sources
- Keycloak Docs: Concepts for sizing CPU and memory (1250 MB base; 1 vCPU per 15 password logins/s, per 120 refreshes/s, per 120 client credential grants/s; 150% CPU headroom) (Keycloak, read 14 Oct 2026)
- keycloak repository: perf_recommendations.adoc at 26.8.1 (database: 1400 write IOPS and 0.35 to 0.7 vCPU per 100 login/logout/refresh per second; idle 0.3 vCPU) (Keycloak, read 14 Oct 2026)
- Keycloak Docs: Running Keycloak in a container (plain start re-runs the build at every start; KC_BOOTSTRAP_ADMIN_*; heap 70% of the memory limit, 2 GB recommended for small production) (Keycloak, read 14 Oct 2026)
- keycloak repository: kc.sh at 26.8.1 (in a container, JAVA_OPTS_KC_HEAP defaults to MaxRAMPercentage=70 and InitialRAMPercentage=50; a set value replaces it) (Keycloak, read 14 Oct 2026)
- Quay manifest of quay.io/keycloak/keycloak:26.8.1 (linux/amd64): 4 layers, 265,677,312 B compressed; config User 1000, no Healthcheck (Keycloak, read 14 Oct 2026)
- PostgreSQL 18 documentation: 19.4 Resource Consumption (Keycloak, read 10 Oct 2026)
- PostgreSQL 18 documentation: 19.3 Connections and Authentication (Keycloak, read 10 Oct 2026)
- PostgreSQL 18 documentation: 19.10 Vacuuming (autovacuum settings) (Keycloak, read 10 Oct 2026)
- PostgreSQL 18 documentation: 19.5 Write Ahead Log (max_wal_size) (Keycloak, read 10 Oct 2026)
- PostgreSQL 18 documentation: 51.2 How Connections Are Established (Keycloak, read 10 Oct 2026)
- Docker Official Image postgres: documentation (docker-library/docs) (Keycloak, read 10 Oct 2026)
- Docker Hub: library/postgres tag 18.6 (compressed image sizes) (Keycloak, read 10 Oct 2026)
- Keycloak Docs: Configuring the database (PostgreSQL 18.x to 14.x supported, tested with 18; db-url, db-username, db-password; connection pool) (Keycloak, read 14 Oct 2026)
- Keycloak Docs: All configuration (bootstrap-admin-username temp-admin, db-pool-max-size 100, http-enabled false, cache ispn, health-enabled false, management port 9000) (Keycloak, read 14 Oct 2026)
- Ubuntu Server: System requirements (Sizing policy, read 10 Oct 2026)
- Google Kubernetes Engine: About GKE node sizing (Sizing policy, read 10 Oct 2026)
- ANAROQ measurement: dockerd and containerd at rest (Ubuntu 24.04, Docker 29.8.2) (Sizing policy, read 10 Oct 2026)
- Docker Community Forums: Docker resource usage & overhead (Sizing policy, read 10 Oct 2026)
- journald.conf(5), Ubuntu Manpages (Sizing policy, read 10 Oct 2026)
- Docker Docs: Local file logging driver (Sizing policy, read 10 Oct 2026)
- AWS Compute Optimizer: Rightsizing recommendation preferences (Sizing policy, read 10 Oct 2026)
- Kubernetes: Node-pressure Eviction (Sizing policy, read 10 Oct 2026)
- mke2fs(8), Ubuntu Manpages (Sizing policy, read 10 Oct 2026)
Deployment Spec
Turn this result into a link you can keep or share. Everything is in the link; nothing is sent to us.
A short lowercase image id, for example ubuntu-24.04.