High CPU usage and server load

Find out what is driving high CPU and load on your TurboStack host and how to bring it down.

High CPU usage and a high load average make every request slower and can tip a busy host into errors. TurboStack lets you see the pressure as it happens, identify which process is responsible, and either optimize the workload or scale the host.

Symptoms

  • The CPU card on Health sits at Warning or Critical for extended periods.

  • Pages are slow across the whole site, not just one URL (see Why is my site slow?).

  • Load spikes coincide with a recurring event - a cron run, a deploy, a traffic surge, or a crawl.

Diagnose it on TurboStack

On the host's Health tab, the CPU card shows current usage with an OK/Warning/Critical status and a graph. Use the 1H / 8H / 1D / 7D range buttons to tell a short spike apart from sustained load, and the fleet Monitoring dashboard to see trends and alerts across hosts.

Check Top Issues for a ranked PERFORMANCE or STABILITY issue. Open History (Revisions / Deploys) to see whether a recent publish coincided with the spike - if it did, you can roll back.

Identify the heavy process

Connect over SSH (host SSH tab) and look at which process is consuming CPU, for example with top (press P to sort by CPU use) or:

ps aux --sort=-%cpu | head    # top processes by CPU use
uptime                        # load averages over 1, 5 and 15 minutes

The most common causes:

  • PHP-FPM - heavy or uncached page rendering, or a runaway script.

  • Database (MySQL/PostgreSQL) - expensive or unindexed queries; see Database issues.

  • Cron / queue workers - scheduled jobs or a backlog of queued work running flat out.

  • Search indexer (Elasticsearch) - a full reindex consuming CPU while it runs.

To find slow PHP specifically, enable the profiler temporarily:

tscli blackfire enable
# ... reproduce the slow request and profile it ...
tscli blackfire disable

Common causes and fixes

Bots and crawlers driving load

Aggressive crawlers, scrapers, and bot traffic can generate far more requests than real users, pushing CPU up for no business value. TurboShield can throttle abusive request rates for you; raising its level (low / medium / high / attack) tightens the limits. When a client exceeds a limit it receives a soft 429 response rather than a firewall ban - see HTTP 4xx errors. Learn what TurboShield does and how to tune it in What is TurboShield? and Configure TurboShield.

You can also reduce load from well-behaved crawlers at the source with a robots.txt file in your web root. Block a specific crawler entirely with a Disallow rule:

User-agent: Amazonbot
Disallow: /

Some crawlers honor a Crawl-delay directive that spaces out their requests: Bingbot does, Googlebot does not. Set Google's crawl rate in Google Search Console instead. Crawl-delay is not part of the official robots.txt standard, so crawlers that do not support it ignore the line. TurboShield still handles crawlers that ignore robots.txt entirely.

Not enough caching

If PHP is recomputing pages that could be served from cache, CPU climbs under load. Make sure your caching layers are working correctly:

  • Varnish full-page cache for storefront pages.
  • Redis object cache and OPcache for PHP.

See Performance tuning. After a deploy or content change, a stale cache can also cause churn - clear it from the running server with the TurboStack CLI:

tscli varnish clear
tscli opcache clear

Cron or queue jobs piling up

A backlog of queued jobs, or overlapping cron runs, can keep CPU pinned. Confirm on the Health graph whether load is periodic, and review your job schedule and worker concurrency so jobs do not stack up faster than they complete.

Inefficient database queries

Slow or unindexed queries burn CPU on the database. Identify them, add indexes, and cache results where possible - see Database issues and Performance tuning.

The host has genuinely outgrown its plan

When the workload is legitimate and already optimized, the host needs more CPU. Upgrade the plan from the Customer Center, or talk to sales to choose the right size.

Prevent it

  • Keep caching effective and measure before tuning - see Performance tuning.

  • Set an appropriate TurboShield level so bot traffic cannot dominate CPU.

  • Watch CPU trends on Health and Monitoring so you act on a rising trend before it becomes an outage.

When to contact support

Contact Support if CPU stays high after optimizing and you need to scale the host, or if you cannot identify the process responsible. Include the host, the affected domain, the time window, and what changed recently.