From bf7ac6f5e0ac0dd085a9c10f38619a3e0d479006 Mon Sep 17 00:00:00 2001 From: Tomas Votruba Date: Fri, 9 Oct 2026 09:14:59 +0200 Subject: [PATCH] Respect cgroup/CFS CPU quota in parallel worker count --- src/Parallel/CpuCoreCountProvider.php | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) diff --git a/src/Parallel/CpuCoreCountProvider.php b/src/Parallel/CpuCoreCountProvider.php index c23aebf3dde..7e56c815678 100644 --- a/src/Parallel/CpuCoreCountProvider.php +++ b/src/Parallel/CpuCoreCountProvider.php @@ -5,19 +5,15 @@ namespace Rector\Parallel; use Fidry\CpuCoreCounter\CpuCoreCounter; -use Fidry\CpuCoreCounter\NumberOfCpuCoreNotFound; final class CpuCoreCountProvider { - private const int DEFAULT_CORE_COUNT = 2; - public function provide(): int { - try { - return new CpuCoreCounter() - ->getCount(); - } catch (NumberOfCpuCoreNotFound) { - return self::DEFAULT_CORE_COUNT; - } + // getAvailableForParallelisation() respects cgroup/CFS quota (docker --cpus, KUBERNETES_CPU_LIMIT), + // unlike getCount() which reports host cores and overcommits workers in containers + return new CpuCoreCounter() + ->getAvailableForParallelisation() + ->availableCpus; } }