KEYCLOAK-16939 : Performance testsuite -> new gc charts, sar profiles, new datasets, crossdc profile

This commit is contained in:
Lukas Hanusovsky 2021-01-21 13:07:25 +01:00 committed by Hynek Mlnařík
parent 35ecaf07cb
commit 54c5b1514f
7 changed files with 171 additions and 9 deletions

View file

@ -40,12 +40,20 @@
<infinispan.jstat>${jstat}</infinispan.jstat>
<lb.jstat>${jstat}</lb.jstat>
</properties>
<modules>
<module>keycloak</module>
<module>load-balancer/wildfly-modcluster</module>
<module>infinispan</module>
<module>tests</module>
</modules>
<profiles>
<profile>
<id>crossdc</id>
<modules>
<module>infinispan</module>
</modules>
</profile>
</profiles>
</project>

View file

@ -452,7 +452,7 @@ case "$OPERATION" in
echo "<html><head><title>JStat Charts for $SERVICE</title>" > "$HTML"
echo "<style>div.box{ display: -webkit-inline-box }</style></head>" >> "$HTML"
echo "<body><h1>JStat Charts for $SERVICE</h1>" >> "$HTML"
for GP_SCRIPT in gc-all gc-s0 gc-s1 gc-e gc-o gc-m gc-cc ; do
for GP_SCRIPT in gc-all gc-s0 gc-s1 gc-e gc-o gc-m gc-cc gc-ev gc-t ; do
gnuplot -e "datafile='$JSTAT_DATAFILE'" "$GNUPLOT_COMMON" "$GNUPLOT_SCRIPTS_DIR/${GP_SCRIPT}.gp" > "${ARTIFACTS_DIR}/${SERVICE}/jstat-charts/${GP_SCRIPT}.png"
if [ $? == 0 ]; then
echo "<div class='box'>" >> "$HTML"

View file

@ -778,13 +778,8 @@
<delete.monitoring.data>true</delete.monitoring.data>
</properties>
</profile>
<profile>
<id>sar</id>
<properties>
<gnuplot>false</gnuplot>
<bzip>false</bzip>
</properties>
<id>start-sar</id>
<build>
<plugins>
<plugin>
@ -804,6 +799,23 @@
</environmentVariables>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
<profile>
<id>stop-sar</id>
<properties>
<gnuplot>false</gnuplot>
<bzip>false</bzip>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<executions>
<execution>
<id>stop-sar</id>
<phase>post-integration-test</phase>

View file

@ -0,0 +1,3 @@
set ylabel "Number of events"
set title "Utilisation of Garbage collection events (young, full)"
plot for [i in "YGC FGC"] datafile using 1:i title columnheader(i) with lines

View file

@ -0,0 +1,3 @@
set ylabel "GC time (s)"
set title "Utilisation of Garbage collection time (young, full, total)"
plot for [i in "YGCT FGCT GCT"] datafile using 1:i title columnheader(i) with lines

View file

