Single-core or multi-core? The right CPU for your program
"Is a server with more cores better, or one with faster individual cores?" The answer depends on how the program you'll run uses its cores. We've also included how to check for yourself.
Cores, threads and vCPUs
- Core — The worker inside the CPU that actually does the calculations. With 4 cores, it can handle 4 tasks at the same time.
- Thread (logical processor) — CPUs that use a technology letting one core take on two streams of work (SMT, Hyper-Threading) show twice as many threads as cores. That doesn't mean double the performance, though.
- vCPU — A virtual CPU assigned to a VPS. Inside the server, the
nproccommand and Task Manager show this many.
A program has to split its work to use multiple cores
Multiple cores only work together when a program splits its work into several streams (threads or processes). A program that works in a single stream keeps only one core busy while the rest sit idle, no matter how many cores there are. For programs like this, per-core performance (CPU generation, clock speed) determines speed more than the number of cores.
| Program | How it uses cores | What matters |
|---|---|---|
| Minecraft Java server | Game progress (ticks) is handled mainly on one thread. Some tasks, such as loading chunks and memory cleanup (GC), also use other cores. | Per-core performance |
| Discord bot (Node.js, Python) | A single bot mostly runs on one core and usually doesn't use much CPU. | Memory, keeping it running |
| Web server (Nginx) | Spreads connections across several worker processes. | Core count when there are many connections |
| Database (MariaDB, etc.) | Handles many simultaneous requests on multiple cores. A single request is usually handled on one core. | Core count and per-core performance, memory and disk |
| Compression, video conversion, code builds | Splits the work to use multiple cores at once. (Depends on the tool and options) | Core count |
| Several programs on one server | Each program uses a different core. | Core count |
How Node.js and Python work
- Node.js — JavaScript code runs on one thread per process by default. For a web server, you can use pm2's cluster mode (
pm2 start app.js -i max) to launch as many copies as there are cores and use multiple cores. If you launch several copies of a Discord bot this way, the same bot runs more than once and may respond to commands twice or throw errors, so run only one. - Python — With the Python you'd usually install (CPython), the GIL means Python code in one process runs on only one core at a time. To split heavy calculations across multiple cores, you need to use several processes, for example with
multiprocessing.
Check on your own server
For accurate results, check while the program is running as usual, at its busiest.
Linux
sudo apt install -y htop
htop
The numbered bars at the top show usage per core.
- Only one bar is full and the rest are idle → The program depends on per-core performance. Adding cores won't make it faster.
- All the bars are evenly full → You don't have enough cores. A plan with more vCPUs will help.
- The bars are idle but it's slow → It may be a memory, disk or network problem rather than the CPU. See Checking a slow server.
If you use top, press 1 while it's running to see each core. A program's %CPU of 100% means it's maxing out one core; 200% means it's using the equivalent of two cores.
Windows
- Open Task Manager (
Ctrl + Shift + Esc) → Performance tab → CPU. - Right-click the graph to open the menu and switch to Logical processors to see a graph for each core.
CPU usage on the Processes tab is calculated with the server's total CPU as 100%. For example, if a program on a 4-core server won't go above roughly 25%, it's most likely maxing out one core.
So what should you choose?
- Programs that keep only one core busy → The CPU type matters more than the core count. The Pricing page lists the CPU name for each series, so compare them.
- Programs that keep every core busy, or running several programs together → Choose a plan with more vCPUs.
- If you use a lot of CPU steadily over long periods → Compare dedicated servers too. (VPS vs. dedicated server)
- If you want to compare numbers → Measuring server performance explains how to measure single-core and all-core performance separately.
You can't change the specs of a server you're using, so if you need a different plan, get a new server and move over to it.