---
title: "CPU Monitoring"
description: "Real-time CPU load monitoring with percentage bars, load averages, and cross-platform detection for Linux and Windows environments."
url: "https://docs.versioninfoplugin.com/pro-features-system-resources-cpu-monitoring/"
---
Real-time CPU load monitoring with percentage bars, load averages, and cross-platform detection for Linux and Windows environments.

# CPU Monitoring

**This is a PRO feature.** Unlock real-time monitoring, environment indicators, version history, and more. [Upgrade to PRO →](https://versioninfoplugin.com/pricing)

The CPU Monitoring feature provides real-time visibility into your server's processing load directly from the Version Info settings page.

### What It Displays

*   **Current CPU Usage** - Displayed as a percentage bar with color-coded thresholds
*   **Load Averages** - 1-minute, 5-minute, and 15-minute load averages
*   **CPU Core Count** - The number of available CPU cores on the server

### How Detection Works

Version Info uses a cross-platform Provider system to detect CPU data:

| Platform | Detection Method |
| --- | --- |
| Linux / Unix | `sys_getloadavg()` PHP function |
| Windows | COM object via `Winmgmts://` (WMI) when available |

Some shared hosting providers disable the `sys_getloadavg()` function for security reasons. If this function is unavailable, the CPU monitoring section will display a message indicating that CPU data could not be retrieved. Contact your hosting provider to inquire about enabling this function.

### Understanding Load Averages

Load averages represent the average number of processes waiting for CPU time over the specified interval:

*   **1-minute average** - Most responsive to recent changes
*   **5-minute average** - Smoothed short-term trend
*   **15-minute average** - Long-term baseline

A load average equal to your core count means the CPU is fully utilized. Values above the core count indicate processes are queuing for CPU time.

### Caching

CPU data is cached using WordPress Transients for 60 seconds by default. The cache is refreshed automatically via the Heartbeat API.

Developers can adjust the cache duration:

`add_filter( 'version_info_cache_ttl', function ( int $seconds ): int {     return 120; // Cache for 2 minutes instead of 1 } );`