@ -0,0 +1,68 @@
# REALM
realms=100
realm.realm=realm_${index?string("00")}
realm.displayName=Realm ${index}
realm.enabled=true
realm.registrationAllowed=true
realm.accessTokenLifeSpan=60
realm.passwordPolicy=hashIterations(27500)
# REALM ROLE
realmRolesPerRealm=10
realmRole.name=role_${index?string("00")}_of_${realm.realm}
realmRole.description=Role ${index} of ${realm.displayName}
# CLIENT
clientsPerRealm=100
client.clientId=client_${index?string("00")}_of_${realm.realm}
client.name=Client ${index} of ${realm.displayName}
client.description=Description of ${name}
client.rootUrl=
client.adminUrl=
client.baseUrl=http://clients.${realm.realm}.test/client_${index}
client.enabled=true
client.secret=secret_of_${clientId}
client.redirectUris=${baseUrl}/*
client.webOrigins=
client.protocol=openid-connect
client.publicClient=<#if index % 3 == 0>true<#else>false</#if>
client.bearerOnly=<#if index % 3 == 1>true<#else>false</#if>
client.authorizationServicesEnabled=false
client.serviceAccountsEnabled=${authorizationServicesEnabled?c}
# CLIENT ROLE
clientRolesPerClient=10
clientRole.name=clientrole_${index?string("00")}_of_${client.clientId}
clientRole.description=Role ${index} of ${client.name}
# USER
usersPerRealm=100000
user.username=user_${index?string("00000")}_of_${realm.realm}
user.enabled=true
user.email=${username}@email.test
user.emailVerified=true
user.firstName=User_${index}
user.lastName=O'Realm_${realm.index}
credential.type=password
credential.value=password_${index}_of_${user.username}
credential.temporary=false
# USER ATTRIBUTE
attributesPerUser=0
userAttribute.name=attribute_${index?string("00")}
userAttribute.value=<#list 0..2 as i>value_${i}_of_${name}<#sep>,</#sep></#list>
# USER ROLE MAPPINGS
realmRolesPerUser=1
clientRolesPerUser=3
# GROUP
groupsPerRealm=3
group.name=group_${index?string("00")}_of ${realm.realm}
# GROUP ATTRIBUTE
attributesPerGroup=3
groupAttribute.name=attribute_${index?string("00")}
groupAttribute.value=<#list 0..2 as i>value_${i}_of_${name}<#sep>,</#sep></#list>

View file

@ -0,0 +1,68 @@
# REALM
realms=10
realm.realm=realm_${index?string("0")}
realm.displayName=Realm ${index}
realm.enabled=true
realm.registrationAllowed=true
realm.accessTokenLifeSpan=60
realm.passwordPolicy=hashIterations(27500)
# REALM ROLE
realmRolesPerRealm=10
realmRole.name=role_${index?string("00")}_of_${realm.realm}
realmRole.description=Role ${index} of ${realm.displayName}
# CLIENT
clientsPerRealm=50
client.clientId=client_${index?string("00")}_of_${realm.realm}
client.name=Client ${index} of ${realm.displayName}
client.description=Description of ${name}
client.rootUrl=
client.adminUrl=
client.baseUrl=http://clients.${realm.realm}.test/client_${index}
client.enabled=true
client.secret=secret_of_${clientId}
client.redirectUris=${baseUrl}/*
client.webOrigins=
client.protocol=openid-connect
client.publicClient=<#if index % 3 == 0>true<#else>false</#if>
client.bearerOnly=<#if index % 3 == 1>true<#else>false</#if>
client.authorizationServicesEnabled=false
client.serviceAccountsEnabled=${authorizationServicesEnabled?c}
# CLIENT ROLE
clientRolesPerClient=10
clientRole.name=clientrole_${index?string("00")}_of_${client.clientId}
clientRole.description=Role ${index} of ${client.name}
# USER
usersPerRealm=100000
user.username=user_${index?string("00000")}_of_${realm.realm}
user.enabled=true
user.email=${username}@email.test
user.emailVerified=true
user.firstName=User_${index}
user.lastName=O'Realm_${realm.index}
credential.type=password
credential.value=password_${index}_of_${user.username}
credential.temporary=false
# USER ATTRIBUTE
attributesPerUser=0
userAttribute.name=attribute_${index?string("00")}
userAttribute.value=<#list 0..2 as i>value_${i}_of_${name}<#sep>,</#sep></#list>
# USER ROLE MAPPINGS
realmRolesPerUser=1
clientRolesPerUser=3
# GROUP
groupsPerRealm=3
group.name=group_${index?string("00")}_of ${realm.realm}
# GROUP ATTRIBUTE
attributesPerGroup=3
groupAttribute.name=attribute_${index?string("00")}
groupAttribute.value=<#list 0..2 as i>value_${i}_of_${name}<#sep>,</#sep></#list>