Hypnotoad: O Modelo de Servidor
O CMS roda como um daemon preforking sob o hypnotoad: um processo master mais processos worker, cada um tratando requisições. Dois workers é o padrão das configurações (CHINASKI_WORKERS, variável de env por instância): medida segura em uma máquina de 1 GB; subir para 4 é o passo documentado para um host de 2+ GB com editores simultâneos.
O que o modelo implica para você como operador:
- O app é um endereço, vários workers. Ele faz o bind uma vez (a partir de
CHINASKI_LISTEN, padrão127.0.0.1:8080ou a envLISTEN_URLem modo daemon), e os workers compartilham esse listener. - O isolamento é por processo. Um handler faminto por memória é contido; o envelope systemd (limitado a 1 GiB) evita que um processo descontrolado mate a máquina de fome.
- O scheduler e os builds são separados. Tarefas agendadas em-processo e builds longos emitem para a mesma aplicação; o comportamento do subprocesso de build está coberto na referência do build.pl.
Como a contagem de workers é configuração por instância, o mesmo arquivo de configuração suporta múltiplas instâncias lado a lado (o padrão de unit chinaski@N muda apenas nomes, diretório de trabalho e ambiente).