Prabath, API Manager has the same setup and it uses a Thrift client for the same (in the place of using a stub for admin service) Can't we use the same Thrift server/client pattern?We had a similar situation in BAM data publisher. There also we used Thrift for performance reasons.
Stubs are known to have performance problems for high concurrent scenarios due to marshalling/un-marshalling. On Mon, Dec 21, 2015 at 3:20 PM, Prabath Abeysekera <[email protected]> wrote: > One of the performance hits identified while analysing the JFR dumps taken > out of EMM 2.0 set-ups is the time taken for token validation. The nature > of the aforesaid token validation is that, a service stub is used to invoke > an admin service deployed as part of EMM's Key Manager profile for token > validation and the stub instances are created per-request to avoid the > impact that is likely to be caused by stubs being less thread-safe. This > pattern proved to be very expensive as it was quite evident that the stub > instantiation is expensive. As a fix, a pool of stubs was introduced to > mitigate the above explained impact with appropriate means to cleanup > metadata just before the pooled stubs are returned to the pool. This helped > doubling the numbers obtained for a properly distributed set-up of EMM 2.0. > Please refer [1] for the source code. > > [1] > https://github.com/wso2/carbon-device-mgt/commit/11957f1e478f884cc1f100debb4bbc8290c0901c > > Cheers, > Prabath > > On Mon, Dec 21, 2015 at 2:44 PM, Dileesha Rajapakse <[email protected]> > wrote: > >> 1. Install Jmeter >> *sudo apt-get install jmeter* >> >> 2. Replace the '*/usr/share/jmeter/lib/*' directory with the 'lib' >> directory which could be downloaded from below link. (This file contains >> all the necessary library files needed to run test scripts) >> >> https://drive.google.com/file/d/0B1raQ3vGHU8uMjlhZU1EVzR0VGc/view?usp=sharing >> >> 3. Download and extract the scripts file >> >> https://drive.google.com/file/d/0B1raQ3vGHU8uaXhULTZzQUQwamc/view?usp=sharing >> >> The above '*EMM200LoadTests.zip*' file contains a total of 5 files. >> >> - *emm_devices.csv *- Contains information about 500000 unique devices >> - *EnrollDevices.jmx* - Enrolls Devices >> - *AddOperations.jmx* - Adds Operations to enrolled devices (2 >> operations per each device) >> - *GetPendingOperations.jmx* - Hits the >> '/mdm-android-agent/operation' endpoint which is the most heavily used API >> of the EMM >> - *MDM2LoadTesting.jmx* - This script contains a sample Jmeter test >> plan which has several additional useful test ThreadGroups which can be >> used to simulate scenarios such as Operation Execution, Policy Creation >> and >> Policy Monitoring >> >> *[Important]* Make sure the 'emm_devices.csv' file and the script files >> are in the same folder. >> 4. Specify these parameters when running test scripts >> >> *JHOST* --> Server Host >> *JPORT* --> Server Port >> *JUSERS* --> Number of Users (Concurrency) >> *JLOOPCOUNT* --> Number of Iterations per User >> >> >> Device Enrollment >> >> jmeter -n -JHOST=<specify_host> -JPORT=<specify_port> >> -JUSERS=<specify_users> -JLOOPCOUNT=<specify_loops> -t EnrollDevices.jmx -l >> errors.log >> >> >> - To enroll a '*n*' number of devices set the parameters as follows, >> *(-JUSERS)*(-JLOOPCOUNT) >> = n* >> >> >> Add Operations >> >> jmeter -n -JHOST=<specify_host> -JPORT=<specify_port> >> -JUSERS=<specify_users> -JLOOPCOUNT=<specify_loops> -t AddOperations.jmx -l >> errors.log >> >> >> Get Pending Operations >> >> jmeter -n -JHOST=<specify_host> -JPORT=<specify_port> >> -JUSERS=<specify_users> -JLOOPCOUNT=<specify_loops> -t >> GetPendingOperations.jmx -l errors.log >> >> >> -- >> Dileesha Rajapakse >> *Intern - Engineering* >> Mobile : +94 (0) 772 555 933 >> Tel : +94 112 741 505 >> [email protected] >> > > > > -- > Prabath Abeysekara > Technical Lead > WSO2 Inc. > Email: [email protected] > Mobile: +94774171471 > > _______________________________________________ > Dev mailing list > [email protected] > http://wso2.org/cgi-bin/mailman/listinfo/dev > > -- /sumedha m: +94 773017743 b : bit.ly/sumedha
_______________________________________________ Architecture mailing list [email protected] https://mail.wso2.org/cgi-bin/mailman/listinfo/architecture
