Help Docs Server Administration Linux Server Administration A Guide to Server CPU Performance: Cores, Threads, and Benchmarking with Linux

A Guide to Server CPU Performance: Cores, Threads, and Benchmarking with Linux

Is your server slow? Learn how CPU cores, threads, and clock speed affect performance. Find out how to check, benchmark, and upgrade your CPU on Linux.

Overview

Your CPU runs all tasks on a server, from web pages to background processes. Modern CPUs have cores and threads which allow them to run multiple commands at once, improving performance.  Most modern CPUs support virtualization for running virtual machines or containers.

The following guide explains CPU basics, how to check CPU specs on Linux, what cores, threads, and virtualization mean, and when to consider upgrading your CPU. 

Parameters and Features of a Modern CPU

Cores

Your server’s CPU contains multiple cores, which you can think of as individual workers. Each core handles a single task (or ‘thread’) at a time. The more cores your server has, the more tasks it can run at once, which is essential for handling many applications or website visitors. Think of a CPU as a highway, where each core is a lane. A more powerful CPU is like a wider highway with more lanes; it can handle a higher volume of traffic (tasks) smoothly. Even during rush hour (high CPU load), the extra lanes help prevent the congestion that would slow down a smaller highway.

Many of our CPUs also feature Hyperthreading, a technology that allows each core to manage two threads instead of one. This effectively doubles your server’s task-handling capacity, ensuring it can run complex applications and provide a fast, smooth experience for a large number of simultaneous users. To extend the highway analogy, Hyperthreading is like stationing a highly efficient traffic cop that can manage two lanes of cars. The instant a car in one line hesitates or slows down (e.g., a task waiting for other data), the cop immediately waves a car from the second line forward. This process ensures no space is wasted and traffic flows constantly, maximizing the capacity of each lane.

Application support for Multi-Core or Hyperthreading
To enable multi-core support in most programming languages, you must explicitly use threading or multiprocessing in your application’s code to divide tasks and run them concurrently across available CPU cores.

Clock Speed

A CPU’s clock speed is measured in Gigahertz (GHz). Think of the clock speed as the metronome of the CPU, dictating the pace at which the processor executes individual tasks. Higher clock speeds mean tasks, like running an application or processing a web request, are completed faster. Think of a CPU’s clock speed like a car engine. The Base Speed is its reliable cruising speed, designed to run efficiently for hours without overheating. When you need extra power for a demanding task, the CPU can temporarily shift into Turbo Speed, providing a significant performance boost. This extra power is only used when conditions are safe, requiring sufficient power and low temperatures. 

Thermal Throttling

Turbo Speed is great for short bursts, like loading a large page or running a backup, but it won’t last forever. If the CPU gets too hot, it will slow back down to its Base Speed, or lower automatically. This is called thermal throttling and it is designed to protect your processor from long- term damage caused by overheating. We employ significant cooling techniques at our datacenters to help prevent or reduce thermal throttling.

Benchmarking

Benchmarking is a way to see how fast and capable a CPU is. By running common workloads, such as running applications or processing large amounts of standardized data, benchmarks help you compare different processors, or understand how well your server handles specific tasks. An example method of benchmarking is available below.

Benchmark results can vary based on other factors such as CPU starting temperature or underlying Operating System workloads. Use them as a way to generally compare CPUs, not as exact measures of speed.

Threads

A thread is where tasks queue up and wait for execution on the CPU. When new requests, or tasks (instructions) come in, they filter into these queues (threads). Some CPUs can run more than one thread per core using Hyper-Threading (Intel) or SMT (AMD).

How it works:

  • Every task (instruction) is given a score based on how long the CPU estimates it will take to process.
  • If a CPU core determines a task will take too long and cause a delay in processing, it can pause that task and temporarily shift focus to its other queue (thread).
  • The CPU will manage tasks across its Cores and Threads, allowing it to work on multiple things at the same time.
Threading
Think of threading as a chef with two cutting boards. It makes the chef more efficient, but it doesn’t make them twice as fast. If they’re waiting for an ingredient on one board, they can immediately switch to chopping on the other, ensuring they’re always working.

