Your VPS has plenty of free memory. Yet pages crawl, the admin panel hangs, and visitors complain. It feels like the numbers are lying.
They are not. RAM is only one of several limits on a server, and a slow VPS with spare memory usually points to a different bottleneck. Here is how to find it.
RAM Is Not the Only Resource
A website server leans on four things at once.
- CPU: the processing power that runs your code
- RAM: short-term memory for running programs
- Disk: where files and databases live, and how fast they are read
- Network: how quickly data leaves the server
Any one of them can hold up the rest. Plenty of free RAM does nothing if the CPU is overloaded, or if processes are stuck waiting on a slow disk.
Step 1: Check Load Against Your CPU Cores
Connect by SSH and run:
uptime nproc
The first command shows your load average. The second shows how many CPU cores you have.
As a rough rule, a load average below your core count is healthy. A load several times higher than your core count means the server is overloaded, and you will usually feel it as slow responses.
Step 2: Read the CPU Line in top
Run top and look at the line that starts with %Cpu. Three values matter here.
- wa (I/O wait): time the CPU spent waiting for the disk. A high value points to a storage bottleneck.
- st (steal): CPU time taken by the host machine. Persistent steal above roughly 5 to 10 percent can mean the host is oversold.
- us and sy: time spent running your programs and the system.
These thresholds are rules of thumb from hosting documentation, not hard laws. Use them to point you in a direction, not to decide on their own.
Step 3: Rule Out Memory Pressure
Even if RAM looks fine now, check whether the server has been using swap, which is disk space used as emergency memory.
free -h vmstat 1 5
Heavy swap use is slow. It can also hide a different problem: a common PHP trap is setting too many worker processes, which uses up memory, forces swapping, spikes disk waiting, and makes the server look CPU bound when it is really memory bound.
Step 4: Test Disk Speed
If load is high while CPU use looks calm, the disk is a prime suspect.
iostat -x 1 5
Warning signs are disk utilisation above about 80 percent and long wait times per request, often quoted as over 20 milliseconds. Databases suffer most from a slow disk, because every query reads and writes data.
Step 5: Look at PHP Workers
On WordPress and WooCommerce servers, PHP workers are a frequent culprit.
- Too few workers make requests queue up and wait.
- Too many workers eat memory and trigger swapping.
- Stuck workers piling up often point to a slow database query or a misbehaving plugin.
Check your PHP-FPM settings and make sure the worker limit matches your RAM and CPU.
Step 6: Check the Database
A slow database is one of the most common hidden causes of a slow site.
- Turn on the MySQL or MariaDB slow query log.
- Look for queries that take seconds, not milliseconds.
- Check that large tables have proper indexes.
- Clear old data, such as expired transients and spam comments
Step 7: Look for Unwanted Traffic and Background Jobs
Sometimes the load is not your visitors at all.
- Bots hammering your login page or search.
- Cron jobs that run too often or overlap
- Backup or antivirus scans running at busy hours
Your access logs and a quick look at running processes will show who is asking for what.
Step 8: Turn On Caching
Caching lowers the work your server repeats on every visit.
- Enable PHP OPcache
- Use page caching so common pages are served without hitting the database.
- Use an object cache if your site is database heavy.
When the Problem Is Your Host
If steal time stays high, or disk waits stay long no matter how much you tune, the cause may be the provider’s hardware. Gather your readings and open a ticket. A good provider will move you or fix the node.
Keep Watch
Slowness often returns. Monitor your site so you notice it before customers do. A free uptime check is a good start, and a regular look at your resource graphs will show trends.
If managing all this feels like too much, plain shared hosting leaves tuning to your provider.
Get a VPS That Gives You Real Resources
If you want guaranteed CPU, fast storage, and support that helps you diagnose problems like these, HoganHost’s VPS hosting is built for exactly that.



