NimbusNexus

VM sizes

A VM size is a named compute shape โ€” vCPU count, RAM, root-disk size, and family. Every VM is created with a size code (e.g. gp-4-16); resizing a VM swaps the code at runtime.

The four families

FamilyCode prefixWhat it's optimized for
General purposegp-*Balanced CPU + RAM. The default for most workloads.
Compute optimizedco-*2ร— CPU-per-dollar of gp, half the RAM-per-dollar. Right for CPU-bound services, batch jobs, video encode.
Memory optimizedmo-*Inverse trade. Right for in-memory caches, JVM heaps, analytics scratch.
GPUgx-*NVIDIA L4 / H100 accelerators. ML inference, training, transcode.

Naming convention

Size codes follow <family>-<vCPU>-<RAM_GB>. So:

  • gp-1-2 โ€” 1 vCPU, 2 GB RAM, general-purpose (the smallest useful size, ~$0.0145/vCPU-hour)
  • gp-4-16 โ€” 4 vCPU, 16 GB RAM, general-purpose
  • co-16-32 โ€” 16 vCPU, 32 GB RAM, compute-optimized
  • mo-8-64 โ€” 8 vCPU, 64 GB RAM, memory-optimized
  • gx-4-32-l4 โ€” 4 vCPU, 32 GB RAM, 1ร— L4 GPU (GPU sizes append the accelerator code)

The catalog endpoint returns the full list with current pricing per size. Prices vary slightly across regions; the response includes a per-region price table.

Resizing

A VM can move between sizes without re-provisioning. Resize within the same family is online (no downtime). Cross-family resize requires a stop / start cycle. Resize between architectures (e.g. gp to gx) is a destroy / re-create โ€” the API rejects the direct resize call to make the implicit data loss explicit.

What's next

  • Virtual machines โ€” endpoints that actually provision a VM at one of these sizes.
  • VM images โ€” the OS templates you boot the VM with.
  • SSH keys โ€” public keys injected into VMs at boot.

No endpoints to show

The OpenAPI spec doesn't currently expose any endpoints under thevm-sizestag. This is usually a manifest typo; check that the tag matches what the backend serves at /openapi/external.json.