Uploaded image for project: 'OpenIDM'
  1. OpenIDM
  2. OPENIDM-13632

Performance degradation in creating managed users with roles.

    XMLWordPrintable

    Details

    • Target Version/s:
    • Verified Version/s:
    • Story Points:
      13
    • Sprint:
      2019.12 - IDM, 2019.13 - IDM, 2019.14 - IDM, 2019.16 - IDM, 2019.17 - IDM

      Description

      When jason vincent and I check Jenkins test results for his PR, we noticed about 10% response time or throughput degradation when creating managed users with roles in master:
      With older master build e40e29c, we have the following Gatling output:

      > request count                                      27696 (OK=27696  KO=0     )
      > min response time                                    181 (OK=181    KO=-     )
      > max response time                                    562 (OK=562    KO=-     )
      > mean response time                                   325 (OK=325    KO=-     )
      > std deviation                                         26 (OK=26     KO=-     )
      > response time 50th percentile                        322 (OK=322    KO=-     )
      > response time 95th percentile                        368 (OK=368    KO=-     )
      > response time 99th percentile                        403 (OK=403    KO=-     )
      > response time 99.9th percentile                      506 (OK=506    KO=-     )
      > mean requests/sec                                 92.013 (OK=92.013 KO=-     )
      ---- Response Time Distribution ------------------------------------------------
      > t < 800 ms                                         27696 (100%)
      > 800 ms < t < 1200 ms                                   0 (  0%)
      > t > 1200 ms                                            0 (  0%)
      > failed                                                 0 (  0%)
      

      with latest master, we have the following Gatling output:

      > request count                                      24893 (OK=24893  KO=0     )
      > min response time                                    164 (OK=164    KO=-     )
      > max response time                                   1018 (OK=1018   KO=-     )
      > mean response time                                   361 (OK=361    KO=-     )
      > std deviation                                         28 (OK=28     KO=-     )
      > response time 50th percentile                        359 (OK=359    KO=-     )
      > response time 95th percentile                        404 (OK=404    KO=-     )
      > response time 99th percentile                        435 (OK=435    KO=-     )
      > response time 99.9th percentile                      536 (OK=536    KO=-     )
      > mean requests/sec                                 82.701 (OK=82.701 KO=-     )
      ---- Response Time Distribution ------------------------------------------------
      > t < 800 ms                                         24886 (100%)
      > 800 ms < t < 1200 ms                                   7 (  0%)
      > t > 1200 ms                                            0 (  0%)
      > failed                                                 0 (  0%)
      

      To reproduce the problem using pyforge:
      1. set IDM and stress parameters in pyforge config:

      STRESS_TEST_CONCURRENCY                : "30",
                  STRESS_TEST_DURATION                   : "300",
                  OPENIDM_VERSION                   : "7.0.0-SNAPSHOT",
                  OPENIDM_JAVA_HOME                 : "/usr/java/jdk11",
                  OPENIDM_REPO_TYPE                 : "mysql",
                  STRESS_PRELOAD_USERS             : "20",
                  STRESS_PRELOAD_DURATION          : "300",
                  STRESS_ROLES_PER_USER            : "10",
                  STRESS_NUMBER_OF_ROLES           : "80",
                  STRESS_NUMBER_OF_ASSIGNMENTS     : "1",
                  STRESS_ASSIGNMENTS_PER_ROLE      : "1",
                  STRESS_POSTALCODE_NULL_RECORDS   : "0",
                  OPENIDM_JAVA_ARGS                 : "-Xms6g -Xmx6g",
                  PRINT_GC_DETAILS                  : "True",
                  OPENIDM_ENABLE_JETTY_CONFIG       : "False",
                  OPENIDM_ENABLE_METRICS            : "False",
      

      2. Run test as:

      run-pybot.py -v -c perf -s relationship.CreateManUsersWithRolesManager OpenIDM
      

        Attachments

          Issue Links

            Activity

              People

              Assignee:
              jason.vincent jason vincent
              Reporter:
              Tinghua.Xu Tinghua Xu
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

                Dates

                Created:
                Updated:
                Resolved: