Skip to content

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

MetricValueRequired bucket
Users150PSO-100-M (or PSO-100-L)
Resources1,100PSO-30-M
Activities9,900PSO-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 bucketMax concurrent usersMax resourcesMax activitiesMax activities per dataset
PSO-5-XS152505,0005,000
PSO-15-S5075015,00015,000
PSO-30-M1001,50030,00030,000
PSO-50-M1252,50050,00035,000
PSO-100-M2505,000100,00035,000
PSO-100-L2505,000100,00035,000
DST enabled
PSO-200-M50010,000200,00035,000
PSO-200-L50010,000200,00035,000
DST enabled
PSO-500-M1,00025,000500,00035,000
PSO-500-L1,00025,000500,00035,000
DST enabled
PSO-1000-M2,00050,0001,000,00035,000
PSO-1000-L2,00050,0001,000,00035,000
DST enabled

Database sizes

Standard

Sizing bucketDatabaseHTM database
PSO-5-XS1 core, 8 GB (S1)4 cores, 12 GB (GP_S_Gen5_4)
PSO-15-S1 core, 8 GB (S3)4 cores, 12 GB (GP_S_Gen5_4)
PSO-30-M2 cores, 16 GB (S4)6 cores, 18 GB (GP_S_Gen5_6)
PSO-50-M2 cores, 16 GB (S4)6 cores, 18 GB (GP_S_Gen5_6)
PSO-100-M2 cores, 16 GB (S6)6 cores, 18 GB (GP_S_Gen5_6)
PSO-100-L2 cores, 16 GB (S6)6 cores, 18 GB (GP_S_Gen5_6)
PSO-200-M8 cores, 64 GB (P6)8 cores, 24 GB (GP_S_Gen5_8)
PSO-200-L8 cores, 64 GB (P6)8 cores, 24 GB (GP_S_Gen5_8)
PSO-500-M8 cores, 64 GB (P11)16 cores, 48 GB (GP_S_Gen5_16)
PSO-500-L8 cores, 64 GB (P11)16 cores, 48 GB (GP_S_Gen5_16)
PSO-1000-M16 cores, 128 GB (P15)24 cores, 72 GB (GP_S_Gen5_24)
PSO-1000-L16 cores, 128 GB (P15)24 cores, 72 GB (GP_S_Gen5_24)

HA

Sizing bucketDatabaseHTM database
PSO-5-XS1 core, 8 GB (P1)4 cores, 12 GB (GP_S_Gen5_4)
PSO-15-S2 cores, 16 GB (P2)6 cores, 18 GB (GP_S_Gen5_6)
PSO-30-M4 cores, 32 GB (P4)8 cores, 24 GB (GP_S_Gen5_8)
PSO-50-M4 cores, 32 GB (P4)8 cores, 24 GB (GP_S_Gen5_8)
PSO-100-M8 cores, 64 GB (P6)8 cores, 24 GB (GP_S_Gen5_8)
PSO-100-L8 cores, 64 GB (P6)8 cores, 24 GB (GP_S_Gen5_8)
PSO-200-M8 cores, 64 GB (P11)12 cores, 36 GB (GP_S_Gen5_12)
PSO-200-L8 cores, 64 GB (P11)12 cores, 36 GB (GP_S_Gen5_12)
PSO-500-M16 cores, 128 GB (P15)20 cores, 60 GB (GP_S_Gen5_20)
PSO-500-L16 cores, 128 GB (P15)20 cores, 60 GB (GP_S_Gen5_20)
PSO-1000-M40 cores, 208 GB (BC_Gen5_40)32 cores, 96 GB (GP_S_Gen5_32)
PSO-1000-L40 cores, 208 GB (BC_Gen5_40)32 cores, 96 GB (GP_S_Gen5_32)

UHA

