22 Sep 2021 07:52:18 UTC
- Distribution: Monoceros
- Module version: 0.28
- Source (raw)
- Browse (raw)
- How to Contribute
- Issues (5)
- Testers (62 / 9 / 0)
- KwaliteeBus factor: 1
- 66.35% Coverage
- License: perl_5
- Perl: v5.8.5
- Activity24 month
- Download (23.31KB)
- MetaCPAN Explorer
- Subscribe to distribution
- This version
- Latest version++ed by:3 non-PAUSE usersKAZEBURO Masahiro Naganoand 2 contributors
- Michael Kröll
- Syohei YOSHIDA
- COMMAND LINE OPTIONS
- RECOMMENDED MODULES
- EXPERIMENTAL FEATURES
- SEE ALSO
Monoceros - PSGI/Plack server with event driven connection manager, preforking workers
% plackup -s Monoceros --max-keepalive-reqs=10000 --max-workers=2 -a app.psgi
Monoceros is PSGI/Plack server supports HTTP/1.1. Monoceros has a event-driven connection manager and preforking workers. Monoceros can keep large amount of connection at minimal processes.
+--------+ +---+ worker | TCP +---------+ UNIX DOMAIN SOCKET | +--------+ --------------- | manager | ----------------------+ +---------+ | +--------+ <- keepalive -> <-- passing fds --> `---+ worker | +--------+
Features of Monoceros
- a manager process based on AnyEvent keeps over C10K connections
- uses IO::FDPass for passing a file descriptor to workers
- supports HTTP/1.1 and also supports HTTP/1.0 keepalive
And this server inherit Starlet. Monoceros supports following features too.
- prefork and graceful shutdown using Parallel::Prefork
- hot deploy using Server::Starter
- fast HTTP processing using HTTP::Parser::XS (optional)
- accept4(2) using Linux::Socket::Accept4 (optional)
Currently, Monoceros does not support spawn-interval and max-keepalive-reqs.
In addition to the options supported by plackup, Monoceros accepts following options(s). Note, the default value of several options is different from Starlet.
number of worker processes (default: 5)
seconds until timeout (default: 300)
timeout for persistent connections (default: 10)
max. number of requests to be handled before a worker process exits (default: 1000)
if set, randomizes the number of requests handled by a single worker process between the value and that supplied by
max, number of connections to keep in the manager process. If you want to increase this value, You should check your system limitations. (default: half number of POSIX::_SC_OPEN_MAX)
max. number of requests to continue to read a request in a worker process. Monoceros can read a next request after the response for maximum throughput. (default: 100)
if set, randomizes the number of requests to continue to read a request between the value and that supplied by
disable HTTP keepalive feature (default: enabled)
For more performance. I recommends you to install these module.
Linux only. If Linux::Socket::Accept4 is available, Monoceros use it. accept4(2) can do accept(2) and set SOCK_CLOEXEC|SOCK_NONBLOCK at once.
Monoceros send IO::Handle like body with sendfile(2). Sys::Sendfile is required.
Copyright (C) Masahiro Nagano
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Masahiro Nagano <email@example.com>