Hardware requirements
Webswing hardware requirements depend mainly on the hosted application, the number of concurrent sessions, and the selected deployment architecture.
In this section, one concurrent user means one concurrent application session / JVM. A single end user may open multiple instances of the same application, and each instance should be counted as a separate concurrent session.
Deployment options
Webswing can be deployed in two main modes:
| Deployment mode | Description |
|---|---|
| Webswing Standard | Standalone deployment where all Webswing components run together. Suitable for simpler deployments, typically up to approximately 100 concurrent sessions. |
| Webswing Cluster | Clustered deployment with separate Cluster Server, Session Pool, and Admin Console components. Suitable for larger deployments, horizontal scaling, high availability, and Kubernetes. |
In Webswing Cluster, Session Pools are usually the main scaling unit, because they run the hosted application sessions.
Application requirements
The main factor in sizing is the resource consumption of the hosted application.
For example, assume one application session requires:
| Resource | Per application session |
|---|---|
| RAM | 0.64 GB |
| CPU | 0.32 vCPU |
These values represent the application session only. They do not include Webswing components, operating system overhead, Kubernetes overhead, monitoring, logging, failover capacity, or safety margin.
For 100 concurrent application sessions, the application workload would be:
| Resource | Calculation | Estimated total |
|---|---|---|
| RAM | 100 × 0.64 GB | 64 GB |
| CPU | 100 × 0.32 vCPU | 32 vCPU |
Because this estimate covers only the application workload, production infrastructure should provide additional capacity for platform overhead and safety margin.
As an initial production sizing example for 100 concurrent sessions, we recommend starting with a cluster of 2 servers, each with approximately:
| Resource | Per server |
|---|---|
| RAM | 48–64 GB |
| CPU | 24–32 CPU cores |
The exact headroom depends on the operating system, deployment architecture, monitoring and logging setup, and failover requirements.
Webswing overhead
In addition to the hosted application, Webswing itself requires resources.
As a rough estimate, Webswing requires approximately:
| Load | Webswing overhead |
|---|---|
| 50 concurrent sessions | 300 MB RAM and 1 CPU core |
In our Kubernetes memory consumption test, Webswing Cluster was deployed with maximum isolation, where each application session ran in a separate new pod. In this configuration, the measured Webswing Cluster Server overhead was approximately:
| Component | Measured RAM overhead |
|---|---|
| Per concurrent session | 5 MB |
| Per Session Pool | 3 MB |
These values represent Webswing Cluster Server overhead only. They do not include the hosted application JVM, Session Pool process, operating system, container runtime, Kubernetes components, ingress, logging, monitoring, or database services.
Sizing formula
For initial sizing, use the following formula:
Total RAM =
concurrent sessions × RAM per application session
+ Webswing overhead
+ platform overhead
+ safety margin
Total CPU =
concurrent sessions × CPU per application session
+ Webswing overhead
+ platform overhead
+ safety margin
Recommended safety margin:
| Deployment type | Suggested safety margin |
|---|---|
| Webswing Standard | 2–10% |
| Webswing Cluster | 5–15% |
| Kubernetes | 10–20% |
Kubernetes resource requests and limits
For Kubernetes deployments, measured application requirements should be translated into resource requests and limits.
CPU requests should cover normal steady-state usage. CPU limits should allow short-term peaks, especially during application startup or CPU-intensive workflows.
Memory requests and limits should include enough headroom for startup and peak usage. If the memory limit is too low, the application JVM or container may be terminated.
Recommended measurement approach
Because every application behaves differently, Webswing recommends a data-driven sizing approach.
- Run a representative test with at least 10 concurrent application sessions.
- Measure CPU and RAM during startup, idle state, typical usage, and peak usage.
- Extrapolate the measured values to the required number of concurrent sessions.
- Add Webswing overhead, platform overhead, and a safety margin.
- For production deployments, include additional capacity for monitoring, logging, failover, and expected traffic peaks.
Application startup should be measured separately from steady-state usage, because some applications require significantly more CPU or memory during startup than during normal operation.