Only fetch the processes if needed
This commit is contained in:
parent
8cb7d4a9bd
commit
fa80c69d94
|
@ -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"');
|
||||||
|
|
|
@ -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)]);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user