From fa80c69d9451b80aa71a183bc83e1382192b8263 Mon Sep 17 00:00:00 2001 From: Michael Date: Sat, 3 Dec 2022 19:44:50 +0000 Subject: [PATCH] Only fetch the processes if needed --- src/Core/System.php | 5 +++-- src/Core/Worker.php | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/Core/System.php b/src/Core/System.php index e0c23e55b..aa2d81d89 100644 --- a/src/Core/System.php +++ b/src/Core/System.php @@ -438,11 +438,12 @@ class System /** * Fetch the load and number of processes * + * @param bool $get_processes * @return array */ - public static function getLoadAvg(): array + public static function getLoadAvg(bool $get_processes = true): array { - if (@is_readable('/proc/loadavg')) { + if ($get_processes && @is_readable('/proc/loadavg')) { $content = @file_get_contents('/proc/loadavg'); if (empty($content)) { $content = shell_exec('uptime | sed "s/.*averages*: //" | sed "s/,//g"'); diff --git a/src/Core/Worker.php b/src/Core/Worker.php index 47da04b35..d6f97eed2 100644 --- a/src/Core/Worker.php +++ b/src/Core/Worker.php @@ -462,7 +462,7 @@ class Worker return false; } - $load = System::getLoadAvg(); + $load = System::getLoadAvg($processes_cooldown != 0); if (empty($load)) { return false; } @@ -508,7 +508,7 @@ class Worker $sleeping = false; - while ($load = System::getLoadAvg()) { + while ($load = System::getLoadAvg($processes_cooldown != 0)) { if (($load_cooldown > 0) && ($load['average1'] > $load_cooldown)) { if (!$sleeping) { Logger::notice('Load induced pre execution cooldown.', ['max' => $load_cooldown, 'load' => $load, 'called-by' => System::callstack(1)]);