> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.ibee.ai/docs/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.ibee.ai/docs/_mcp/server.

# Resize a VM

> Move a Cloud VM to a larger plan to add CPU, RAM, and disk without rebuilding.

You can move a running Cloud VM to a larger plan from **Settings → Change Plan**. The VM is briefly stopped, resources are upgraded in place, and it restarts on the new plan.

> **Info**
>
> **Settings tab availability.** **Change Plan** is generally available. The **Change OS**, **SSH Keys**, and **Hostname** sub-tabs on the Settings panel show "This section is under development" today — they're being rolled out. In the meantime, [rebuild from a template](/docs/infrastructure/cloud-vms/os-images#switching-os) (Change OS), [add or rotate keys at the organization level](/docs/tools/ssh-keys) (SSH Keys), and set the hostname inside the guest (Hostname).

## When to resize

* CPU sustained near 100% over the **24h** range in [Monitoring](/docs/infrastructure/cloud-vms/monitoring).
* Memory pressure: high used / total ratio with no free RAM.
* Disk full on the root volume and you don't want to attach a separate [Block Storage](/docs/infrastructure/block-storage) volume.

If only data is growing, attaching a block storage volume is usually a better fit than resizing the whole plan.

## Before you begin

* The VM must be in the **Running** or **Stopped** state.
* Only **upgrades** are supported in the console — moving to a smaller plan is not available because root disks cannot shrink in place.
* Available plans depend on the VM's region. The Change Plan dropdown shows only plans available in the current region.

## Steps

### 1. Open Settings

On the server detail page, open the **Settings** tab. **Change Plan** is selected by default.

### 2. Review your current plan

The **Current Plan** card shows your existing vCPU, RAM, and disk — for example `2 vCPU · 8 GB RAM · 50 GB NVMe`.

### 3. Pick an upgrade

Open the **Available Upgrades** dropdown and select a plan. The dropdown lists each plan with its name and headline specs:

```
General Purpose-4vcpu-8GB
4 vCPU · 8 GB RAM · 100 GB NVMe

General Purpose-8vcpu-16GB
8 vCPU · 16 GB RAM · 100 GB NVMe
```

After selection, a **Selected Plan** summary appears confirming the new specs.

### 4. Confirm and upgrade

Read the **Upgrade Process** notice:

1. Your server is briefly stopped for the resize operation.
2. CPU, RAM, and disk are upgraded to the new plan.
3. The server automatically restarts with the new resources.
4. Billing is adjusted to the new plan rate.

Click **Upgrade Plan** to start. The VM transitions through **Stopping → Resizing → Starting → Running**.

## What changes

| Resource                | Behavior                                                                                                                                                  |
| ----------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **vCPU / RAM**          | Updated atomically during the brief stop.                                                                                                                 |
| **Root disk**           | Grows to the new plan's size. The partition is auto-extended; you may need to extend the filesystem inside the guest if it doesn't auto-grow (see below). |
| **Public IP**           | Preserved.                                                                                                                                                |
| **Attached volumes**    | Preserved and remain attached.                                                                                                                            |
| **Snapshots / backups** | Preserved.                                                                                                                                                |
| **Hostname / SSH keys** | Preserved.                                                                                                                                                |

## Extend the root filesystem (Linux)

Most cloud images use `cloud-initramfs-growroot` and resize automatically on boot. If `df -h /` still shows the old size after resize, run:

```bash
# Identify the root device
lsblk

# Grow the partition (adjust device/partition number)
sudo growpart /dev/vda 1

# Extend the filesystem
sudo resize2fs /dev/vda1     # ext4
sudo xfs_growfs /            # XFS
```

Reboot if any tool reports the partition is busy.

## Downgrade

In-console downgrades are not supported. To move to a smaller plan:

1. Take a [snapshot](/docs/tools/snapshots/create-a-snapshot) of the current VM.
2. Use **Restore → Create New VM** and choose the smaller plan when sizing the new VM.
3. Cut DNS over to the new VM and delete the old one when verified.

## Troubleshooting

**The dropdown is empty**
Your VM's region only has plans equal to or smaller than the current plan. Check [Regions and locations](/docs/getting-started/overview/regions-and-locations) for plan availability.

**Resize stuck**
Open the [Activity feed](/docs/infrastructure/cloud-vms/monitoring#activity-feed). A failed resize will surface as `Operation Failed` with a message; the VM will roll back to the original plan automatically.

**Disk space didn't grow**
Run the `growpart` / `resize2fs` commands above. Some images don't auto-extend on resize.

## Related pages

* [Instance types](/docs/infrastructure/cloud-vms/instance-types)
* [Power actions](/docs/infrastructure/cloud-vms/power-actions)
* [Block Storage](/docs/infrastructure/block-storage)
* [Snapshots](/docs/tools/snapshots)