Hypnotoad: El Modelo de Servidor
El CMS corre como un daemon preforking bajo hypnotoad: un proceso master más procesos worker que cada uno atiende peticiones. Dos workers es el valor por defecto de los settings (CHINASKI_WORKERS, variable de entorno por instancia), dimensionado seguro en una máquina de 1 GB; subir a 4 es el paso documentado para un host de 2+ GB con editores concurrentes.
Lo que el modelo implica para ti como operador:
- La app es una sola dirección, varios workers. Se enlaza una sola vez (desde
CHINASKI_LISTEN, por defecto127.0.0.1:8080o la variable de entornoLISTEN_URLen modo daemon), y los workers comparten ese listener. - El aislamiento es por proceso. Un handler que consume mucha memoria queda contenido; el envelope de systemd (limitado a 1 GiB) evita que un proceso descontrolado deje sin recursos a la máquina.
- El scheduler y los builds son independientes. Las tareas programadas dentro del proceso y los builds largos emiten a la misma aplicación; el comportamiento de los subprocesos de build se cubre en la referencia de build.pl.
Como el número de workers es configuración por instancia, el mismo archivo de configuración soporta múltiples instancias lado a lado (el patrón de unidad chinaski@N solo cambia nombres, directorio de trabajo y entorno).