GSP
Quick Navigator

Search Site

Unix VPS
A - Starter
B - Basic
C - Preferred
D - Commercial
MPS - Dedicated
Previous VPSs
* Sign Up! *

Support
Contact Us
Online Help
Handbooks
Domain Status
Man Pages

FAQ
Virtual Servers
Pricing
Billing
Technical

Network
Facilities
Connectivity
Topology Map

Miscellaneous
Server Agreement
Year 2038
Credits
 

USA Flag

 

 

Man Pages
Monoceros(3) User Contributed Perl Documentation Monoceros(3)

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-reqs-per-chlid" (default: none)

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 "--max-readahead-reqs" (default: none)

disable HTTP keepalive feature (default: enabled)

For more performance. I recommends you to install these module.

- EV

- HTTP::Parser::XS

accept4
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.
sendfile
Monoceros send IO::Handle like body with sendfile(2). Sys::Sendfile is required.

Starlet, Server::Starter, AnyEvent, IO::FDPass

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 <kazeburo@gmail.com>
2022-04-09 perl v5.32.1

Search for    or go to Top of page |  Section 3 |  Main Index

Powered by GSP Visit the GSP FreeBSD Man Page Interface.
Output converted with ManDoc.