Only fetch the processes if needed

This commit is contained in:
Michael 2022-12-03 19:44:50 +00:00
parent 8cb7d4a9bd
commit fa80c69d94
2 changed files with 5 additions and 4 deletions

View File

@ -438,11 +438,12 @@ class System
/** /**
* Fetch the load and number of processes * Fetch the load and number of processes
* *
* @param bool $get_processes
* @return array * @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'); $content = @file_get_contents('/proc/loadavg');
if (empty($content)) { if (empty($content)) {
$content = shell_exec('uptime | sed "s/.*averages*: //" | sed "s/,//g"'); $content = shell_exec('uptime | sed "s/.*averages*: //" | sed "s/,//g"');

View File

@ -462,7 +462,7 @@ class Worker
return false; return false;
} }
$load = System::getLoadAvg(); $load = System::getLoadAvg($processes_cooldown != 0);
if (empty($load)) { if (empty($load)) {
return false; return false;
} }
@ -508,7 +508,7 @@ class Worker
$sleeping = false; $sleeping = false;
while ($load = System::getLoadAvg()) { while ($load = System::getLoadAvg($processes_cooldown != 0)) {
if (($load_cooldown > 0) && ($load['average1'] > $load_cooldown)) { if (($load_cooldown > 0) && ($load['average1'] > $load_cooldown)) {
if (!$sleeping) { if (!$sleeping) {
Logger::notice('Load induced pre execution cooldown.', ['max' => $load_cooldown, 'load' => $load, 'called-by' => System::callstack(1)]); Logger::notice('Load induced pre execution cooldown.', ['max' => $load_cooldown, 'load' => $load, 'called-by' => System::callstack(1)]);