CPU hot-plugging is the ability to dynamically add (hot-add) or remove (hot-remove) CPU cores to a running operating system, such as a server or virtual machine, without having to shut it down or reboot.
CPU hot-plugging enables on-demand scaling of a server’s processor. If your server’s CPU load spikes briefly, for example due to high demand from an application you host, you can add more resources without a restart to meet that demand. This prevents downtime during upgrades or peak loads.
Using CPU hot-plugging
It’s possible to use CPU hot-plugging on our VPS platform under a few conditions:
- Hot-plugging is only possible when you add one or more CPU cores via an add-on; it does not apply when changing the type of VPS (which also allocates more memory and automatically restarts the VPS).
- The VPS must have been created, or restarted via the reset button in the control panel, on or after 20 June 2025.
- Live addition of CPU cores is only possible on Windows Server 2022 or newer and on Linux distributions.
- Live removal of CPU cores is only possible on Linux distributions.
In all other scenarios, your server will be restarted automatically when you order or cancel a CPU add-on.
No further steps are required for Windows Server. On Linux distributions, an additional step is needed. You can create a udev rule that is applied automatically (udev is a device manager for Linux), or bring the new CPU online manually.
Create a udev hot-plug rule
By creating a specific udev rule once, CPU cores added via hot-plugging are automatically detected by your operating system and brought online.
Step 1
Create a file in the /etc/udev/rules.d/ folder to hold the udev rule, for example:
sudo nano /etc/udev/rules.d/99-cpu-hotplug.rules
Step 2
Give the file the following contents:
ACTION=="add", SUBSYSTEM=="cpu", ATTR{online}=="0", ATTR{online}="1"
Save your changes and close the file (ctrl + x > y > enter).
This rule is applied when an ‘add’ action is performed for a ‘cpu’, setting the ‘online’ (sysfs) attribute to 1 if the current value is 0.
Step 3
Reload the udev rules to apply the change:
sudo udevadm control --reload
Have you already added one or more CPU add-ons before completing these steps? Then also run the following command to activate the CPU cores:
sudo udevadm trigger --subsystem-match=cpu --action=add
CPU cores you add as an add-on will now be brought online automatically in your Linux distribution.
Bring a new CPU online manually
You can also bring a CPU that was added via hot-plugging online manually. Note that, unlike using a udev rule, this action is required every time you add a CPU as an add-on.
ls /sys/devices/system/cpu/
cpu0 cpufreq crash_hotplug hotplug kernel_max nohz_full online power smt vulnerabilities
cpu1 cpuidle enabled isolated modalias offline possible present uevent
- Have you already added one or more CPU add-ons? Then the highest CPU numbers are the IDs you need. Suppose in this example the server had a single CPU available and you add one CPU core, then cpu0 is the original CPU and cpu1 is the newly added CPU.
- If you add a CPU add-on after running this command, then in this example the next CPU would be numbered cpu2.
echo 1 | sudo tee /sys/devices/system/cpu/cpu<id>/online