changeset 7387:46f92ac4e170

- issue2551275 - Allow configuring max_children in roundup-server. new -m and --max_children command line arguments and max_children config file setting for roundup_server.py/roundup-server. CHANGES.txt, admin_guide.txt, roundup-server.1 updated.
author John Rouillard <rouilj@ieee.org>
date Tue, 23 May 2023 23:34:06 -0400
parents 068aec2b38b5
children 024cbd13920d
files CHANGES.txt doc/admin_guide.txt roundup/scripts/roundup_server.py share/man/man1/roundup-server.1
diffstat 4 files changed, 17 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/CHANGES.txt	Tue May 23 19:26:23 2023 -0400
+++ b/CHANGES.txt	Tue May 23 23:34:06 2023 -0400
@@ -144,6 +144,9 @@
   hash function using PBKDF2-SHA512 available. Will be default in
   future. Directions for upgrading security by using it now is
   included in upgrading.txt. (John Rouillard)
+- issue2551275 - Allow configuring max_children in roundup-server.
+  When using roundup-server in fork mode, allow raising number of
+  forked children above the default of 40.
 
 2022-07-13 2.2.0
 
--- a/doc/admin_guide.txt	Tue May 23 19:26:23 2023 -0400
+++ b/doc/admin_guide.txt	Tue May 23 23:34:06 2023 -0400
@@ -115,6 +115,10 @@
   # Default: 
   group = 
 
+  # Maximum number of children to spawn using fork multiprocess mode.
+  # Default: 40
+  max_children = 40
+
   # don't fork (this overrides the pidfile mechanism)'
   # Allowed values: yes, no
   # Default: no
--- a/roundup/scripts/roundup_server.py	Tue May 23 19:26:23 2023 -0400
+++ b/roundup/scripts/roundup_server.py	Tue May 23 23:34:06 2023 -0400
@@ -648,6 +648,9 @@
                 "In order to use this option, "
                 "the server must be run initially as root.\n"
                 "Availability: Unix."),
+            (configuration.IntegerNumberOption, "max_children", 40,
+                "Maximum number of children to spawn using fork "
+                "multiprocess mode."),
             (configuration.BooleanOption, "nodaemon", "no",
                 "don't fork (this overrides the pidfile mechanism)'"),
             (configuration.BooleanOption, "log_hostnames", "no",
@@ -703,6 +706,7 @@
         "pidfile": "d:",
         "nodaemon": "D",
         "log_hostnames": "N",
+        "max_children": "m:",
         "multiprocess": "t:",
         "template": "i:",
         "loghttpvialogger": 'L',
@@ -811,6 +815,7 @@
                                 base_server):
                 pass
             server_class = ForkingServer
+            server_class.max_children = self["MAX_CHILDREN"]
         elif self["MULTIPROCESS"] == "thread":
             class ThreadingServer(socketserver.ThreadingMixIn,
                                   base_server):
@@ -942,6 +947,7 @@
  -l <fname>    log to the file indicated by fname instead of stderr/stdout
  -N            log client machine names instead of IP addresses (much slower)
  -i <fname>    set tracker index template
+ -m <children> maximum number of children to spawn in fork multiprocess mode
  -s            enable SSL
  -L            http request logging uses python logging (roundup.http)
  -e <fname>    PEM file containing SSL key and certificate
--- a/share/man/man1/roundup-server.1	Tue May 23 19:26:23 2023 -0400
+++ b/share/man/man1/roundup-server.1	Tue May 23 23:34:06 2023 -0400
@@ -25,6 +25,10 @@
 available. If an invalid mode is specified the server starts in
 \fBnone\fP (also called single) mode. Default fork.
 .TP
+\fB-m\fP \fImax_children\fP
+Set the maximum number of child processes (servers). This value
+may need to be increased on a heavily loaded site.  Default 40.
+.TP
 \fB-l\fP \fIfile\fP
 Sets a filename to log to (instead of stdout). This is required if the -d
 option is used.

Roundup Issue Tracker: http://roundup-tracker.org/