Cache

CPU cache is a small amount of very fast memory located inside the processor. The close physical proximity of the L1, L2, and L3 caches allows  the CPU to store and access small amounts of frequently used data faster than it could with RAM. The larger and faster the cache, the better the CPU will perform.

Virtualization

If you want to run virtual machines or containers, your CPU needs virtualization support. On Intel CPUs, look for VT-x; on AMD, look for AMD-V.

Helpful virtualization articles: 

Example CPU Offerings

CPUCoresBase SpeedTurbo SpeedHyper Threading EnabledCache
Intel E-21344 Cores3.50 GHz 4.5 GHz No8 MB
Intel E-24566 Cores 3.30 GHz5.10 GHzYes18 MB
Intel 6526Y16 Cores 2.8 GHz3.9 GHzYes37.5 MB
Dual Intel 6526Y32 Cores2.8 GHz3.9 GHzYes75 MB1

1Assumed combined cache = 2 × 37.5 MB = 75 MB (some dual-CPU systems list total cache as aggregate, others per chip).

Common Use Cases

/proc/cpuinfo

Shows your CPU model, cores, threads, cache, and features.

cat /proc/cpuinfo

If your server has many cores, the output can be long. Use:

cat /proc/cpuinfo | less

lscpu

Gives a quick summary of architecture, cores, threads, and virtualization.

lscpu

hwinfo

Shows more detailed info, including cache sizes and flags.

sudo hwinfo --cpu

hwinfo installation instructions

hwinfo may not be installed by default. To install, use the following:

RHEL/CentOS

sudo yum install hwinfo   

Ubuntu/Debian

sudo apt install hwinfo  
At the left of the console window, you can see the status of your connection, either Connected or Disconnected.

Benchmarking Your CPU

Sysbench is a simple tool that tests CPU performance on Linux servers.

To install Sysbench, run on Ubuntu or Debian.

sudo apt-get install sysbench

On RHEL/CentOS, run:

sudo yum install sysbench

To test the CPU using one core:

sysbench cpu run

To test all CPU cores at once:

sysbench --threads="$(nproc)" cpu run

$(nproc) automatically detects the number of cores and runs the test across all of them.

The output includes:

  • Events per second – how many operations the CPU completed.
  • Average latency – the time taken per task.
  • Total time – how long the test ran.

This is a quick way to check CPU performance and compare different Linux servers or setups.

When to Upgrade Your CPU

You might need a new CPU if:

  • Your server is slow under heavy load.
  • You have Virtual machines or containers that run poorly.
  • You need more cores, hyperthreading, or faster speeds.
  • Your software requires CPU features you don’t have.

Tips for Upgrading

  • Benchmark your CPU to set a performance baseline.
  • Match cores and threads to your expected workload.
  • Monitor CPU usage with htop or top when running heavy workloads. 
  • Compare benchmarks and overall CPU usage after upgrading to your new CPU.
Monitor Server Load
htop shows CPU usage in real time. If your cores are constantly maxed out, an upgrade may help.

Frequently asked questions

  • Check your RAM and disk usage—these can also cause slow performance.
  • Look for background tasks or cron jobs using resources.
  • If you run many apps or virtual machines, a CPU with more cores or threads may help.

Run:

grep -E "vmx|svm" /proc/cpuinfo

Without this, full virtual machines won’t run efficiently.

vmx = Intel, svm = AMD.

  • Make sure each VM has enough cores and memory.
  • Check CPU load with htop or top.
  • If cores are always maxed out, consider a CPU with more threads or faster speed.

  • Use htop or top.
  • htop shows each core’s usage and overall CPU load.
  • If cores are constantly high, you may need a more powerful CPU.

  • model name = CPU model
  • cpu cores = number of cores per CPU
  • siblings = total threads per CPU
  • Flags = CPU features like virtualization or Hyper-Threading

  • Short spikes are normal during backups, cron jobs, or updates.
  • Continuous high usage suggests a bottleneck. Run the following command to see which processes are using the CPU the most.

Was this article helpful?