NAME

Test2::Harness::Runner::Resource::PipeLimits - Throttle jobs when per-user pipe budget is close to exhausted.

SYNOPSIS

yath test -R PipeLimits
yath test -R PipeLimits --pipe-headroom 15% --pipe-service-count 5

DESCRIPTION

The Linux per-user pipe page budget (/proc/sys/fs/pipe-user-pages-soft) caps how many memory pages across all pipes one user may hold open. Exceeding it makes new pipe(2) calls fail.

PipeLimits computes pipe-page usage from in-flight tests: each test consumes pipes_per_test pipes, plus a fixed service_count * pipes_per_service baseline. Defers new starts when launching another would push usage past the configured headroom.

--pipe-headroom may be a count of pages or a percent of the cap. --utilize PCT layers on top; effective threshold is the more conservative of the two.

LIMITATIONS

Linux only. Counts only pipes opened by tests this resource has been told about via assign/release; system-wide use is reflected in the cap reading.

SOURCE

The source code repository for Test2-Harness can be found at http://github.com/Test-More/Test2-Harness/.

MAINTAINERS

Chad Granum <exodist@cpan.org>

AUTHORS

Chad Granum <exodist@cpan.org>

COPYRIGHT

Copyright Chad Granum <exodist7@gmail.com>.

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

See http://dev.perl.org/licenses/