Sizing bucketDatabaseHTM database
PSO-5-XS2 cores, 16 GB (BC_Gen5_2)4 cores, 24 GB (BC_Gen5_4)
PSO-15-S2 cores, 16 GB (BC_Gen5_2)4 cores, 24 GB (BC_Gen5_4)
PSO-30-M4 cores, 24 GB (BC_Gen5_4)8 cores, 48 GB (BC_Gen5_8)
PSO-50-M4 cores, 24 GB (BC_Gen5_4)8 cores, 48 GB (BC_Gen5_8)
PSO-100-M8 cores, 48 GB (BC_Gen5_8)6 cores, 32 GB (BC_Gen5_6)
PSO-100-L8 cores, 48 GB (BC_Gen5_8)6 cores, 32 GB (BC_Gen5_6)
PSO-200-M18 cores, 96 GB (BC_Gen5_18)10 cores, 56 GB (BC_Gen5_10)
PSO-200-L18 cores, 96 GB (BC_Gen5_18)10 cores, 56 GB (BC_Gen5_10)
PSO-500-M32 cores, 168 GB (BC_Gen5_32)20 cores, 104 GB (BC_Gen5_20)
PSO-500-L32 cores, 168 GB (BC_Gen5_32)20 cores, 104 GB (BC_Gen5_20)
PSO-1000-M80 cores, 416 GB (BC_Gen5_80)32 cores, 168 GB (BC_Gen5_32)
PSO-1000-L80 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 bucketCluster max nodesExpected max operating nodes
PSO-5-XS21
PSO-15-S32
PSO-30-M43
PSO-50-M75
PSO-100-M129
PSO-100-L1310
PSO-200-M2318
PSO-200-L2520
PSO-500-M5040
PSO-500-L6048
PSO-1000-M9879
PSO-1000-L11189

HA

Sizing bucketCluster max nodesExpected max operating nodes
PSO-5-XS42
PSO-15-S64
PSO-30-M86
PSO-50-M1410
PSO-100-M2418
PSO-100-L2620
PSO-200-M4636
PSO-200-L5040
PSO-500-M10080
PSO-500-L12096
PSO-1000-M196158
PSO-1000-L222178

UHA

Sizing bucketSystem max nodesExpected max operating nodes
PSO-5-XS63
PSO-15-S96
PSO-30-M129
PSO-50-M2115
PSO-100-M3627
PSO-100-L3930
PSO-200-M6954
PSO-200-L7560
PSO-500-M150120
PSO-500-L180144
PSO-1000-M294237
PSO-1000-L333267

Application max replicas

Standard

Sizing bucketMax replicas
PSO-5-XS2 — GWY, PSW, SIM, SMM, SQM, SRG
1 — ABE, ADM, ARC, DSE, DSP, RPL, SBM, SES, SML, TRA
0 — DST
PSO-15-S2 — GWY, PSW, SIM, SMM, SQM, SRG
1 — ABE, ADM, ARC, DSE, DSP, RPL, SBM, SES, SML, TRA
0 — DST
PSO-30-M2 — GWY, PSW, SIM, SMM, SQM, SRG
1 — ABE, ADM, ARC, DSE, DSP, RPL, SBM, SES, SML, TRA
0 — DST
PSO-50-M3 — PSW, SQM
2 — ABE, ARC, DSE, DSP, GWY, SBM, SIM, SMM, SRG
1 — ADM, RPL, SES, SML, TRA
0 — DST
PSO-100-M5 — PSW, SQM
4 — ABE, ARC, DSE, DSP, SBM, SES
3 — GWY, RPL, SIM, SRG
2 — ADM, SMM, TRA
1 — SML
0 — DST
PSO-100-L5 — DSE, PSW, SQM
3 — GWY, SIM, SRG
2 — ADM, SMM, TRA
1 — ABE, ARC, DSP, DST, RPL, SBM, SES, SML
PSO-200-M10 — 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-L10 — DSE, PSW, SQM
6 — GWY, SIM, SRG
3 — TRA
2 — ABE, ADM, ARC, DSP, DST, RPL, SBM, SES, SMM
1 — SML
PSO-500-M20 — 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-L20 — 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-M40 — ABE, ARC, DSE, DSP, PSW, SBM, SES, SQM
20 — GWY, SIM, SRG
10 — RPL, TRA
5 — ADM, SML
2 — SMM
0 — DST
PSO-1000-L40 — DSE, PSW, SQM
20 — ABE, ARC, DSP, DST, GWY, SBM, SES, SIM, SRG
10 — RPL, TRA
5 — ADM, SML
2 — SMM

HA

