Test: load-test/triple-project.js Duration: 35 minutes (5m ramp + 25m sustain + 5m ramp-down) VUs: 30 total — 10 per project (7 casual + 2 active + 1 power) Scenarios: 9 (p1/p2/p3 × casual/active/power)


What This Test Was For

The dual-project test confirmed the CX22 handles 2 concurrent stacks comfortably at 58% RAM. This test answered the remaining question:

  1. Can the CX22 sustain 3 concurrent Supabase projects under realistic load?
  2. Does VPS RAM hold under 25 services all under concurrent load?
  3. Is there any cross-stack interference at 3 stacks?

Project3 was provisioned as a fresh stack using the same Supabase version as project1/2, with a todos schema (JiiaCat not yet migrated). This tests stack isolation, not schema complexity.


k6 Result: Threshold Breach (exit 99)

Ran to full completion. Same geography artefact as all previous tests: p(95)<500ms reads from Grafana’s US load zone to Frankfurt (~130ms RTT baseline). No 5xx errors, no service restarts.


VPS Memory: Three Stacks Under Concurrent Load

ServiceStartEndPeakLimitPeak%
project1_kong226 MB229 MB229 MB512 MB44.7%
project2_kong227 MB228 MB228 MB512 MB44.5%
project3_kong218 MB227 MB227 MB512 MB44.3%
project1_realtime73 MB69 MB73 MB512 MB14.3%
project2_realtime26 MB26 MB26 MB512 MB5.1%
project3_realtime163 MB164 MB164 MB512 MB32.0%
project1_db39 MB38 MB43 MB1024 MB4.2%
project2_db25 MB28 MB30 MB1024 MB2.9%
project3_db82 MB84 MB93 MB1024 MB9.1%
project1_rest16 MB15 MB16 MB256 MB6.2%
project2_rest24 MB24 MB24 MB256 MB9.4%
project3_rest9 MB14 MB14 MB256 MB5.5%
project1_meta50 MB48 MB50 MB256 MB19.5%
project2_meta18 MB18 MB18 MB256 MB7.0%
project3_meta75 MB75 MB76 MB256 MB29.7%
project1_studio146 MB146 MB147 MB512 MB28.7%
project2_studio31 MB37 MB37 MB512 MB7.2%
project3_studio162 MB147 MB164 MB512 MB32.0%

VPS host RAM: 2433–2654 MB used of 3819 MB (64–70% of RAM) during the test.


Key Findings

1. No cross-stack interference — three stacks fully isolated

All 25 services ran for 35 minutes under simultaneous load with no CPU or memory interference. Each project’s services showed the same utilisation patterns as when the other two were idle.

2. VPS RAM comfortably within budget at 3 stacks

Three stacks active + 10 VUs each:  2433–2654 MB / 3819 MB  (64–70%)
Two stacks active + 15 VUs each:    ~2200–2224 MB / 3819 MB  (58%)
One stack idle baseline:             ~2100 MB / 3819 MB       (55%)

The incremental RAM cost of a third project under load is ~400–450 MB (same order as adding a second project). The CX22 has ~1.2 GB of headroom remaining with all three stacks under load.

3. Kong memory: stable across all three stacks

All three Kongs started at 218–227 MB and ended at 227–229 MB — growth of ~1–9 MB over 35 minutes. This is consistent with prior tests (growth proportional to request rate). No divergence between stacks.

4. Realtime BEAM baselines reveal stack maturity

StackRealtime baselineExplanation
project173 MBOlder stack — more CDC history
project226 MBMedium age
project3163–164 MBFresh stack that had Realtime re-seeded multiple times during provisioning — extra BEAM memory for internal tables

The project3_realtime baseline is higher than expected for a fresh stack. This is because the container was force-restarted several times during the Realtime initialisation sequence (jwt_secret fix, tenant rename). The BEAM VM retains process state from previous runs in its in-memory structures. Expected to stabilise at a lower baseline after a clean restart cycle.

5. project3_db highest at 93 MB peak

project3 accumulated DB data during both setup() (user creation + todos table creation) and the 35-minute test run. The 93 MB peak is still well within the 1 GB limit (9.1%).

6. All 25 services stable — zero restarts

project1_*   8/8 services  1/1
project2_*   8/8 services  1/1
project3_*   8/8 services  1/1
traefik               1/1

Service Health Post-Test

All 25 services at 1/1 replicas. Zero restarts across all three stacks.


Summary

QuestionAnswer
3 stacks under concurrent load — RAM?64–70% used — ~1.2 GB headroom
Cross-stack interference?None — all stacks fully isolated
Any OOMs or restarts?None
Any memory leaks?None — all services flat
Can the CX22 serve 3 projects simultaneously?Yes, comfortably
Would a 4th project fit?Likely — est. ~3.0–3.1 GB at 4 stacks (~80% RAM)

Cluster verdict: production-ready for 3 concurrent projects. Memory headroom suggests a 4th project is feasible but would push toward 80% RAM utilisation — the recommended threshold for sizing up. A CX32 upgrade (8 GB RAM) would give comfortable headroom for 5–6+ projects.


Capacity Projection

ProjectsEst. RAM used% of CX22% of CX32
1~2.1 GB55%26%
2~2.2 GB58%28%
3~2.6 GB68%33%
4 (projected)~3.0 GB79%38%
CX22 upgrade threshold3.1 GB81%

Each additional project adds ~350–450 MB RAM at idle under light load. The cluster can comfortably host 3 projects on CX22. At 4 projects, a CX32 resize becomes advisable.


Comparison: All Projects Resource Profile

Serviceproject1project2project3
DB memory39–43 MB25–30 MB82–93 MB
Rest (PostgREST)15–16 MB24 MB9–14 MB
Realtime69–73 MB26 MB163–164 MB
Kong226–229 MB227–228 MB218–227 MB
Meta48–50 MB18 MB75–76 MB
Studio146–147 MB31–37 MB147–164 MB