Stack Sizer

Size a self-hosted stack from official sources.

Apps

Pick one or more apps. Only published profiles can be sized.

Load and options

Keycloak

v1.0.0
Load

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
LineFromvCPURAM (GiB)Disk (GiB)Sources
KeycloakKeycloak server · Medium load2.252112345
KeycloakPostgreSQL · Medium load116.56789101112121314
System baselineOperating system, Container runtime (Docker Engine, containerd), System logs (journald), plus logs for 2 containers0.11.258.2151617181920
Safety headroomvCPU 20%, RAM 20%, disk 15% of apps + baseline0.670.852.3552116221923
Recommended total4.025.118.055
Sources
  1. 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)
  2. 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)
  3. 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)
  4. 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)
  5. 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)
  6. PostgreSQL 18 documentation: 19.4 Resource Consumption (Keycloak, read 10 Oct 2026)
  7. PostgreSQL 18 documentation: 19.3 Connections and Authentication (Keycloak, read 10 Oct 2026)
  8. PostgreSQL 18 documentation: 19.10 Vacuuming (autovacuum settings) (Keycloak, read 10 Oct 2026)
  9. PostgreSQL 18 documentation: 19.5 Write Ahead Log (max_wal_size) (Keycloak, read 10 Oct 2026)
  10. PostgreSQL 18 documentation: 51.2 How Connections Are Established (Keycloak, read 10 Oct 2026)
  11. Docker Official Image postgres: documentation (docker-library/docs) (Keycloak, read 10 Oct 2026)
  12. Docker Hub: library/postgres tag 18.6 (compressed image sizes) (Keycloak, read 10 Oct 2026)
  13. 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)
  14. 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)
  15. Ubuntu Server: System requirements (Sizing policy, read 10 Oct 2026)
  16. Google Kubernetes Engine: About GKE node sizing (Sizing policy, read 10 Oct 2026)
  17. ANAROQ measurement: dockerd and containerd at rest (Ubuntu 24.04, Docker 29.8.2) (Sizing policy, read 10 Oct 2026)
  18. Docker Community Forums: Docker resource usage & overhead (Sizing policy, read 10 Oct 2026)
  19. journald.conf(5), Ubuntu Manpages (Sizing policy, read 10 Oct 2026)
  20. Docker Docs: Local file logging driver (Sizing policy, read 10 Oct 2026)
  21. AWS Compute Optimizer: Rightsizing recommendation preferences (Sizing policy, read 10 Oct 2026)
  22. Kubernetes: Node-pressure Eviction (Sizing policy, read 10 Oct 2026)
  23. mke2fs(8), Ubuntu Manpages (Sizing policy, read 10 Oct 2026)
Basis
Catalog release
2026.10.10
Sizing policy
2026.10.0
Profile Keycloak
1.0.0

How the numbers are built

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.