Sizing bucketMax replicas
PSO-5-XS4 — SQM
2 — ABE, ADM, ARC, DSE, DSP, GWY, PSW, RPL, SBM, SES, SIM, SML, SMM, SRG, TRA
0 — DST
PSO-15-S4 — SQM
2 — ABE, ADM, ARC, DSE, DSP, GWY, PSW, RPL, SBM, SES, SIM, SML, SMM, SRG, TRA
0 — DST
PSO-30-M4 — SQM
2 — ABE, ADM, ARC, DSE, DSP, GWY, PSW, RPL, SBM, SES, SIM, SML, SMM, SRG, TRA
0 — DST
PSO-50-M6 — SQM
4 — ABE, ARC, DSE, DSP, SBM
3 — PSW
2 — ADM, GWY, RPL, SES, SIM, SML, SMM, SRG, TRA
0 — DST
PSO-100-M10 — 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-L10 — DSE, SQM
5 — PSW
4 — ADM, TRA
3 — GWY, SIM, SRG
2 — ABE, ARC, DSP, DST, RPL, SBM, SES, SML, SMM
PSO-200-M20 — 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-L20 — DSE, SQM
10 — PSW
6 — GWY, SIM, SRG, TRA
4 — ABE, ADM, ARC, DSP, DST, RPL, SBM, SES
2 — SML, SMM
PSO-500-M40 — 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-L40 — DSE, SBM, SES, SQM
20 — ABE, ARC, DSP, DST, PSW
12 — GWY, RPL, SIM, SRG
10 — TRA
6 — ADM
2 — SML, SMM
PSO-1000-M80 — ABE, ARC, DSE, DSP, SBM, SES, SQM
40 — PSW
20 — GWY, RPL, SIM, SRG, TRA
10 — ADM, SML
2 — SMM
0 — DST
PSO-1000-L80 — DSE, SQM
40 — ABE, ARC, DSP, DST, PSW, SBM, SES
20 — GWY, RPL, SIM, SRG, TRA
10 — ADM, SML
2 — SMM

UHA

Sizing bucketMax replicas
PSO-5-XS4 — SQM
3 — ADM, ARC, GWY, PSW, RPL, SBM, SIM, SML, SMM, SRG
2 — ABE, DSE, DSP, SES, TRA
0 — DST
PSO-15-S4 — SQM
3 — ADM, ARC, GWY, PSW, RPL, SBM, SIM, SML, SMM, SRG
2 — ABE, DSE, DSP, SES, TRA
0 — DST
PSO-30-M4 — SQM
3 — ADM, ARC, GWY, PSW, RPL, SBM, SIM, SML, SMM, SRG
2 — ABE, DSE, DSP, SES, TRA
0 — DST
PSO-50-M6 — SQM
4 — ABE, ARC, DSE, DSP, SBM
3 — ADM, GWY, PSW, RPL, SIM, SML, SMM, SRG
2 — SES, TRA
0 — DST
PSO-100-M10 — 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-L10 — DSE, SQM
5 — PSW
4 — ADM, TRA
3 — ARC, GWY, RPL, SBM, SIM, SML, SMM, SRG
2 — ABE, DSP, DST, SES
PSO-200-M20 — 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-L20 — DSE, SQM
10 — PSW
6 — GWY, SIM, SRG, TRA
4 — ABE, ADM, ARC, DSP, DST, RPL, SBM, SES
3 — SML, SMM
PSO-500-M40 — 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-L40 — DSE, SBM, SES, SQM
20 — ABE, ARC, DSP, DST, PSW
12 — GWY, RPL, SIM, SRG
10 — TRA
6 — ADM
3 — SML, SMM
PSO-1000-M80 — ABE, ARC, DSE, DSP, SBM, SES, SQM
40 — PSW
20 — GWY, RPL, SIM, SRG, TRA
10 — ADM, SML
3 — SMM
0 — DST
PSO-1000-L80 — 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

ApplicationRequest CPULimit CPURequest memory (MB)
ABE0.521024
ADM0.12512
ARC0.221024
DSE182048
DSP0.121024
DST0.121024
GWY0.121024
PSW0.521024
RPL0.121024
SBM0.121024
SES0.121024
SIM0.121024
SML0.121024
SMM0.052512
SQM0.521024
SRG0.121024
TRA0.2584096

Resources: S

ApplicationRequest CPULimit CPURequest memory (MB)
ABE238192
ADM0.121024
ARC0.224096
DSE3.588192
DSP0.124096
DST0.2524096
GWY0.2524096
PSW0.824096
RPL0.124096
SBM0.2524096
SES0.124096
SIM0.2524096
SML0.122048
SMM0.052512
SQM0.848192
SRG0.2524096
TRA1.1810240

Resources: M

ApplicationRequest CPULimit CPURequest memory (MB)
ABE3412288
ADM0.121536
ARC0.226144
DSE3.5812288
DSP0.126144
DST0.2526144
GWY0.2526144
PSW0.826144
RPL0.126144
SBM0.2526144
SES0.126144
SIM0.2526144
SML0.123072
SMM0.052512
SQM3820480
SRG0.2526144
TRA1.1820480

Resources: L

ApplicationRequest CPULimit CPURequest memory (MB)
ABE3420480
ADM0.122048
ARC0.2210240
DSE3.5812288
DSP0.1210240
DST0.25210240
GWY0.25210240
PSW0.8210240
RPL0.128192
SBM0.25210240
SES0.1210240
SIM0.25210240
SML0.124096
SMM0.052512
SQM4828672
SRG0.25210240
TRA1.1820480