VM Specs
Whenever you start a sandbox, you can specify which VM specs to use. This allows you to customize the VM to your needs. We also allow you to change the VM specs of a running sandbox on the fly, without reboot. This is useful if you want to dynamically scale up the available hardware based on workload needs.
SDK Sandbox VMTier parameters can be used to create/update environments up to Small (8 Cores/16GB RAM) specs. If higher tiers are specified only the core count will increase unless you create a custom template (opens in a new tab) using our CLI.
Specifying VM Specs when starting your Sandbox
You can start a sandbox with a specific VM tier by passing the vmTier
option to the sandbox.create
method:
import { CodeSandbox, VMTier } from "@codesandbox/sdk";
const sdk = new CodeSandbox();
const sandbox = await sdk.sandboxes.create({
vmTier: VMTier.Small
});
You can also approximate the VM size:
const sandbox = await sdk.sandboxes.create({
vmTier: VMTier.fromSpecs({ cpu: 4, memGiB: 8 }),
});
This will pick the smallest VM tier that can fit the specs you provided.
Changing VM Specs
You can change the VM specs of a running sandbox by calling the sandbox.updateTier
method:
const sandbox = await sdk.sandboxes.resume('some-id')
await sandbox.updateTier(VMTier.Medium);
This will change the VM specs of the sandbox dynamically, without rebooting.
Be careful when scaling down the VM specs of a running sandbox. If you scale down the VM too much, it might not have enough resources to run your tasks and will slow to a crawl.
⚡ Best practices
- Set appropriate tier when building templates - Choose the minimum VM tier needed for your template's workload and dependencies
- Don't downgrade from template tier - When creating sandboxes from templates, use the same or higher tier than specified in the template
- Avoid downgrading running sandboxes - Don't update to a lower tier than the sandbox's initial tier to prevent resource conflicts