* [PATCH 0/6] more minor cleanups and doc updates
@ 2019-01-31 10:51 7% Eric Wong
2019-01-31 10:51 7% ` [PATCH 4/6] doc/config: user documentation for limiters Eric Wong
0 siblings, 1 reply; 2+ results
From: Eric Wong @ 2019-01-31 10:51 UTC (permalink / raw)
To: meta
Always more work to do :x
Eric Wong (6):
inbox: drop psgi.url_scheme requirement from base_url
qspawn: documentation updates
config: tiny cleanup to use _array() sub
doc/config: user documentation for limiters
doc/config: document "replyto" configuration knob
doc: remove completed TODO items
Documentation/public-inbox-config.pod | 78 +++++++++++++++++++++++++++
TODO | 5 --
lib/PublicInbox/Config.pm | 2 +-
lib/PublicInbox/Inbox.pm | 4 +-
lib/PublicInbox/Qspawn.pm | 77 ++++++++++++++++++++++----
lib/PublicInbox/ViewVCS.pm | 3 +-
t/solver_git.t | 2 +-
7 files changed, 150 insertions(+), 21 deletions(-)
--
EW
^ permalink raw reply [relevance 7%]
* [PATCH 4/6] doc/config: user documentation for limiters
2019-01-31 10:51 7% [PATCH 0/6] more minor cleanups and doc updates Eric Wong
@ 2019-01-31 10:51 7% ` Eric Wong
0 siblings, 0 replies; 2+ results
From: Eric Wong @ 2019-01-31 10:51 UTC (permalink / raw)
To: meta
I've relied on this feature to keep the VPS behind
https://public-inbox.org/git/ from OOM-ing since 2016,
so document it to ensure others can make use of low-end
servers like I do.
More limiters may become configurable for viewvcs and
solver functionality (or we continue using the default
one).
---
Documentation/public-inbox-config.pod | 59 +++++++++++++++++++++++++++
1 file changed, 59 insertions(+)
diff --git a/Documentation/public-inbox-config.pod b/Documentation/public-inbox-config.pod
index 23ebcc5..cad0c4e 100644
--- a/Documentation/public-inbox-config.pod
+++ b/Documentation/public-inbox-config.pod
@@ -91,6 +91,18 @@ C<nntp://news.gmane.org/gmane.mail.public-inbox.general>
Default: none
+=item publicinbox.<name>.httpbackendmax
+
+If a digit, the maximum number of parallel
+L<git-http-backend(1)> processes to allow for cloning this
+particular inbox.
+
+If an alphanumeric value starting with a lowercase alphabetic
+character is specified, the inbox will use a L</NAMED LIMITER>
+which can be shared by multiple inboxes.
+
+Default: 32 (using a default limiter shared by all inboxes)
+
=item publicinbox.<name>.coderepo
The nickname of a "coderepo" section associated with the inbox.
@@ -169,6 +181,53 @@ Default: none
=back
+=head2 NAMED LIMITER (PSGI)
+
+Named limiters are useful for preventing large inboxes from
+monopolizing (or overloading) the server. Since serving git
+clones (via L<git-http-backend(1)> can be memory-intensive for
+large inboxes, it makes sense to put large inboxes on a named
+limiter with a low max value; while smaller inboxes can use
+the default limiter.
+
+=over 8
+
+=item publicinboxlimiter.<name>.max
+
+The maximum number of parallel processes for the given limiter.
+
+=back
+
+=head3 EXAMPLE WITH NAMED LIMITERS
+
+ ; big inboxes which require lots of memory to clone:
+ [publicinbox "big1"]
+ mainrepo = /path/to/big1
+ address = big1@example.com
+ httpbackendmax = big
+ [publicinbox "big2"]
+ mainrepo = /path/to/big2
+ address = big2@example.com
+ httpbackendmax = big
+
+ ; tiny inboxes which are easily cloned:
+ [publicinbox "tiny1"]
+ mainrepo = /path/to/tiny1
+ address = tiny1@example.com
+ [publicinbox "tiny2"]
+ mainrepo = /path/to/tiny2
+ address = tiny2@example.com
+
+ [publicinboxlimiter "big"]
+ max = 4
+
+In the above example, the "big1" and "big2" are limited to four
+parallel L<git-http-backend(1)> processes between them.
+
+However, "tiny1" and "tiny2" will share the default limiter
+which means there can be 32 L<git-http-backend(1)> processes
+between them.
+
=head1 ENVIRONMENT
=over 8
--
EW
^ permalink raw reply related [relevance 7%]
Results 1-2 of 2 | reverse | options above
-- pct% links below jump to the message on this page, permalinks otherwise --
2019-01-31 10:51 7% [PATCH 0/6] more minor cleanups and doc updates Eric Wong
2019-01-31 10:51 7% ` [PATCH 4/6] doc/config: user documentation for limiters Eric Wong
Code repositories for project(s) associated with this public inbox
https://80x24.org/public-inbox.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).