Univention Bugzilla – Bug 43694
UDM does not scale well (bad performance) for lots of users especially with jpegPhoto set
Last modified: 2020-06-22 17:06:54 CEST
UDM does not scale well (bad performance) for lots of users especially with jpegPhoto set. ldap-search is significantly faster than udm. 600 users, no jpegPhoto: time ldapsearch -x -D "uid=Administrator,cn=users,dc=univention,dc=intranet" -w univention "(univentionObjectType=users/user)" > /dev/zero real 0m0.514s user 0m0.020s sys 0m0.020s time udm users/user list > /dev/zero real 0m5.794s user 0m0.204s sys 0m0.064s time umc-command -U Administrator -P univention udm/query -f "users/user" -o objectProperty=None > /dev/zero real 0m4.553s user 0m1.296s sys 0m0.076s 600 users, 400 with jpegPhoto set (around 300MB in total) time ldapsearch -x -D "uid=Administrator,cn=users,dc=univention,dc=intranet" -w univention "(univentionObjectType=users/user)" > /dev/zero real 0m4.905s user 0m1.468s sys 0m0.188s * without retrieving the jpegPhoto the call gets a bit faster (~1.5s) time udm users/user list > /dev/zero E: Daemon died. real 1m55.495s user 0m0.072s sys 0m0.072s * I don't know any way to not retrieve the jpegPhoto with udm, maybe we should retrieve binary data only if requested. time umc-command -U Administrator -P univention udm/query -f "users/user" -o objectProperty=None > /dev/zero real 1m2.066s user 0m3.644s sys 0m0.536s * umc-command does not return jpegPhoto if not requested To be fair this was tested on a VM with 1 core and 1G of ram. In reality a domain controller with 500+ users will probably be on a faster machine.
I see the following options for an optimization: * Restrict photos to a size of NxN (configurable via a UCR variable) * Make sure that a simple query command does ignore the photo property (but maybe the size restriction already helps here)