plack-middleware-sizelimit

Terminate processes if they grow too large

0
0
0
Perl
public
Forked

NAME

Plack::Middleware::SizeLimit - Terminate processes if they grow too large

SYNOPSIS

use Plack::Builder;

builder {
    enable SizeLimit => (
        max_unshared_size_in_kb => '4096', # 4MB
        # min_shared_size_in_kb => '8192', # 8MB
        # max_process_size_in_kb => '16384', # 16MB
        check_every_n_requests => 2
    );
    $app;
};

DESCRIPTION

This middleware is a port of the excellent Apache::SizeLimit module
for multi-process Plack servers, such as Starman, Starlet and uWSGI.

This middleware only works when the environment psgix.harakiri is
set to a true value by the Plack server. If it’s set to false, then this
middleware simply does nothing.

You must use at least version 0.2006 of Starman, and 0.19 of Starlet. Earlier versions
ignore the flag to stop the process.

CONFIGURATIONS

  • max_unshared_size_in_kb

    The maximum amount of unshared memory the process can use;
    usually this option is all one needs.

    Experience on one heavily trafficked mod_perl site showed that
    setting this option and leaving the others unset is the most effective
    policy.

    This is because it only kills off processes that are truly using too much
    physical RAM, allowing most processes to live longer and reducing the
    process churn rate.

  • min_shared_size_in_kb

    Sets the minimum amount of shared memory the process must have.

  • max_process_size_in_kb

    The maximum size of the process, including both shared and unshared memory.

  • check_every_n_requests

    Since checking the process size can take a few system calls on some
    platforms (e.g. linux), you may specify this option to check the process
    size every N requests.

  • log_when_limits_exceeded

    When true, a warning will be logged when it kills off a process.

SEE ALSO

Starman, Starlet

AUTHORS

唐鳳 cpan@audreyt.org

CC0 1.0 Universal

To the extent possible under law, 唐鳳 has waived all copyright and related
or neighboring rights to Plack::Middleware::SizeLimit.

This work is published from Taiwan.

http://creativecommons.org/publicdomain/zero/1.0

v0.3.3[beta]