loadavg
(PHP 8.6+, True Async 1.0)
Async\loadavg() devuelve el load average del sistema en los últimos 1, 5 y 15 minutos, o null si la plataforma no admite load average (Windows).
Descripción
namespace Async;
function loadavg(): ?arrayEl load average es la longitud media de la run-queue del kernel. Es una métrica distinta de la utilización de CPU: en una máquina de 4 núcleos, un load sostenido de 4.0 significa que la run-queue está, en promedio, totalmente llena.
Valor de retorno
array{0: float, 1: float, 2: float}: [1min, 5min, 15min]. En Windows devuelve null.
Ejemplos
Ejemplo #1 Uso básico
<?php
use function Async\loadavg;
$load = loadavg();
if ($load !== null) {
printf("Load average: %.2f %.2f %.2f\n", $load[0], $load[1], $load[2]);
} else {
echo "Load average no disponible en esta plataforma\n";
}Ejemplo #2 Alerta por sobrecarga
<?php
use function Async\spawn;
use function Async\delay;
use function Async\loadavg;
use function Async\available_parallelism;
spawn(function () {
$cpu = available_parallelism();
while (true) {
delay(60_000);
$load = loadavg();
if ($load === null) continue;
// Load a 5 minutos por encima del número de CPUs disponibles = sobrecarga sostenida.
if ($load[1] > $cpu) {
error_log(sprintf(
"[WARN] sustained load %.2f (5min) > %d CPUs",
$load[1], $cpu
));
}
}
});Notas
Load average ≠ uso de CPU. Un load alto en una máquina con poco uso de CPU suele significar carga IO-bound (procesos en estado
Dsobre disco/red). Para estimar la CPU prefierecpu_usage().
Windows. En Windows no existe el concepto de load average (es específico de BSD/Linux). La función devuelve
null, de forma intencional, sin emulación.
Véase también
- Async\cpu_usage(): carga actual del proceso y del sistema
- Async\available_parallelism(): número de CPUs disponibles
- Async\CpuSnapshot: contadores de CPU de bajo nivel