Ok, finalmente encontrei a resposta. O número ideal de trabalhadores Unicorn não está diretamente conectado ao número de núcleos da CPU, isso depende da sua carga e da estrutura / capacidade de resposta do aplicativo interno. Basicamente, usamos amostrador de amostragem para determinar o estado dos trabalhadores, tentamos manter os trabalhadores 70% ociosos e 30% fazendo o trabalho real. Portanto, 70% das amostras devem estar "aguardando a chamada select () para obter uma solicitação do servidor frontend". Nossa pesquisa mostrou que existem apenas 3 estados efetivos de trabalhadores: 0-30% das amostras estão inativas, 30-50% das amostras estão inativas e 50-70% das amostras estão inativas (sim, podemos obter mais amostras ociosas, mas há não é um ponto real, porque a capacidade de resposta da aplicação não muda significativamente). Consideramos 0-30% situação uma "zona vermelha" e 30-50% situação uma "zona amarela".