Blog

hosting

How to check the CPU on a cheap VPS and why vCPU is not enough

Opselis

k6, web dashboard, request rate, latency and VUs

Hosting promises 16 vCPU and 32 GB at a low price. lscpu, the aes flag and the st column in vmstat show CPU generation and steal. How to measure the host before you renew.

A VPS offer is usually a vCPU count, RAM and disk. PHP, Magento and TLS performance depend on CPU generation, clock, L3 cache and hypervisor steal time. A cheap “16 vCPU, 32 GB, NVMe” pack often sits on a Xeon E5-26xx v2 or v3 (2013, 2015). There are many cores. IPC and turbo are from another era. The diagnostic tools are lscpu, /proc/cpuinfo and vmstat, not the CPU chart in the vendor panel.

What this measurement is for

You run it before purchase, before renewal and when the store is slow at “CPU 40%” in the panel. Magento and PHP-FPM handle a request in one thread. A slower core lengthens TTFB regardless of vCPU count. Missing aes (AES-NI) loads TLS and disk encryption. Steal (column st) means neighbours on the same host take the quantum. RAM overcommit: 32 GB in the offer is not 32 GB for your VM.

How the hardware reading works

lscpu reads CPUID. Model name: EPYC, Xeon Gold, Xeon E5-2670 v2. Flags: look for aes. CPU max MHz: turbo clock. vmstat 1 10: st is the percent of time the hypervisor did not give the virtual CPU a physical quantum. On a quiet host st is near zero. On a packed node it jumps at peak hour. iostat -x 1: shared NVMe has high await despite the NVMe name in the offer. The vendor benchmark runs on an empty host. Your indexer and cron measure reality.

How to set up the test

On a fresh VPS, root SSH: lscpu. Record Model name, CPU(s), Flags (aes), CPU max MHz. vmstat 1 30 in the store traffic hour, not at night. Average st above 5 to 10 percent disqualifies the host for Magento. openssl speed aes-256-cbc compares AES with another server (a short test, not a production load). In the application: checkout p95 and listing TTFB, not the homepage.

Comparison: 4 vCPU on EPYC or Xeon Gold often beats 16 vCPU on an E5. In a public cloud contract the CPU family is in the instance name. On Proxmox on your own node you see host CPU in Datacenter. If the vendor will not name the model, measure it yourself or change host. Environment choice: cloud and on-prem.