Skip to content

Server Plans

A server plan is a size: the machine type (LXC container or virtual machine), the vCPU, the RAM and the root disk an App Server is created with, and the size it moves to on a resize. Plans belong to an App Definition — each one carries its own catalogue, and the person creating a server picks from it. The range matters because a customer pays for the whole host and fills it core by core: a catalogue that jumps from 4 vCPU to 8 sells eight cores to someone who needs five, and the three left over are paid for and idle. This page is for the operator who owns App Definitions; if you are choosing a plan for your own App Server, read Choosing an App Definition and Per-Stack Plan Selection instead.

Name and size code

Each plan carries two strings:

  • name — the short label shown in the plan selector. The display name appends the specs to it: M+ - LXC - 5.0 vCPU, 10.0 Gb RAM, 40 Gb Storage.

Every size is GiB: LXD reserves them as such; the form labels write Go and the display name Gb for the same quantity. - size_code — the technical key. Manganese and the MCP pass it as plan_code to create (mgx_create_app_server) and resize (mgx_resize_server) an App Server.

A code designates one set of specs

App Servers and automations look a plan up by its size_code, so a code is never reused for different specs. It is unique per App Definition — a duplicate is refused when the App Definition is saved — and default is reserved by the Create Default Plan button.

Two naming schemes, chosen per App Definition:

Scheme name size_code Rule
Symbolic M+ mplus-lxc the label in lower case, + spelled plus, suffix -lxc or -vm
Automatic LXC 5-10-40 lxc5-10-40 {type}{vCPU}-{RAM GiB}-{disk GiB}, for instance lxc0.5-1-40
Either Unlimited unlimited-lxc vCPU, RAM and disk all 0 — LXC only, see The Unlimited plan

A generation prefix may precede the code: gen-mplus-lxc, gen-lxc5-10-40. It gives each generated range its own namespace, so an App Definition carries an older hand-made range (m-lxc = 2 vCPU) and a generated one (gen-m-lxc = 4 vCPU) side by side. App Servers keep the plan they were created with and move to a new one through Resize, on the same App Definition and the same machine type.

The plans shipped with the generic templates predate the ladder: there XS is half a core and M two vCPU, which is what Choosing an App Definition describes. A generated range keeps its own labels under its prefix, and the display name carries the specs either way.

The plan form proposes both fields from the specs, following the scheme and the prefix the App Definition's other plans already use. A name somebody typed by hand stays put through every later spec change; a proposed one follows the specs. A row with no spec typed yet gets no name and no code — it is a row being typed, not an Unlimited plan.

Generating a range

On the App Definition form, page App. Servers, the Generate Plans… button opens a wizard that builds a whole range in one pass.

Option Default Meaning
Mode Range Range fills the grid from the ladder below; Custom leaves it empty for hand-typed lines
Machine Types LXC and VM LXC only, VM only, or both — the LXC block first, then the VM one
Intermediate Sizes on includes the "+" sizes, so a customer needing 5 vCPU takes 5 instead of 8
Unlimited Plan off adds one LXC plan with no CPU, RAM or disk cap
RAM per vCPU (GiB) 2 GiB of RAM per vCPU
Disk (GiB) 40 root disk applied to every line, editable per line
Naming Scheme detected from the existing plans symbolic or automatic, see above
Code Prefix gen- prefix of every generated size code; use another one (gen2-) for a second generation on the same App Definition, or leave it empty

Pick the RAM ratio off the target hosts

Real hosts run 2 to 4 GiB per core. Take the ratio of the hosts this range will be provisioned on, so the RAM you pay for is used along with the cores: a 1 GiB-per-core range on 4 GiB-per-core hosts leaves three quarters of the memory unsold.

The ladder — a "+" size sits one step above its anchor, and the step is 1 vCPU below 10, 2 from 10 to 16, and 4 above:

Label vCPU VM Intermediate
3XS 0.25 no no
2XS 0.5 no no
XS 1 yes no
S 2 yes no
S+ 3 yes yes
M 4 yes no
M+ 5 yes yes
L 6 yes no
L+ 7 yes yes
XL 8 yes no
XL+ 9 yes yes
XL++ 10 yes yes
2XL 12 yes no
2XL+ 14 yes yes
3XL 16 yes no
3XL+ 20 yes yes
4XL 24 yes no
4XL+ 28 yes yes
5XL 32 yes no

RAM is the vCPU count times the ratio. The 0.25 and 0.5 rows are LXC only: a virtual machine takes whole vCPUs.

The grid

Nothing is created until you say so. The grid is editable: change a cell, delete a line, uncheck a line to leave it out, add a line of your own. Generate refills the grid from the options and discards those edits. Create plans creates one plan per checked line, with billing type No billing, and closes the wizard; the new plans are sequenced after the App Definition's existing ones.

In Custom mode the grid starts empty and each plan is typed. Name and code are proposed as soon as the specs are entered, following the wizard's scheme and prefix; a row left untouched is skipped at creation.

Collisions

A line whose size code already exists on the App Definition arrives unchecked and highlighted, with the existing plan shown in the Already on this App Definition column. Change the prefix or the code to create it.

A line whose name is already used with other specs stays checked and shows the existing plan in the same column. Both plans coexist — the display name carries the specs, so the selector tells them apart. Archive the older plan once no App Server uses it.