kazeburo / Gazelle

Preforked Plack Handler for performance freaks
https://metacpan.org/release/Gazelle
Other
74 stars 19 forks source link

the diff with monoceros? #2

Closed chenryn closed 9 years ago

chenryn commented 9 years ago

monoceros support http/1.1 and keepalive. so, why create Gazelle? what's it's usage?

kazeburo commented 9 years ago

Gazelle is optimized for application server behind reverse proxy link nginx. so HTTP/1.1 and keepalive is not required. I recommend use Gazelle as nginx upstream's backend server.

Keepalive between preforked application server (for example Gazelle, Starlet, Starman and Ruby's Unicorn) and reverse proxy is difficult. keepalive sockets that waits next requests cause a performance degradation of application due to process shortage.

Monoceros has hybrid architecture. Monoceros has prefork worker and event-model connection worker. Monoceros's prefork worker does not handle sockets of waiting next requests. Therefore, performance degradation due to process shortage does not occured. However, it has not good performance like Gazelle for complex architecture.