Máximo de threads php-fpm por um núcleo

2

Gostaria de perguntar como obter o melhor (máximo) número de threads php-fpm por um núcleo? Como fazer o benchmark (no linux / debian)? E como reconhecer que essa contagem já é demais? Obrigado.

    
por thorewi 16.10.2016 / 08:25

1 resposta

2

Você provavelmente quer dizer processos no pool. Isso depende principalmente de quanto bloqueio o seu código PHP real. Quanto mais ele aguarda, mais processos você precisa ter, porque mais choldren irão apenas bloquear e esperar por algo (por exemplo - para solicitações HTTP externas terminarem). Este número real depende da quantidade de memória que você tem, por outro lado. A regra básica 2-4 proccesses por núcleo aplica-se a algum código ideal que não bloqueia muito. É claro que você pode determinar o número formal de threads por núcleo observando as especificações da sua CPU, por exemplo # of Threads por núcleo para CPU Intel E5-2640 seria 2.

A abordagem simples sobre como determinar o número real de filhos no conjunto é simples: torne-o # de Threads para o seu CPU no início e aumente ligeiramente, enquanto repete o teste de benchmarking para a sua instalação . Quando o desempenho parar para aumentar ou quando você atingir o limite de memória, pare de aumentar.

Lembre-se também que em uma situação em que algum recurso externo atingirá seu limite ou não responder (por exemplo, - servidor de banco de dados ou algum servidor HTTP externo que seu código possa consultar) - você atingirá o limite independentemente de quantas crianças na piscina que você tem, eles apenas ficarão presos em um estado de espera. Portanto, você deve ter em mente esse possível gargalo ao determinar seu limite de pool.

    
por 16.10.2016 / 09:41