#1006 RFC2307bis initgroups calls are slow
Closed: Fixed None Opened 10 years ago by sgallagh.

Several users have reported recently that using RFC2307bis performs very slowly on {{{initgroups()}}} requests. One user stated that moving the cache to /dev/shm resulted in significant performance gains*.

While going through the RFC3207bis code to address ticket #868, I think I have identified the real problem here. We are performing far too many transactions when dealing with nested groups.

We have a transaction for saving the original user, then another to save the user's direct groups, then one transaction per group above the first level for saving nested groups. This results in a large number of probably unnecessary disk-writes.

We need to save the group information we gather until the very end of processing and save it in a single transaction. This should provide a marked performance improvement.

  • The user in question cited a reduction of 30+ seconds down to 1 or 2 seconds.

Each transaction means 2 fsync to the disk which are painfully slow, esp on filesystems that do respect the command and make sure data is on the platter.

So reducing transactions is certainly going to make a marked perf. difference, good finding!

Fields changed

milestone: NEEDS_TRIAGE => SSSD 1.5.14
owner: somebody => jhrozek

Fields changed

rhbz: => 742288

Fields changed

status: new => assigned

Fields changed

patch: 0 => 1

Fixed by:
- master
- c88e387
- 9547007
- 707ddc7
- f249521
- sssd-1-6
- 2c20e4e
- 14d9910
- 0c37918
- sssd-1-5
- 9d04790
- 8c3fd8e
- 9675044

resolution: => fixed
status: assigned => closed

Metadata Update from @sgallagh:
- Issue assigned to jhrozek
- Issue set to the milestone: SSSD 1.5.14

4 years ago

SSSD is moving from Pagure to Github. This means that new issues and pull requests
will be accepted only in SSSD's github repository.

This issue has been cloned to Github and is available here:
- https://github.com/SSSD/sssd/issues/2048

If you want to receive further updates on the issue, please navigate to the github issue
and click on subscribe button.

Thank you for understanding. We apologize for all inconvenience.

Login to comment on this ticket.