[
https://issues.apache.org/jira/browse/SYNCOPE-1199?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Iurii Smyrnov updated SYNCOPE-1199:
-----------------------------------
Description:
*AnyObjetcTO's creation time (latency) grows with it's quantity.*
Testing results are attached (Latency in milliseconds).
Note: We've tested PostgreSQL DB directly (without Syncope) and we've got
stable AnyObjetcTO's creation time (not increasing).
To reproduce the issue please do next :
User Syncope 2.0.4 or 2.0.4 and + PostgreSQL 9
URI: http://localhost:9080/syncope/rest/anyObjects
http headers:
1.Content-Type / application/json
2 Accept / application/json
3 Authorization / Basic YWRtaW46cGFzc3dvcmQ=
verb: POST
body:
{
"plainAttrs":[
{
"values":[
"test-value"
],
"schema":"roleEntitlements"
}
],
"type":"RoleAT",
"realm":"/",
"@class":"org.apache.syncope.common.lib.to.AnyObjectTO",
"auxClasses":["RoleATClass"],
"name":"Role_Account_1"
}
was:
*AnyObjetcTO's creation time (latency) grows with it's quantity.*
We create AnyObjetcTO entities (our custom RoleAT type).
Testing results are attached (Latency in milliseconds).
Note: We've tested PostgreSQL DB directly (without Syncope) and we've got
stable AnyObjetcTO's creation time (not increasing).
To reproduce the issue please do next :
User Syncope 2.0.4 or 2.0.4 and + PostgreSQL 9 - you could test our
environment IDP project .
To install it you should have docker.
To build IDP project:
1. build https://github.com/Talend/platform-services/tree/master/btools
1.1 cd ../platform-services/btools
1.2 call: gradle clean build publish
2. build https://github.com/Talend/platform-services/tree/master/microservices
2.1 cd ../platform-services/microservices
2.2 call: gradle clean buildDocker - it will create microservices docker image
3. build https://github.com/Talend/platform-services/tree/master/iam/idp
3.1 cd ../platform-services/iam/idp
3.2 call: gradle clean buildDocker - it will create idp docker image
3.3 cd ../platform-services/iam/idp/build
3.4 call: docker-compose up - start containers
3.5 call: docker-compose ps - you will see containers list like:
Name Command State
Ports
------------------------------------------------------------------------------------------------------------------------
build_db_1 docker-entrypoint.sh postgres Up 0.0.0.0:5432->5432/tcp
build_idp_1 sh bin/start_tomcat.sh jpda Up 0.0.0.0:8000->8000/tcp,
8080/tcp, 8443/tcp, 0.0.0.0:9080->9080/tcp
4. wait for IDP is started: ←[33midp_1 |←[0m 16-Aug-2017 15:33:57.506 INFO
[main] org.apache.catalina.startup.Catalina.start Server startup in 95832 ms
5. To test syncope performance you could use our test with jmeter:
5.1 install jmeter
5.2 our test
https://github.com/Talend/platform-services/blob/master/performance-tests/src/main/resources/CreateRoleTestSyncope.jmx
open by jmeter
5.3 update test:
5.3.1 quntity to create in jmeter here: CreateRoleTestSyncope ->
${__P(nbOfAccountsToCreate, 3000)} to set ${__P(nbOfAccountsToCreate, 1000)}
for example
5.3.2 if you use UNIX - updated CreateRoleTestSyncope -> from
${__P(host, 192.168.99.100)} to ${__P(host, localhost)} - 192.168.99.100 host
for Windows
5.4 results are saved in ../<jmeter_path>/bin/CreateRoleSyncopeResults.csv
(you could update) in CreateRoleTestSyncope -> View Results Tree Report ->
Filename
5.5 request is here: CreateRoleTestSyncope -> CreateRoleThread -> Loop
Controller -> Create Role Request
5.6 run it
5.7 responses list you will see : CreateRoleTestSyncope -> View Results Tree
Report
6. if you want use some other way to test here are options to create requests:
6.1 URI: http://192.168.99.100:9080/syncope/rest/anyObjects -for WIndows, for
Unix http://localhost:9080/syncope/rest/anyObjects
6.2 http headers:
6.2.1 Content-Type / application/json
6.2.2 Accept / application/json
6.2.3 Authorization / Basic YWRtaW46cGFzc3dvcmQ=
6.3 verb: POST
6.4 body:
{
"plainAttrs":[
{
"values":[
"TDP_DATASET_CERTIFY"
],
"schema":"roleEntitlements"
}
],
"type":"RoleAT",
"realm":"/",
"@class":"org.apache.syncope.common.lib.to.AnyObjectTO",
"auxClasses":["RoleATClass"],
"name":"Role_Account_1"
}
> Syncope performance: AnyObjetcTO's creation time grows with it's quantity
> -------------------------------------------------------------------------
>
> Key: SYNCOPE-1199
> URL: https://issues.apache.org/jira/browse/SYNCOPE-1199
> Project: Syncope
> Issue Type: Bug
> Affects Versions: 2.0.2, 2.0.4
> Environment: Syncope 2.0.2 and 2.0.4 + PostgreSQL 9; Jmeter;
> https://github.com/Talend/platform-services/tree/master/iam/idp
> Reporter: Iurii Smyrnov
> Attachments: Latency for 1000 create roles (directly syncope 2.0.4)
> no SCIM.csv, Latency for 1000 create roles (directly syncope 2.0.4).png,
> Latency for 1037 create roles (directly syncope 2.0.2) no SCIM.csv, Latency
> for 1037 create roles (directly syncope 2.0.2).png, Latency for 3000 create
> roles (directly syncope 2.0.2).csv, Latency for 3000 create roles (directly
> syncope 2.0.2).png
>
>
> *AnyObjetcTO's creation time (latency) grows with it's quantity.*
> Testing results are attached (Latency in milliseconds).
> Note: We've tested PostgreSQL DB directly (without Syncope) and we've got
> stable AnyObjetcTO's creation time (not increasing).
> To reproduce the issue please do next :
> User Syncope 2.0.4 or 2.0.4 and + PostgreSQL 9
> URI: http://localhost:9080/syncope/rest/anyObjects
> http headers:
> 1.Content-Type / application/json
> 2 Accept / application/json
> 3 Authorization / Basic YWRtaW46cGFzc3dvcmQ=
> verb: POST
> body:
> {
> "plainAttrs":[
> {
> "values":[
> "test-value"
> ],
> "schema":"roleEntitlements"
> }
> ],
> "type":"RoleAT",
> "realm":"/",
> "@class":"org.apache.syncope.common.lib.to.AnyObjectTO",
> "auxClasses":["RoleATClass"],
> "name":"Role_Account_1"
> }
>
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)