|
|
95ea96 |
From f9d883b97b24efaf82e510601a4711bc9c0ea9c7 Mon Sep 17 00:00:00 2001
|
|
|
2737e7 |
From: Christian Heimes <cheimes@redhat.com>
|
|
|
2737e7 |
Date: Thu, 14 Jun 2018 17:04:13 +0200
|
|
|
2737e7 |
Subject: [PATCH] Increase WSGI process count to 5 on 64bit
|
|
|
2737e7 |
|
|
|
2737e7 |
Increase the WSGI daemon worker process count from 2 processes to 5
|
|
|
2737e7 |
processes. This allows IPA RPC to handle more parallel requests. The
|
|
|
2737e7 |
additional processes increase memory consumption by approximante 250 MB
|
|
|
2737e7 |
in total.
|
|
|
2737e7 |
|
|
|
2737e7 |
Since memory is scarce on 32bit platforms, only 64bit platforms are
|
|
|
2737e7 |
bumped to 5 workers.
|
|
|
2737e7 |
|
|
|
2737e7 |
Fixes: https://pagure.io/freeipa/issue/7587
|
|
|
2737e7 |
Signed-off-by: Christian Heimes <cheimes@redhat.com>
|
|
|
2737e7 |
Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
|
|
|
2737e7 |
---
|
|
|
2737e7 |
install/conf/ipa.conf | 2 +-
|
|
|
2737e7 |
ipaplatform/base/constants.py | 5 +++++
|
|
|
2737e7 |
ipaserver/install/httpinstance.py | 1 +
|
|
|
2737e7 |
ipaserver/install/server/upgrade.py | 3 ++-
|
|
|
2737e7 |
4 files changed, 9 insertions(+), 2 deletions(-)
|
|
|
2737e7 |
|
|
|
2737e7 |
diff --git a/install/conf/ipa.conf b/install/conf/ipa.conf
|
|
|
95ea96 |
index 696e5aab1aca1875eb711b91351f41987a8379d1..912a63c2240e0681dfbeeac223a902b15b304716 100644
|
|
|
2737e7 |
--- a/install/conf/ipa.conf
|
|
|
2737e7 |
+++ b/install/conf/ipa.conf
|
|
|
95ea96 |
@@ -47,7 +47,7 @@ WSGISocketPrefix /run/httpd/wsgi
|
|
|
2737e7 |
|
|
|
2737e7 |
|
|
|
2737e7 |
# Configure mod_wsgi handler for /ipa
|
|
|
2737e7 |
-WSGIDaemonProcess ipa processes=2 threads=1 maximum-requests=500 \
|
|
|
2737e7 |
+WSGIDaemonProcess ipa processes=$WSGI_PROCESSES threads=1 maximum-requests=500 \
|
|
|
95ea96 |
user=ipaapi group=ipaapi display-name=%{GROUP} socket-timeout=2147483647 \
|
|
|
95ea96 |
lang=C.UTF-8 locale=C.UTF-8
|
|
|
2737e7 |
WSGIImportScript /usr/share/ipa/wsgi.py process-group=ipa application-group=ipa
|
|
|
2737e7 |
diff --git a/ipaplatform/base/constants.py b/ipaplatform/base/constants.py
|
|
|
95ea96 |
index ca4a12ec017e81b32dc796062608a96ce65a0235..075a3ba774e1286e50258b464bd7687d484f6029 100644
|
|
|
2737e7 |
--- a/ipaplatform/base/constants.py
|
|
|
2737e7 |
+++ b/ipaplatform/base/constants.py
|
|
|
2737e7 |
@@ -5,9 +5,11 @@
|
|
|
2737e7 |
'''
|
|
|
2737e7 |
This base platform module exports platform dependant constants.
|
|
|
2737e7 |
'''
|
|
|
2737e7 |
+import sys
|
|
|
2737e7 |
|
|
|
2737e7 |
|
|
|
2737e7 |
class BaseConstantsNamespace(object):
|
|
|
2737e7 |
+ IS_64BITS = sys.maxsize > 2 ** 32
|
|
|
2737e7 |
DS_USER = 'dirsrv'
|
|
|
2737e7 |
DS_GROUP = 'dirsrv'
|
|
|
2737e7 |
HTTPD_USER = "apache"
|
|
|
95ea96 |
@@ -42,6 +44,9 @@ class BaseConstantsNamespace(object):
|
|
|
95ea96 |
# WSGI module override, only used on Fedora
|
|
|
95ea96 |
MOD_WSGI_PYTHON2 = None
|
|
|
95ea96 |
MOD_WSGI_PYTHON3 = None
|
|
|
2737e7 |
+ # WSGIDaemonProcess process count. On 64bit platforms, each process
|
|
|
2737e7 |
+ # consumes about 110 MB RSS, from which are about 35 MB shared.
|
|
|
2737e7 |
+ WSGI_PROCESSES = 5 if IS_64BITS else 2
|
|
|
95ea96 |
|
|
|
95ea96 |
|
|
|
95ea96 |
constants = BaseConstantsNamespace()
|
|
|
2737e7 |
diff --git a/ipaserver/install/httpinstance.py b/ipaserver/install/httpinstance.py
|
|
|
95ea96 |
index 231bffa2c6ec1fd124738649912e4bd958e802b7..3764870ee77f2ba0da18ec004664e6f66c13bba1 100644
|
|
|
2737e7 |
--- a/ipaserver/install/httpinstance.py
|
|
|
2737e7 |
+++ b/ipaserver/install/httpinstance.py
|
|
|
95ea96 |
@@ -148,6 +148,7 @@ class HTTPInstance(service.Service):
|
|
|
2737e7 |
DOMAIN=self.domain,
|
|
|
2737e7 |
AUTOREDIR='' if auto_redirect else '#',
|
|
|
2737e7 |
CRL_PUBLISH_PATH=paths.PKI_CA_PUBLISH_DIR,
|
|
|
2737e7 |
+ WSGI_PROCESSES=constants.WSGI_PROCESSES,
|
|
|
2737e7 |
)
|
|
|
2737e7 |
self.ca_file = ca_file
|
|
|
2737e7 |
if ca_is_configured is not None:
|
|
|
2737e7 |
diff --git a/ipaserver/install/server/upgrade.py b/ipaserver/install/server/upgrade.py
|
|
|
95ea96 |
index ab09b98406df251f769c4747c9250075ab610362..ee3cedd78a2f45f33665bf562e9426cf68325544 100644
|
|
|
2737e7 |
--- a/ipaserver/install/server/upgrade.py
|
|
|
2737e7 |
+++ b/ipaserver/install/server/upgrade.py
|
|
|
95ea96 |
@@ -1681,7 +1681,8 @@ def upgrade_configuration():
|
|
|
2737e7 |
AUTOREDIR='' if auto_redirect else '#',
|
|
|
2737e7 |
CRL_PUBLISH_PATH=paths.PKI_CA_PUBLISH_DIR,
|
|
|
2737e7 |
DOGTAG_PORT=8009,
|
|
|
2737e7 |
- CLONE='#'
|
|
|
2737e7 |
+ CLONE='#',
|
|
|
2737e7 |
+ WSGI_PROCESSES=constants.WSGI_PROCESSES,
|
|
|
2737e7 |
)
|
|
|
2737e7 |
|
|
|
2737e7 |
subject_base = find_subject_base()
|
|
|
2737e7 |
--
|
|
|
95ea96 |
2.14.4
|
|
|
2737e7 |
|