diff --git a/src/Core/System.php b/src/Core/System.php
index e0c23e55b9..aa2d81d895 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 47da04b35c..d6f97eed21 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)]);