Bug 52293 - Scale UMC performance by starting multiple UMC instances
Scale UMC performance by starting multiple UMC instances
Status: CLOSED FIXED
Product: UCS
Classification: Unclassified
Component: UMC (Generic)
UCS 4.4
Other Linux
: P5 normal (vote)
: UCS 4.4-7-errata
Assigned To: Florian Best
Jürn Brodersen
:
Depends on:
Blocks: 52371
  Show dependency treegraph
 
Reported: 2020-11-02 12:36 CET by Sönke Schwardt-Krummrich
Modified: 2020-12-16 16:03 CET (History)
3 users (show)

See Also:
What kind of report is it?: Bug Report
What type of bug is this?: 5: Major Usability: Impairs usability in key scenarios
Who will be affected by this bug?: 3: Will affect average number of installed domains
How will those affected feel about the bug?: 5: Blocking further progress on the daily work
User Pain: 0.429
Enterprise Customer affected?:
School Customer affected?: Yes
ISV affected?:
Waiting Support: Yes
Flags outvoted (downgraded) after PO Review:
Ticket number:
Bug group (optional):
Max CVSS v3 score:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sönke Schwardt-Krummrich univentionstaff 2020-11-02 12:36:20 CET
The UMC (web) server is a Python process with a single-thread main loop, so not much more than one CPU core can be used by this process.

To scale better in very large environments with many requests, the UMC processes should be started multiple times to be able to use multiple CPU cores.
Comment 1 Patrick Ziegler univentionstaff 2020-11-09 15:50:47 CET
Added to backlog: https://taiga.knut.univention.de/project/oschwieg-ucs-5/us/3817
Comment 2 Florian Best univentionstaff 2020-12-01 14:54:59 CET
The UMC-Web-Server can now be configured to start multiple processes via the UCR variable umc/http/processes.
This creates several systemd services which depend on the UMC-Webserver service.
systemctl restart apache2 univention-management-console-web-server is necessary then.
A load balancer in apache makes sure that each session is connected to the same UMC-Webserver instance.
The portal server has been adjusted to forward all cookies and makes requests against the apache interface (with localhost, so that the apache2/force_https is ommited) instead of the UMC-Webserver Port.

univention-portal.yaml
47ddb0d92308 | Bug #52293: Merge branch 'fbest/umc-performance' into 4.4-7
548722752eab | YAML Bug #52371, Bug #52443, Bug #52442, Bug #52444, Bug #52293, Bug #52272

univention-portal (3.0.2-15)
47ddb0d92308 | Bug #52293: Merge branch 'fbest/umc-performance' into 4.4-7
e1bf5ef33b0d | Bug #52293: get session info from Apache instead of UMC-Webserver directly

univention-management-console.yaml
47ddb0d92308 | Bug #52293: Merge branch 'fbest/umc-performance' into 4.4-7
548722752eab | YAML Bug #52371, Bug #52443, Bug #52442, Bug #52444, Bug #52293, Bug #52272

univention-management-console (11.0.5-24)
47ddb0d92308 | Bug #52293: Merge branch 'fbest/umc-performance' into 4.4-7
d96d959b7b8a | Bug #52293: make starting UMC-Webserver with multiple processes possible
c6a24a327a42 | Bug #52293: make UMC-Server backlog configurable
Comment 3 Jürn Brodersen univentionstaff 2020-12-08 13:40:14 CET
What I tested:
Upgrade -> OK
Login -> OK
Login SAML -> OK
users/user -> OK
portal login -> OK
portal edit -> OK
jenkins -> OK
Setting "umc/http/processes=5" -> 5 umc processes -> OK
Apache load balancer cookie -> OK
systemctl restart univention-management-console-web-server.service -> restarts target and dependencies -> OK
Merge 5.0 -> OK
YAML -> OK