#3097 Measure the difference between tmpfs database and NOSYNC database
Closed: Fixed None Opened 7 years ago by jhrozek.

This is a prerequisite for #3074, see that ticket for more details.


Fields changed

milestone: NEEDS_TRIAGE => SSSD 1.14.2

Fields changed

rhbz: => 0

Moving tickets that didn't make it into the 1.14.2 release into the next point release.

milestone: SSSD 1.14.2 => SSSD 1.14.3

  1. id performance statistics with both caches in tmpfs:

    stap /sssd/contrib/systemtap/id_perf.stp

    WARNING: Missing unwind data for a module, rerun with 'stap -d /usr/lib64/libtevent.so.0.9.28'
    Total run time of id was: 35260 ms
    Number of zero-level cache transactions: 537
    Time spent in level-0 sysdb transactions: 19004 ms
    Time spent writing to LDB: 17 ms
    Number of LDAP searches: 1114
    Time spent waiting for LDAP: 10819 ms
    LDAP searches breakdown:
    Number of user requests: 1
    Time spent in user requests: 7

        Number of group requests: 534
        Time spent in group requests: 31628
    
        Number of initgroups requests: 1
        Time spent in initgroups requests: 109
    

    Unaccounted time: 5437 ms
    sysdb transaction breakdown:

and the group searches breakdown, since the group requests took the most time:

stap /sssd/contrib/systemtap/nested_group_perf.stp                                                                                                                                                                    
^CTime spent in group sssd_be searches: 33346
Time spent in sdap_nested_group_send/recv: 11106 ms (ratio: 33.30%)
Time spent in zero-level sysdb transactions: 20299 ms (ratio: 60.87%)

Breakdown of sdap_nested_group req (total: 11106 ms)
        sdap_nested_group_process req: 11084
                sdap_nested_group_process_split req: 1110
                        sdap_nested_group_check_cache: 1095
                                sdap_nested_group_sysdb_search_users: 660
                                sdap_nested_group_sysdb_search_groups: 412
                ldap request breakdown of total 9564
                        sdap_nested_group_deref req: 9904
                                sdap_deref_search_send req 9494
                                processing deref results: 402
                        sdap_nested_group_lookup_user req: 35
                        sdap_nested_group_lookup_group req: 0
                        Time spent refreshing unknown members: 35

Breakdown of results processing (total 20299)
        Time spent populating nested members: 18653
                Time spent searching ldb while populating nested members: 15927
        Time spent saving nested members: 1535
        Time spent writing to the ldb: 3 ms
  1. id performance statistics with both caches on a regular partition on an SSSD drive:

    Total run time of id was: 35623 ms
    Number of zero-level cache transactions: 537
    Time spent in level-0 sysdb transactions: 19310 ms
    Time spent writing to LDB: 29 ms
    Number of LDAP searches: 1114
    Time spent waiting for LDAP: 10825 ms
    LDAP searches breakdown:
    Number of user requests: 1
    Time spent in user requests: 12

        Number of group requests: 534
        Time spent in group requests: 31952
    
        Number of initgroups requests: 1
        Time spent in initgroups requests: 116
    

    Unaccounted time: 5488 ms

group requests breakdown

stap /sssd/contrib/systemtap/nested_group_perf.stp                                                                                                                                                                      
^CTime spent in group sssd_be searches: 32576
Time spent in sdap_nested_group_send/recv: 10788 ms (ratio: 33.11%)
Time spent in zero-level sysdb transactions: 19834 ms (ratio: 60.88%)

Breakdown of sdap_nested_group req (total: 10788 ms)
        sdap_nested_group_process req: 10771
                sdap_nested_group_process_split req: 1100
                        sdap_nested_group_check_cache: 1078
                                sdap_nested_group_sysdb_search_users: 689
                                sdap_nested_group_sysdb_search_groups: 355
                ldap request breakdown of total 9266
                        sdap_nested_group_deref req: 9611
                                sdap_deref_search_send req 9199
                                processing deref results: 406
                        sdap_nested_group_lookup_user req: 33
                        sdap_nested_group_lookup_group req: 0
                        Time spent refreshing unknown members: 34

Breakdown of results processing (total 19834)
        Time spent populating nested members: 18198
                Time spent searching ldb while populating nested members: 15424
        Time spent saving nested members: 1529
        Time spent writing to the ldb: 1 ms

In my opinon these measurements show that there is not much value in mounting the cache in tmpfs over mounting it in the async mode. The most time SSSD spends during processing of many large requests is parsing the data from LDAP and searching the cache.

Fields changed

resolution: => fixed
status: new => closed

Metadata Update from @jhrozek:
- Issue set to the milestone: SSSD 1.14.3

7 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/4130

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.

Metadata