1Starman(3pm)          User Contributed Perl Documentation         Starman(3pm)
2
3
4

NAME

6       Starman - High-performance preforking PSGI/Plack web server
7

SYNOPSIS

9         # Run app.psgi with the default settings
10         > starman
11
12         # run with Server::Starter
13         > start_server --port 127.0.0.1:80 -- starman --workers 32 myapp.psgi
14
15         # UNIX domain sockets
16         > starman --listen /tmp/starman.sock
17
18       Read more options and configurations by running `perldoc starman`
19       (lower-case s).
20

DESCRIPTION

22       Starman is a PSGI perl web server that has unique features such as:
23
24       High Performance
25           Uses the fast XS/C HTTP header parser
26
27       Preforking
28           Spawns workers preforked like most high performance UNIX servers
29           do. Starman also reaps dead children and automatically restarts the
30           worker pool.
31
32       Signals
33           Supports "HUP" for graceful worker restarts, and "TTIN"/"TTOU" to
34           dynamically increase or decrease the number of worker processes, as
35           well as "QUIT" to gracefully shutdown the worker processes.
36
37       Superdaemon aware
38           Supports Server::Starter for hot deploy and graceful restarts.
39
40       Multiple interfaces and UNIX Domain Socket support
41           Able to listen on multiple interfaces including UNIX sockets.
42
43       Small memory footprint
44           Preloading the applications with "--preload-app" command line
45           option enables copy-on-write friendly memory management. Also, the
46           minimum memory usage Starman requires for the master process is 7MB
47           and children (workers) is less than 3.0MB.
48
49       PSGI compatible
50           Can run any PSGI applications and frameworks
51
52       HTTP/1.1 support
53           Supports chunked requests and responses, keep-alive and pipeline
54           requests.
55
56       UNIX only
57           This server does not support Win32.
58

PERFORMANCE

60       Here's a simple benchmark using "Hello.psgi".
61
62         -- server: Starman (workers=10)
63         Requests per second:    6849.16 [#/sec] (mean)
64         -- server: Twiggy
65         Requests per second:    3911.78 [#/sec] (mean)
66         -- server: AnyEvent::HTTPD
67         Requests per second:    2738.49 [#/sec] (mean)
68         -- server: HTTP::Server::PSGI
69         Requests per second:    2218.16 [#/sec] (mean)
70         -- server: HTTP::Server::PSGI (workers=10)
71         Requests per second:    2792.99 [#/sec] (mean)
72         -- server: HTTP::Server::Simple
73         Requests per second:    1435.50 [#/sec] (mean)
74         -- server: Corona
75         Requests per second:    2332.00 [#/sec] (mean)
76         -- server: POE
77         Requests per second:    503.59 [#/sec] (mean)
78
79       This benchmark was processed with "ab -c 10 -t 1 -k" on MacBook Pro 13"
80       late 2009 model on Mac OS X 10.6.2 with perl 5.10.0. YMMV.
81

NOTES

83       Because Starman runs as a preforking model, it is not recommended to
84       serve the requests directly from the internet, especially when slow
85       requesting clients are taken into consideration. It is suggested to put
86       Starman workers behind the frontend servers such as nginx, and use HTTP
87       proxy with TCP or UNIX sockets.
88

AUTHOR

90       Tatsuhiko Miyagawa <miyagawa@bulknews.net>
91
92       Andy Grundman wrote Catalyst::Engine::HTTP::Prefork, which this module
93       is heavily based on.
94
95       Kazuho Oku wrote Net::Server::SS::PreFork that makes it easy to add
96       Server::Starter support to this software.
97
99       Tatsuhiko Miyagawa, 2010-
100

LICENSE

102       This library is free software; you can redistribute it and/or modify it
103       under the same terms as Perl itself.
104

SEE ALSO

106       Plack Catalyst::Engine::HTTP::Prefork Net::Server::PreFork
107
108
109
110perl v5.30.0                      2019-07-26                      Starman(3pm)
Impressum