Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Starman(3)	      User Contributed Perl Documentation	    Starman(3)

NAME
       Starman - High-performance preforking PSGI/Plack	web server

SYNOPSIS
	 # Run app.psgi	with the default settings
	 > starman

	 # run with Server::Starter
	 > start_server	--port 127.0.0.1:80 -- starman --workers 32 myapp.psgi

	 # UNIX	domain sockets
	 > starman --listen /tmp/starman.sock

       Read more options and configurations by running `perldoc	starman`
       (lower-case s).

DESCRIPTION
       Starman is a PSGI perl web server that has unique features such as:

       High Performance
	   Uses	the fast XS/C HTTP header parser

       Preforking
	   Spawns workers preforked like most high performance UNIX servers
	   do. Starman also reaps dead children	and automatically restarts the
	   worker pool.

       Signals
	   Supports "HUP" for graceful worker restarts,	and "TTIN"/"TTOU" to
	   dynamically increase	or decrease the	number of worker processes, as
	   well	as "QUIT" to gracefully	shutdown the worker processes.

       Superdaemon aware
	   Supports Server::Starter for	hot deploy and graceful	restarts.

       Multiple	interfaces and UNIX Domain Socket support
	   Able	to listen on multiple interfaces including UNIX	sockets.

       Small memory footprint
	   Preloading the applications with "--preload-app" command line
	   option enables copy-on-write	friendly memory	management. Also, the
	   minimum memory usage	Starman	requires for the master	process	is 7MB
	   and children	(workers) is less than 3.0MB.

       PSGI compatible
	   Can run any PSGI applications and frameworks

       HTTP/1.1	support
	   Supports chunked requests and responses, keep-alive and pipeline
	   requests.

       UNIX only
	   This	server does not	support	Win32.

PERFORMANCE
       Here's a	simple benchmark using "Hello.psgi".

	 -- server: Starman (workers=10)
	 Requests per second:	 6849.16 [#/sec] (mean)
	 -- server: Twiggy
	 Requests per second:	 3911.78 [#/sec] (mean)
	 -- server: AnyEvent::HTTPD
	 Requests per second:	 2738.49 [#/sec] (mean)
	 -- server: HTTP::Server::PSGI
	 Requests per second:	 2218.16 [#/sec] (mean)
	 -- server: HTTP::Server::PSGI (workers=10)
	 Requests per second:	 2792.99 [#/sec] (mean)
	 -- server: HTTP::Server::Simple
	 Requests per second:	 1435.50 [#/sec] (mean)
	 -- server: Corona
	 Requests per second:	 2332.00 [#/sec] (mean)
	 -- server: POE
	 Requests per second:	 503.59	[#/sec]	(mean)

       This benchmark was processed with "ab -c	10 -t 1	-k" on MacBook Pro 13"
       late 2009 model on Mac OS X 10.6.2 with perl 5.10.0. YMMV.

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

AUTHOR
       Tatsuhiko Miyagawa <miyagawa@bulknews.net>

       Andy Grundman wrote Catalyst::Engine::HTTP::Prefork, which this module
       is heavily based	on.

       Kazuho Oku wrote	Net::Server::SS::PreFork that makes it easy to add
       Server::Starter support to this software.

COPYRIGHT
       Tatsuhiko Miyagawa, 2010-

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

SEE ALSO
       Plack Catalyst::Engine::HTTP::Prefork Net::Server::PreFork

perl v5.32.0			  2015-06-03			    Starman(3)

NAME | SYNOPSIS | DESCRIPTION | PERFORMANCE | NOTES | AUTHOR | COPYRIGHT | LICENSE | SEE ALSO

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Starman&sektion=3&manpath=FreeBSD+12.2-RELEASE+and+Ports>

home | help