Kubernetes Sizing Buckets¶
Overview¶
Kubernetes deployments are sized using predefined sizing buckets. These buckets apply to both IFS-hosted and self-hosted deployments and provide a consistent method of determining the infrastructure required to support the expected workload.
The sizing model simplifies deployment planning by mapping workload demand to a known Kubernetes deployment profile, including cluster capacity, application resources, database sizing, and pod allocations. Sizing files are stored in the Helm/ifs-pso-sizing directory of the installer files. All sizing files have auto-scaling enabled.
How to select a bucket¶
Sizing is based on three key metrics:
- Users — maximum concurrent users of the system.
- Resources — total scheduled resources.
- Activities — total scheduled activities managed within PSO.
Use the Capacity limits reference table below to evaluate these metrics. For each one, find the smallest bucket whose limit is still greater than or equal to the required value. The highest of those three buckets becomes the recommended deployment size.
Where M and L variants share the same capacity limits (for example PSO-100-M and PSO-100-L), either satisfies the metric. Choose M or L based on scheduling profile requirements — see M and L deployments below.
Example¶
| Metric | Value | Required bucket |
|---|---|---|
| Users | 150 | PSO-100-M (or PSO-100-L) |
| Resources | 1,100 | PSO-30-M |
| Activities | 9,900 | PSO-15-S |
Since PSO-100-M is the highest requirement, the deployment should be sized as PSO-100-M (or PSO-100-L if Distributed Scheduling is required).
Warning
The PSO-5-XS bucket size is primarily intended for low-scale testing and evaluation purposes. It may not be suitable for production deployments, and a larger bucket size may be required depending on workload and usage patterns.
Sizing bucket names¶
Production sizing files follow the pattern PSO-50-M-PROD. The name segments mean:
- PSO — product name.
- 50 — activity scale for the deployment (50 = 50,000 activities across the whole system, not per dataset).
- M — resource profile for application pods (XS, S, M, or L). This determines per-pod CPU and memory — see Pod resource requirements by tier below. L also enables the Distribution Service (DST).
- PROD / NPROD — production or non-production. Non-production environments are generally smaller and cheaper to run for development and testing.
- HA / UHA — optional availability suffix, for example
PSO-50-M-PROD-HA(High Availability) or Ultra High Availability.
M vs L deployments¶
From PSO-100 upwards, buckets are available in both M and L variants. Capacity limits (users, resources, activities) are identical for a given scale; the difference is the Kubernetes resource profile and application deployment layout used internally.
- Standard PSO deployment — use an M bucket.
- Distributed Scheduling (DST) enabled — use an L bucket.
- Large scheduling datasets requiring DST — use an L bucket.
Interpreting the reference tables¶
The tables below list the current production defaults for each sizing bucket. Use them after selecting a bucket to confirm deployment requirements.
- Capacity limits — use this table to select a bucket from users, resources, and activities. The per-dataset activity limit is 35,000 (L buckets also have DST enabled).
- Database sizes — Azure database guidance for the main PSO database and HTM database at Standard, HA, and UHA availability. Values show recommended compute and memory followed by the Azure SKU.
- Expected node counts — cluster maximum nodes and expected maximum operating nodes per bucket at Standard, HA, and UHA. All sizings assume 8-core, 64 GB AKS nodes. HA doubles cluster capacity to allow for replica instances; UHA uses a tripled system node count to allow for replica instances in the secondary region.
- Application max replicas — maximum pod counts per application at Standard, HA, and UHA, grouped where several applications share the same replica limit. Pod allocation is derived from the selected bucket and is applied automatically at deployment.
- Pod resource requirements by tier — CPU and memory request/limit per application for XS, S, M, and L resource profiles. The selected bucket's suffix (XS/S/M/L) determines which tier applies to each service.
Note
For installation-time sizing selection and environment configuration, see the Installation Guide. For advice on the correct sizing for a specific workload, speak to an IFS consultant.
Capacity limits¶
| Sizing bucket | Max concurrent users | Max resources | Max activities | Max activities per dataset |
|---|---|---|---|---|
| PSO-5-XS | 15 | 250 | 5,000 | 5,000 |
| PSO-15-S | 50 | 750 | 15,000 | 15,000 |
| PSO-30-M | 100 | 1,500 | 30,000 | 30,000 |
| PSO-50-M | 125 | 2,500 | 50,000 | 35,000 |
| PSO-100-M | 250 | 5,000 | 100,000 | 35,000 |
| PSO-100-L | 250 | 5,000 | 100,000 | 35,000 DST enabled |
| PSO-200-M | 500 | 10,000 | 200,000 | 35,000 |
| PSO-200-L | 500 | 10,000 | 200,000 | 35,000 DST enabled |
| PSO-500-M | 1,000 | 25,000 | 500,000 | 35,000 |
| PSO-500-L | 1,000 | 25,000 | 500,000 | 35,000 DST enabled |
| PSO-1000-M | 2,000 | 50,000 | 1,000,000 | 35,000 |
| PSO-1000-L | 2,000 | 50,000 | 1,000,000 | 35,000 DST enabled |
Database sizes¶
Standard¶
| Sizing bucket | Database | HTM database |
|---|---|---|
| PSO-5-XS | 1 core, 8 GB (S1) | 4 cores, 12 GB (GP_S_Gen5_4) |
| PSO-15-S | 1 core, 8 GB (S3) | 4 cores, 12 GB (GP_S_Gen5_4) |
| PSO-30-M | 2 cores, 16 GB (S4) | 6 cores, 18 GB (GP_S_Gen5_6) |
| PSO-50-M | 2 cores, 16 GB (S4) | 6 cores, 18 GB (GP_S_Gen5_6) |
| PSO-100-M | 2 cores, 16 GB (S6) | 6 cores, 18 GB (GP_S_Gen5_6) |
| PSO-100-L | 2 cores, 16 GB (S6) | 6 cores, 18 GB (GP_S_Gen5_6) |
| PSO-200-M | 8 cores, 64 GB (P6) | 8 cores, 24 GB (GP_S_Gen5_8) |
| PSO-200-L | 8 cores, 64 GB (P6) | 8 cores, 24 GB (GP_S_Gen5_8) |
| PSO-500-M | 8 cores, 64 GB (P11) | 16 cores, 48 GB (GP_S_Gen5_16) |
| PSO-500-L | 8 cores, 64 GB (P11) | 16 cores, 48 GB (GP_S_Gen5_16) |
| PSO-1000-M | 16 cores, 128 GB (P15) | 24 cores, 72 GB (GP_S_Gen5_24) |
| PSO-1000-L | 16 cores, 128 GB (P15) | 24 cores, 72 GB (GP_S_Gen5_24) |
HA¶
| Sizing bucket | Database | HTM database |
|---|---|---|
| PSO-5-XS | 1 core, 8 GB (P1) | 4 cores, 12 GB (GP_S_Gen5_4) |
| PSO-15-S | 2 cores, 16 GB (P2) | 6 cores, 18 GB (GP_S_Gen5_6) |
| PSO-30-M | 4 cores, 32 GB (P4) | 8 cores, 24 GB (GP_S_Gen5_8) |
| PSO-50-M | 4 cores, 32 GB (P4) | 8 cores, 24 GB (GP_S_Gen5_8) |
| PSO-100-M | 8 cores, 64 GB (P6) | 8 cores, 24 GB (GP_S_Gen5_8) |
| PSO-100-L | 8 cores, 64 GB (P6) | 8 cores, 24 GB (GP_S_Gen5_8) |
| PSO-200-M | 8 cores, 64 GB (P11) | 12 cores, 36 GB (GP_S_Gen5_12) |
| PSO-200-L | 8 cores, 64 GB (P11) | 12 cores, 36 GB (GP_S_Gen5_12) |
| PSO-500-M | 16 cores, 128 GB (P15) | 20 cores, 60 GB (GP_S_Gen5_20) |
| PSO-500-L | 16 cores, 128 GB (P15) | 20 cores, 60 GB (GP_S_Gen5_20) |
| PSO-1000-M | 40 cores, 208 GB (BC_Gen5_40) | 32 cores, 96 GB (GP_S_Gen5_32) |
| PSO-1000-L | 40 cores, 208 GB (BC_Gen5_40) | 32 cores, 96 GB (GP_S_Gen5_32) |
UHA¶
| Sizing bucket | Database | HTM database |
|---|---|---|
| PSO-5-XS | 2 cores, 16 GB (BC_Gen5_2) | 4 cores, 24 GB (BC_Gen5_4) |
| PSO-15-S | 2 cores, 16 GB (BC_Gen5_2) | 4 cores, 24 GB (BC_Gen5_4) |
| PSO-30-M | 4 cores, 24 GB (BC_Gen5_4) | 8 cores, 48 GB (BC_Gen5_8) |
| PSO-50-M | 4 cores, 24 GB (BC_Gen5_4) | 8 cores, 48 GB (BC_Gen5_8) |
| PSO-100-M | 8 cores, 48 GB (BC_Gen5_8) | 6 cores, 32 GB (BC_Gen5_6) |
| PSO-100-L | 8 cores, 48 GB (BC_Gen5_8) | 6 cores, 32 GB (BC_Gen5_6) |
| PSO-200-M | 18 cores, 96 GB (BC_Gen5_18) | 10 cores, 56 GB (BC_Gen5_10) |
| PSO-200-L | 18 cores, 96 GB (BC_Gen5_18) | 10 cores, 56 GB (BC_Gen5_10) |
| PSO-500-M | 32 cores, 168 GB (BC_Gen5_32) | 20 cores, 104 GB (BC_Gen5_20) |
| PSO-500-L | 32 cores, 168 GB (BC_Gen5_32) | 20 cores, 104 GB (BC_Gen5_20) |
| PSO-1000-M | 80 cores, 416 GB (BC_Gen5_80) | 32 cores, 168 GB (BC_Gen5_32) |
| PSO-1000-L | 80 cores, 416 GB (BC_Gen5_80) | 32 cores, 168 GB (BC_Gen5_32) |
Expected node counts¶
All sizings are calculated on 8 core, 64GB nodes.
Standard¶
| Sizing bucket | Cluster max nodes | Expected max operating nodes |
|---|---|---|
| PSO-5-XS | 2 | 1 |
| PSO-15-S | 3 | 2 |
| PSO-30-M | 4 | 3 |
| PSO-50-M | 7 | 5 |
| PSO-100-M | 12 | 9 |
| PSO-100-L | 13 | 10 |
| PSO-200-M | 23 | 18 |
| PSO-200-L | 25 | 20 |
| PSO-500-M | 50 | 40 |
| PSO-500-L | 60 | 48 |
| PSO-1000-M | 98 | 79 |
| PSO-1000-L | 111 | 89 |
HA¶
| Sizing bucket | Cluster max nodes | Expected max operating nodes |
|---|---|---|
| PSO-5-XS | 4 | 2 |
| PSO-15-S | 6 | 4 |
| PSO-30-M | 8 | 6 |
| PSO-50-M | 14 | 10 |
| PSO-100-M | 24 | 18 |
| PSO-100-L | 26 | 20 |
| PSO-200-M | 46 | 36 |
| PSO-200-L | 50 | 40 |
| PSO-500-M | 100 | 80 |
| PSO-500-L | 120 | 96 |
| PSO-1000-M | 196 | 158 |
| PSO-1000-L | 222 | 178 |
UHA¶
| Sizing bucket | System max nodes | Expected max operating nodes |
|---|---|---|
| PSO-5-XS | 6 | 3 |
| PSO-15-S | 9 | 6 |
| PSO-30-M | 12 | 9 |
| PSO-50-M | 21 | 15 |
| PSO-100-M | 36 | 27 |
| PSO-100-L | 39 | 30 |
| PSO-200-M | 69 | 54 |
| PSO-200-L | 75 | 60 |
| PSO-500-M | 150 | 120 |
| PSO-500-L | 180 | 144 |
| PSO-1000-M | 294 | 237 |
| PSO-1000-L | 333 | 267 |
Application max replicas¶
Standard¶
| Sizing bucket | Max replicas |
|---|---|
| PSO-5-XS | 2 — GWY, PSW, SIM, SMM, SQM, SRG 1 — ABE, ADM, ARC, DSE, DSP, RPL, SBM, SES, SML, TRA 0 — DST |
| PSO-15-S | 2 — GWY, PSW, SIM, SMM, SQM, SRG 1 — ABE, ADM, ARC, DSE, DSP, RPL, SBM, SES, SML, TRA 0 — DST |
| PSO-30-M | 2 — GWY, PSW, SIM, SMM, SQM, SRG 1 — ABE, ADM, ARC, DSE, DSP, RPL, SBM, SES, SML, TRA 0 — DST |
| PSO-50-M | 3 — PSW, SQM 2 — ABE, ARC, DSE, DSP, GWY, SBM, SIM, SMM, SRG 1 — ADM, RPL, SES, SML, TRA 0 — DST |
| PSO-100-M | 5 — PSW, SQM 4 — ABE, ARC, DSE, DSP, SBM, SES 3 — GWY, RPL, SIM, SRG 2 — ADM, SMM, TRA 1 — SML 0 — DST |
| PSO-100-L | 5 — DSE, PSW, SQM 3 — GWY, SIM, SRG 2 — ADM, SMM, TRA 1 — ABE, ARC, DSP, DST, RPL, SBM, SES, SML |
| PSO-200-M | 10 — PSW, SQM 8 — ABE, ARC, DSE, DSP, SBM, SES 6 — GWY, SIM, SRG 3 — RPL, TRA 2 — ADM, SMM 1 — SML 0 — DST |
| PSO-200-L | 10 — DSE, PSW, SQM 6 — GWY, SIM, SRG 3 — TRA 2 — ABE, ADM, ARC, DSP, DST, RPL, SBM, SES, SMM 1 — SML |
| PSO-500-M | 20 — ABE, ARC, DSE, DSP, PSW, SBM, SES, SQM 12 — GWY, SIM, SRG 6 — RPL 5 — TRA 3 — ADM 2 — SMM 1 — SML 0 — DST |
| PSO-500-L | 20 — DSE, PSW, SBM, SES, SQM 12 — GWY, SIM, SRG 10 — ABE, ARC, DSP, DST 6 — RPL 5 — TRA 3 — ADM 2 — SMM 1 — SML |
| PSO-1000-M | 40 — ABE, ARC, DSE, DSP, PSW, SBM, SES, SQM 20 — GWY, SIM, SRG 10 — RPL, TRA 5 — ADM, SML 2 — SMM 0 — DST |
| PSO-1000-L | 40 — DSE, PSW, SQM 20 — ABE, ARC, DSP, DST, GWY, SBM, SES, SIM, SRG 10 — RPL, TRA 5 — ADM, SML 2 — SMM |
HA¶
| Sizing bucket | Max replicas |
|---|---|
| PSO-5-XS | 4 — SQM 2 — ABE, ADM, ARC, DSE, DSP, GWY, PSW, RPL, SBM, SES, SIM, SML, SMM, SRG, TRA 0 — DST |
| PSO-15-S | 4 — SQM 2 — ABE, ADM, ARC, DSE, DSP, GWY, PSW, RPL, SBM, SES, SIM, SML, SMM, SRG, TRA 0 — DST |
| PSO-30-M | 4 — SQM 2 — ABE, ADM, ARC, DSE, DSP, GWY, PSW, RPL, SBM, SES, SIM, SML, SMM, SRG, TRA 0 — DST |
| PSO-50-M | 6 — SQM 4 — ABE, ARC, DSE, DSP, SBM 3 — PSW 2 — ADM, GWY, RPL, SES, SIM, SML, SMM, SRG, TRA 0 — DST |
| PSO-100-M | 10 — SQM 8 — ABE, ARC, DSE, DSP, SBM, SES 6 — RPL 5 — PSW 4 — ADM, TRA 3 — GWY, SIM, SRG 2 — SML, SMM 0 — DST |
| PSO-100-L | 10 — DSE, SQM 5 — PSW 4 — ADM, TRA 3 — GWY, SIM, SRG 2 — ABE, ARC, DSP, DST, RPL, SBM, SES, SML, SMM |
| PSO-200-M | 20 — SQM 16 — ABE, ARC, DSE, DSP, SBM, SES 10 — PSW 6 — GWY, RPL, SIM, SRG, TRA 4 — ADM 2 — SML, SMM 0 — DST |
| PSO-200-L | 20 — DSE, SQM 10 — PSW 6 — GWY, SIM, SRG, TRA 4 — ABE, ADM, ARC, DSP, DST, RPL, SBM, SES 2 — SML, SMM |
| PSO-500-M | 40 — ABE, ARC, DSE, DSP, SBM, SES, SQM 20 — PSW 12 — GWY, RPL, SIM, SRG 10 — TRA 6 — ADM 2 — SML, SMM 0 — DST |
| PSO-500-L | 40 — DSE, SBM, SES, SQM 20 — ABE, ARC, DSP, DST, PSW 12 — GWY, RPL, SIM, SRG 10 — TRA 6 — ADM 2 — SML, SMM |
| PSO-1000-M | 80 — ABE, ARC, DSE, DSP, SBM, SES, SQM 40 — PSW 20 — GWY, RPL, SIM, SRG, TRA 10 — ADM, SML 2 — SMM 0 — DST |
| PSO-1000-L | 80 — DSE, SQM 40 — ABE, ARC, DSP, DST, PSW, SBM, SES 20 — GWY, RPL, SIM, SRG, TRA 10 — ADM, SML 2 — SMM |
UHA¶
| Sizing bucket | Max replicas |
|---|---|
| PSO-5-XS | 4 — SQM 3 — ADM, ARC, GWY, PSW, RPL, SBM, SIM, SML, SMM, SRG 2 — ABE, DSE, DSP, SES, TRA 0 — DST |
| PSO-15-S | 4 — SQM 3 — ADM, ARC, GWY, PSW, RPL, SBM, SIM, SML, SMM, SRG 2 — ABE, DSE, DSP, SES, TRA 0 — DST |
| PSO-30-M | 4 — SQM 3 — ADM, ARC, GWY, PSW, RPL, SBM, SIM, SML, SMM, SRG 2 — ABE, DSE, DSP, SES, TRA 0 — DST |
| PSO-50-M | 6 — SQM 4 — ABE, ARC, DSE, DSP, SBM 3 — ADM, GWY, PSW, RPL, SIM, SML, SMM, SRG 2 — SES, TRA 0 — DST |
| PSO-100-M | 10 — SQM 8 — ABE, ARC, DSE, DSP, SBM, SES 6 — RPL 5 — PSW 4 — ADM, TRA 3 — GWY, SIM, SML, SMM, SRG 0 — DST |
| PSO-100-L | 10 — DSE, SQM 5 — PSW 4 — ADM, TRA 3 — ARC, GWY, RPL, SBM, SIM, SML, SMM, SRG 2 — ABE, DSP, DST, SES |
| PSO-200-M | 20 — SQM 16 — ABE, ARC, DSE, DSP, SBM, SES 10 — PSW 6 — GWY, RPL, SIM, SRG, TRA 4 — ADM 3 — SML, SMM 0 — DST |
| PSO-200-L | 20 — DSE, SQM 10 — PSW 6 — GWY, SIM, SRG, TRA 4 — ABE, ADM, ARC, DSP, DST, RPL, SBM, SES 3 — SML, SMM |
| PSO-500-M | 40 — ABE, ARC, DSE, DSP, SBM, SES, SQM 20 — PSW 12 — GWY, RPL, SIM, SRG 10 — TRA 6 — ADM 3 — SML, SMM 0 — DST |
| PSO-500-L | 40 — DSE, SBM, SES, SQM 20 — ABE, ARC, DSP, DST, PSW 12 — GWY, RPL, SIM, SRG 10 — TRA 6 — ADM 3 — SML, SMM |
| PSO-1000-M | 80 — ABE, ARC, DSE, DSP, SBM, SES, SQM 40 — PSW 20 — GWY, RPL, SIM, SRG, TRA 10 — ADM, SML 3 — SMM 0 — DST |
| PSO-1000-L | 80 — DSE, SQM 40 — ABE, ARC, DSP, DST, PSW, SBM, SES 20 — GWY, RPL, SIM, SRG, TRA 10 — ADM, SML 3 — SMM |
Pod resource requirements by tier¶
Resources: XS¶
| Application | Request CPU | Limit CPU | Request memory (MB) |
|---|---|---|---|
| ABE | 0.5 | 2 | 1024 |
| ADM | 0.1 | 2 | 512 |
| ARC | 0.2 | 2 | 1024 |
| DSE | 1 | 8 | 2048 |
| DSP | 0.1 | 2 | 1024 |
| DST | 0.1 | 2 | 1024 |
| GWY | 0.1 | 2 | 1024 |
| PSW | 0.5 | 2 | 1024 |
| RPL | 0.1 | 2 | 1024 |
| SBM | 0.1 | 2 | 1024 |
| SES | 0.1 | 2 | 1024 |
| SIM | 0.1 | 2 | 1024 |
| SML | 0.1 | 2 | 1024 |
| SMM | 0.05 | 2 | 512 |
| SQM | 0.5 | 2 | 1024 |
| SRG | 0.1 | 2 | 1024 |
| TRA | 0.25 | 8 | 4096 |
Resources: S¶
| Application | Request CPU | Limit CPU | Request memory (MB) |
|---|---|---|---|
| ABE | 2 | 3 | 8192 |
| ADM | 0.1 | 2 | 1024 |
| ARC | 0.2 | 2 | 4096 |
| DSE | 3.5 | 8 | 8192 |
| DSP | 0.1 | 2 | 4096 |
| DST | 0.25 | 2 | 4096 |
| GWY | 0.25 | 2 | 4096 |
| PSW | 0.8 | 2 | 4096 |
| RPL | 0.1 | 2 | 4096 |
| SBM | 0.25 | 2 | 4096 |
| SES | 0.1 | 2 | 4096 |
| SIM | 0.25 | 2 | 4096 |
| SML | 0.1 | 2 | 2048 |
| SMM | 0.05 | 2 | 512 |
| SQM | 0.8 | 4 | 8192 |
| SRG | 0.25 | 2 | 4096 |
| TRA | 1.1 | 8 | 10240 |
Resources: M¶
| Application | Request CPU | Limit CPU | Request memory (MB) |
|---|---|---|---|
| ABE | 3 | 4 | 12288 |
| ADM | 0.1 | 2 | 1536 |
| ARC | 0.2 | 2 | 6144 |
| DSE | 3.5 | 8 | 12288 |
| DSP | 0.1 | 2 | 6144 |
| DST | 0.25 | 2 | 6144 |
| GWY | 0.25 | 2 | 6144 |
| PSW | 0.8 | 2 | 6144 |
| RPL | 0.1 | 2 | 6144 |
| SBM | 0.25 | 2 | 6144 |
| SES | 0.1 | 2 | 6144 |
| SIM | 0.25 | 2 | 6144 |
| SML | 0.1 | 2 | 3072 |
| SMM | 0.05 | 2 | 512 |
| SQM | 3 | 8 | 20480 |
| SRG | 0.25 | 2 | 6144 |
| TRA | 1.1 | 8 | 20480 |
Resources: L¶
| Application | Request CPU | Limit CPU | Request memory (MB) |
|---|---|---|---|
| ABE | 3 | 4 | 20480 |
| ADM | 0.1 | 2 | 2048 |
| ARC | 0.2 | 2 | 10240 |
| DSE | 3.5 | 8 | 12288 |
| DSP | 0.1 | 2 | 10240 |
| DST | 0.25 | 2 | 10240 |
| GWY | 0.25 | 2 | 10240 |
| PSW | 0.8 | 2 | 10240 |
| RPL | 0.1 | 2 | 8192 |
| SBM | 0.25 | 2 | 10240 |
| SES | 0.1 | 2 | 10240 |
| SIM | 0.25 | 2 | 10240 |
| SML | 0.1 | 2 | 4096 |
| SMM | 0.05 | 2 | 512 |
| SQM | 4 | 8 | 28672 |
| SRG | 0.25 | 2 | 10240 |
| TRA | 1.1 | 8 | 20480 |