Where to find it
In the Portal, open your container group and look at the Utilization column of the instance table. Each running instance shows a line for CPU and a line for RAM:RAM 41.7% (2.5 GB).
Utilization is only displayed for instances in the running state. An instance that is allocating, downloading, or
starting has no container to measure yet, so no value is shown.
From the API,
GET /organizations/{organization_name}/projects/{project_name}/containers/{container_group_name}/instances returns the
same data on each instance:
These fields are omitted for instances that are not running, and for instances that have not yet produced a first
measurement. Treat them as optional in your client code rather than assuming they are always present.
What the percentages are measured against
Both percentages are relative to what you requested for the container group, not to the node’s total hardware:cpu_percentis measured against the number of vCPUs you configured.memory_usage_percentis measured against the memory (RAM) you configured.
CPU 50% is consuming the equivalent of 2 full cores. This is
deliberately not a percentage of the node: SaladCloud nodes vary widely in size, and a percentage of node hardware would
mean something different on every machine. A percentage of your own allocation means the same thing everywhere, and it
is the number that tells you whether you are paying for resources you do not use.
How often the values update
Each node samples its running containers once every 60 seconds and reports the result up to the platform. Allowing for propagation, expect a value in the Portal or API to be up to roughly two minutes behind real time. A few consequences follow from the sampling model:- CPU is an average, not an instantaneous reading.
cpu_percentis derived from the CPU time consumed between two consecutive samples, divided by the elapsed wall-clock time and your vCPU count. A workload that is idle for 50 seconds and then saturates 4 cores for 10 seconds reports roughly the same number as one running steadily at a low level. Short spikes are flattened. - RAM is an instantaneous reading.
memory_usage_mbandmemory_usage_percentare the values at the moment of the sample, so a brief allocation spike between samples is not captured at all. - The first CPU reading takes about a minute. Because CPU utilization is a delta between two samples, a newly
started instance has nothing to compare against until its second sample. Expect
CPU 0%for roughly the first minute after an instance starts. - A restart or recreate resets the CPU baseline. When a container is restarted or recreated, its cumulative CPU
counter starts over, so that interval is reported as
0%and normal readings resume on the next sample. Memory reporting is unaffected. - Values below 0.1% display as
<0.1. Anything in that range means the same thing — idle — and rounding it to0.0would read as a broken metric.
Why utilization can exceed 100%
GPU workloads
On GPU container groups, SaladCloud does not strictly enforce the vCPU and RAM you request, so utilization above 100% is possible — a workload that requested 2 vCPUs but can keep 8 cores busy reportsCPU 400%.
Do not rely on this. How much a container is allowed to exceed its request varies by node, so an application that
routinely runs over will work on some nodes and fail unexpectedly on others. If you see utilization above 100%, raise
the requested vCPUs or RAM to cover what your application actually uses. On a GPU container group this does not change
your bill.
CPU-only workloads
On container groups without a GPU, the limits are enforced. CPU is capped at your requested core count, socpu_percent
stays at or below 100%. Memory is capped at exactly your allocation, and a container that exceeds it is out-of-memory
killed rather than allowed to run over — which appears as an Instance Exited:137 (Likely Out of System Memory)
system event. If you see that, increase the RAM
allocated to the container group.