Skip to content

lamabro23/sssd-perf

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

29 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

This is a performance test suite for SSSD

Test suite created to measure the response time of SSSD.

Prepare the environment

The test suite was created and tested with data providers in containers supplied by this repository. To set up the environment needed to run the test suite start with the following steps:

  1. Connect to FreeIPA:

    ipa-client-install --unattended --no-ntp --domain ipa.test --principal admin --password Secret123 --force-join
  2. Connect to AD DS (samba):

    echo Secret123 | realm join samba.test
  3. Connect to LDAP server by appending the contents of this configuration file to /etc/sssd/sssd.conf.

  4. Restart SSSD:

    systemctl restart sssd.service
  5. Install the required Python libraries:

    python -m venv <env-name>
    source <env-name>/bin/activate
    pip install -r requirements.txt

Run the tests

The test suite contains tests made with SystemTap and hyperfine. Both are run through the main runner.py script.

The general parameters for this script are:

  • --providers - takes in list of data provider to test with (defaul: [ipa, ldap, samba]).
  • --sssctl - path to the sssctl binary (default: /usr/sbin/sssctl).
  • --sss_cache - path to the sss_cache binary (default: /usr/sbin/sss_cache).
  • --sssd-conf - path to the sssd.conf file (default: /etc/sssd/sssd.conf).
  • --ldap-template - path to the template configuration of ldap domain in sssd.conf (default: systemtap/conf/sssd-ldap.conf).

SystemTap

The flags for configuration of SystemTap tests:

  • --run-systemtap - enable SystemTap tests (dafault: False).
  • --stap-script - path to the probe script (default: systemtap/sbus_tap.stp).
  • --stap-output - the name of the file for the captured data (default: systemtap/csv/stap.csv).
  • --stap-request-count - the number of request to send to each of the data providers (default: 5).
  • --stap-verbosity - start the probe script with higher level of verbosity (for debugging, default: False).

Example: Start SystemTap tests with 50 requests to two providers: LDAP and FreeIPA:

python runner.py --run-systemtap --stap-request-count 50 --providers ldap ipa

Hyperfine

The flags for configuration of hyperfine tests:

  • --run-hyperfine - enable hyperfine tests (dafault: False).
  • --hf-output - the name of the file for the captured data (default: systemtap/json/hf.json).
  • --hf-parameters - a list of values for the command used during hyperfine's run (default: [[email protected], ...]).
  • --hf-runs - number of runs to send do with each of the specified commands (default: 10).

Example: Start hyperfine tests with 10 runs of the command id [email protected]:

python runner.py --run-hyperfine --hf-runs 10 --hf-parameters [email protected]

Generate the plots

Steps to produce graphs from the captured data are located in the respective directories.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages