US 12,430,233 B2
Method and system for performance management of distributed software applications
Harish Sivasubramanian Iyer, Pune (IN); Arunava Bag, London (GB); and Jayanti Venkata Sai Narayana Murty, Santa Clara, CA (US)
Assigned to TATA CONSULTANCY SERVICES LIMITED, Mumbai (IN)
Filed by Tata Consultancy Services Limited, Mumbai (IN)
Filed on Aug. 8, 2022, as Appl. No. 17/818,122.
Claims priority of application No. 202121036874 (IN), filed on Aug. 14, 2021.
Prior Publication US 2023/0078091 A1, Mar. 16, 2023
Int. Cl. G06F 11/3668 (2025.01); G06F 11/34 (2006.01)
CPC G06F 11/3688 (2013.01) [G06F 11/3414 (2013.01); G06F 11/3684 (2013.01)] 16 Claims
OG exemplary drawing
 
1. A processor implemented method, comprising:
determining a context of an application under test (AUT) by processing an input data collected for the AUT, via one or more hardware processors;
generating a plurality of test scripts for the AUT, based on the determined context, via the one or more hardware processors, wherein the plurality of test scripts are used to test performance of the AUT under a plurality of load conditions, wherein the plurality of load conditions corresponds to a single user-single transaction, multiple users-single transaction, and multiple users-multiple transactions;
generating a workload based on each of the plurality of test scripts, for each of the plurality of load conditions, via the one or more hardware processors;
applying the generated workload for each of the plurality of load conditions on the AUT, via the one or more hardware processors;
determining if a measured performance of the AUT after applying the generated workload of each of the plurality of load conditions is matching a pre-defined performance threshold, via the one or more hardware processors, wherein the performance of the AUT is measured based on a plurality of collected data representing performance behaviour of the AUT;
dynamically performing tuning the AUT to match performance of the AUT to the performance threshold, for one or more of the plurality of load conditions for which the measured performance is below the pre-defined performance threshold as a service demand (Dmax) of components and sub-components vary time to time, via the one or more hardware processors, wherein tuning the AUT comprises determining an optimal configuration for the one or more of the plurality of load conditions, wherein the dynamically performing tuning the AUT comprises:
iteratively tuning individual parameters from the parameters forming the first metrics data and the second metrics data that in combination represent the performance of the AUT,
wherein performance of the AUT comprises:
analyzing a symptom of performance behaviour and determining an underlying root cause, wherein the symptom of performance behaviour represents deviation of a measured performance of the AUT from a defined target performance;
identifying a set of tunable parameters related to the determined underlying root cause based one or more defined relationship between each of a plurality of pre-defined root causes and corresponding tunable parameters, wherein the set of tunable parameters are associated with a component or sub-component depicting a highest service demand and the set of tunable parameters tend to increase a resource capacity of the sub-component or tend to increase a number of sub-component instances,
wherein when tuning of the set of tunable parameters requires recursive tuning for the components, then process includes tuning the set of tunable parameters again;
recommending a design choice when a measured performance of the AUT is deviating from the defined target performance, after tuning of the set of tunable parameters for a pre-defined number of iterations;
determining an optimum value of each of tuneable parameter in a set of tuneable parameters, wherein the determined optimum value of the tuneable parameter forms optimum adjustments;
performing tuning separately for the components/sub-components being identified as required to be tuned, based on the service demand (Dmax) of each of the components/sub-components, wherein the service demand (Dmax) represents amount of load;
prioritizing the components/sub-components for tuning in accordance with a decreasing value of the Dmax, and the tuning involves optimizing a visit count and a service time, by increasing capacity in terms of processing speed, and a memory allocation to accommodate the Dmax;
applying the determined the optimum adjustments on the AUT; and
retesting the AUT with the defined workload, measuring performance, recalculating the Dmax and perform the optimization till all the components/sub-components of the AUT are able to accommodate the Dmax.