Qbix Server: un servidor web en PHP puro que reduce el consumo de memoria por worker

Fuentes: Qbix Server: a pure PHP web server with fork-after-preload for 10x more workers

Qbix Server es un servidor web escrito íntegramente en PHP que prescinde de nginx, Apache y php-fpm. Su principal baza técnica es la estrategia de fork tras precarga: el proceso padre carga el framework, las clases, la configuración y las conexiones a la base de datos, y a continuación realiza un fork() para crear los workers. Gracias al copy-on-write de Unix, esos workers comparten la memoria de las clases precargadas y solo añaden alrededor de 5 MB por petición, frente a los 30–60 MB que consume cada worker de php-fpm al cargarlo todo de forma independiente. Sobre un servidor de 8 GB, esto se traduce en unos 1.600 workers PHP concurrentes, diez veces más que con php-fpm.

Además del ahorro de memoria, Qbix Server elimina el bootstrap por petición (10–50 ms en stacks tradicionales) y lo deja en 0 ms en cada request. También incluye de serie soporte para WebSockets, un dashboard en vivo, control de acceso a ficheros mediante X-Accel-Redirect e invalidación granular de caché con X-Cache-Tree. La puesta en marcha se reduce a un comando: php qbixserver.php --port=8080, y existe una versión PHAR de 196 KB.

El repositorio incluye comparativas con nginx y php-fpm, así como con alternativas como FrankenPHP (basado en Go + C) y Swoole (extensión C para PHP). En pruebas con un archivo estático de 13 KB, nginx rinde entre un 56 % y un 73 % de lo que consigue Qbix Server, ya que la implementación en C está optimizada para I/O puro. Sin embargo, cuando se mide carga real con PHP, el ahorro de bootstrap inclina la balanza a favor de Qbix Server, que puede situarse entre 2 y 5 veces más rápido que la combinación nginx + php-fpm. Para quien quiera acelerar el edge y la caché HTTPS, puede colocar nginx o un CDN (Cloudflare, CloudFront) delante del servidor.