Method and apparatus for application performance capacity estimation

By utilizing a single-node performance capacity prediction model and a production environment conversion model in a distributed system, combined with machine learning algorithms, the problem of inaccurate performance prediction in distributed systems is solved, achieving more accurate performance capacity assessment.

CN114840441BActive Publication Date: 2026-02-10INDUSTRIAL AND COMMERCIAL BANK OF CHINA
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202210596259.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2022-05-27
Publication Date
2026-02-10
Estimated Expiration
2042-05-27

AI Technical Summary

Technical Problem

In distributed systems, the lack of a universal performance capacity assessment method and the hardware differences between production and testing environments lead to inaccurate performance predictions, affecting the quality of system services.

Method used

By acquiring single-node performance metrics data from the test environment, and using a pre-trained single-node performance capacity prediction model and a production environment single-node performance capacity conversion model, combined with machine learning algorithms, the single-node and multi-node performance capacities of the production environment are determined, and the minimum value of multiple single-architecture-layer performance capacities is taken as the application performance capacity.

Benefits of technology

It enables more accurate prediction of application performance capacity in production environments under a distributed architecture, taking into account hardware and node differences, thereby improving the accuracy and reliability of performance prediction.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN114840441B_ABST
    Figure CN114840441B_ABST
Patent Text Reader

Abstract

The present disclosure provides an application performance capacity estimation method, which can be applied to the field of artificial intelligence technology. The method comprises: obtaining test environment single-node performance index data; determining production environment single-node performance capacity according to the test environment single-node performance index data and a pre-trained single-node performance capacity estimation model; determining production environment single-architecture layer performance capacity according to the production environment single-node performance capacity, the number of nodes and a pre-constructed production environment single-architecture layer performance capacity estimation model; and determining production environment application performance capacity according to a plurality of production environment single-architecture layer performance capacities. The present disclosure also provides an application performance capacity estimation device, equipment, storage medium and program product.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This disclosure relates to the field of artificial intelligence, specifically to the field of software testing, and more specifically to an application performance capacity estimation method, apparatus, device, storage medium, and program product. Background Technology

[0002] With the development of distributed systems, more and more application system architectures are shifting from centralized processing architectures based on IBM (International Business Machines) mainframes to distributed system frameworks based on x86 servers. Because distributed systems break down previous business modules into subsystems, a single transaction typically requires calls to multiple subsystems to complete. This lengthens the transaction chain, making online business scenarios increasingly complex. Coupled with factors such as increased transaction volume, performance issues in any subsystem can have a global impact, leading to a decline in system service quality. Therefore, performance and capacity prediction for the overall system performance under new application versions is particularly important.

[0003] However, existing performance prediction methods have several problems:

[0004] (1) In a distributed architecture, the structures of each subsystem are different, and there is no universal performance and capacity evaluation method.

[0005] (2) The number of nodes and container specifications of the subsystem differ between the production environment and the test environment. It is impossible to accurately predict the performance in the production environment based on the test results in the test environment.

[0006] (3) The hardware configuration of the physical machines in the production environment, such as CPU, memory, and disk, is superior to that in the testing environment. The hardware performance differences are significant and cannot be directly evaluated using relevant data from the testing environment.

[0007] It should be noted that the information disclosed in the background section above is only used to enhance the understanding of the background of this disclosure, and therefore may include information that does not constitute prior art known to those skilled in the art. Summary of the Invention

[0008] In view of the above problems, this disclosure provides application performance capacity estimation methods, apparatus, devices, media and program products.

[0009] According to the first aspect of this disclosure, an application performance capacity estimation method is provided, applied to a distributed architecture, the distributed architecture including multiple single architecture layers, including: obtaining single-node performance index data of a test environment;

[0010] The single-node performance capacity in the production environment is determined based on the single-node performance index data of the test environment and the pre-trained single-node performance capacity prediction model.

[0011] The performance capacity of a single node in the production environment is determined based on the single-node performance capacity, the number of nodes, and a pre-built performance capacity prediction model for a single architecture layer in the production environment; and

[0012] Determine the application performance capacity of the production environment based on the performance capacity of the single architecture layer in multiple production environments.

[0013] The single-node performance capacity prediction model includes a single-node performance capacity prediction model for the test environment and a single-node performance capacity conversion model for the production environment.

[0014] According to embodiments of this disclosure, determining the single-node performance capacity in the production environment based on the single-node performance index data of the test environment and a pre-trained single-node performance capacity prediction model includes:

[0015] The performance capacity of a single node in the test environment is determined based on the single-node performance index data and the single-node performance capacity prediction model of the test environment; and

[0016] The performance capacity of a single node in the production environment is determined based on the conversion model between the single-node performance capacity of the test environment and the single-node performance capacity of the production environment.

[0017] According to embodiments of this disclosure, determining the production environment application performance capacity based on the performance capacity of multiple production environment single architecture layers includes:

[0018] Obtain the performance capacity of a single architecture layer in multiple production environments; and

[0019] The minimum value of the performance capacity of the multiple production environment single architecture layers is determined to be the production environment application performance capacity.

[0020] According to embodiments of this disclosure, the training method for the pre-trained single-node performance capacity prediction model includes:

[0021] Collect the first training sample data, which includes the CPU utilization of a single node under different transaction rates in the test environment.

[0022] Based on the first training sample data, determine the mapping relationship between single-node capacity and CPU utilization to determine the single-node performance capacity prediction model for the test environment;

[0023] Collect second training sample data, which includes CPU utilization and transaction rate in a production environment;

[0024] The first training sample data and the second training sample data are subjected to feature processing to generate multiple sets of multi-dimensional sample features;

[0025] A single-node performance-capacity conversion model is obtained by performing machine learning training on the sample features.

[0026] The single-node performance capacity prediction model is determined based on the single-node performance capacity prediction model of the test environment and the single-node performance capacity conversion model.

[0027] According to embodiments of this disclosure, the method for constructing the pre-built production environment single-architecture layer performance capacity prediction model includes:

[0028] The application underwent multiple gradient stress tests in the test environment;

[0029] Obtain the online transaction rate of different nodes in the test environment at a specified percentage of CPU utilization;

[0030] The single-architecture layer performance capacity prediction model for the test environment is determined based on the number of nodes, CPU utilization, and online transaction rate.

[0031] The production environment single-node performance capacity prediction model is determined based on the production environment single-node performance capacity and the test environment single-architecture layer performance capacity prediction model.

[0032] According to embodiments of this disclosure, the single-node performance index data includes system environment index data and system operation status index data. The system environment index data includes test environment information, CPU information, memory information, and disk information. The system operation status index data includes CPU operation information, memory usage, disk operation information, network I / O information, and platform service response information.

[0033] According to embodiments of this disclosure, the method further includes:

[0034] The expansion strategy is determined based on the performance capacity of the production environment.

[0035] A second aspect of this disclosure provides an application performance capacity estimation device, comprising: an acquisition module for acquiring single-node performance index data of a test environment;

[0036] The first determining module is used to determine the single-node performance capacity of the production environment based on the single-node performance index data of the test environment and the pre-trained single-node performance capacity prediction model.

[0037] The second determining module is used to determine the performance capacity of a single node in the production environment based on the single-node performance capacity, the number of nodes, and a pre-built performance capacity prediction model for a single architecture layer in the production environment; and

[0038] The third determination module is used to determine the application performance capacity of the production environment based on the performance capacity of multiple production environment single architecture layers.

[0039] The single-node performance capacity prediction model includes a single-node performance capacity prediction model for the test environment and a single-node performance capacity conversion model for the production environment.

[0040] According to embodiments of this disclosure, the first determining module includes:

[0041] The first determining submodule is used to determine the performance capacity of a single node in the test environment based on the single node performance index data of the test environment and the single node performance capacity prediction model of the test environment.

[0042] The second determining submodule is used to determine the single-node performance capacity of the production environment based on the conversion model between the single-node performance capacity of the test environment and the single-node performance capacity of the production environment.

[0043] According to embodiments of this disclosure, the third determining module includes:

[0044] The first acquisition submodule is used to acquire the performance capacity of multiple production environments' single architecture layer.

[0045] The third determining submodule is used to determine the minimum value of the performance capacity of the multiple production environment single architecture layer as the production environment application performance capacity.

[0046] According to embodiments of this disclosure, the device further includes:

[0047] The model training module is used to train a single-node performance and capacity prediction model.

[0048] According to embodiments of this disclosure, the first training module includes:

[0049] The first sample collection submodule is used to collect the first training sample data, which includes the CPU utilization of a single node under different transaction rates in the test environment.

[0050] The fourth determination submodule is used to determine the mapping relationship between single-node capacity and CPU utilization based on the training sample data, so as to determine the single-node performance capacity prediction model in the test environment.

[0051] The second sample collection submodule is used to collect the second training sample data, which includes CPU utilization and transaction rate in the production environment.

[0052] The sample feature generation submodule is used to perform feature processing on the first training sample data and the second training sample data to generate multiple sets of multi-dimensional sample features.

[0053] The conversion submodule is used to perform machine learning training on the sample features to obtain a single-node performance-capacity conversion model.

[0054] The fifth determining submodule is used to determine the single-node performance capacity prediction model based on the single-node performance capacity prediction model of the test environment and the single-node performance capacity conversion model.

[0055] According to embodiments of this disclosure, the device further includes:

[0056] The model building module is used to build a performance and capacity prediction model for a single architecture layer in the production environment.

[0057] According to embodiments of this disclosure, the model building module includes:

[0058] The test submodule is used to perform multiple gradient stress tests on the application in the test environment.

[0059] The second acquisition submodule is used to acquire the online transaction rate of different nodes in the test environment under a specified percentage of CPU utilization.

[0060] The sixth submodule is used to determine the performance capacity prediction model of a single architecture layer in the test environment based on the number of nodes, CPU utilization, and online transaction rate.

[0061] The seventh determination submodule is used to determine the performance capacity prediction model of the single architecture layer in the production environment based on the performance capacity prediction model of the single node in the production environment and the performance capacity prediction model of the single architecture layer in the test environment.

[0062] A third aspect of this disclosure provides an electronic device comprising: one or more processors; and a memory for storing one or more programs, wherein when the one or more programs are executed by the one or more processors, the one or more processors perform the application performance capacity estimation method described above.

[0063] A fourth aspect of this disclosure also provides a computer-readable storage medium having executable instructions stored thereon, which, when executed by a processor, cause the processor to perform the above-described application performance capacity estimation method.

[0064] The fifth aspect of this disclosure also provides a computer program product, including a computer program that, when executed by a processor, implements the above-described application performance capacity estimation method.

[0065] The application performance capacity estimation method provided by the embodiments of this disclosure determines the single-node performance capacity in the production environment by using a pre-trained single-node performance capacity estimation model and single-node performance index data in the test environment. It also determines the single-architecture layer performance capacity in the production environment based on the single-node performance capacity, the number of nodes in the production environment, and a pre-built single-architecture layer performance capacity estimation model. The minimum value of multiple single-architecture layer performance capacities is taken as the application performance capacity in the production environment. This method monitors and analyzes the performance of applications running in the distributed architecture system of the open platform in the test environment, applying machine learning models to performance capacity estimation for a more comprehensive and accurate prediction of platform application performance capacity. Attached Figure Description

[0066] The foregoing contents, as well as other objects, features, and advantages of this disclosure, will become clearer from the following description of embodiments with reference to the accompanying drawings, in which:

[0067] Figure 1 The illustration schematically depicts application scenarios of the application performance capacity estimation method, apparatus, device, medium, and program product according to embodiments of the present disclosure;

[0068] Figure 2 A flowchart illustrating an application performance capacity estimation method according to an embodiment of the present disclosure is shown schematically.

[0069] Figure 3 A flowchart illustrating a training method for a single-node performance capacity prediction model according to an embodiment of the present disclosure is shown schematically.

[0070] Figure 4 A flowchart illustrating a method for constructing a single-architecture-layer performance capacity prediction model for a production environment according to an embodiment of the present disclosure is shown.

[0071] Figure 5 A flowchart illustrating a method for determining the performance capacity of a single node in a production environment according to an embodiment of the present disclosure is shown schematically.

[0072] Figure 6 A flowchart illustrating a method for determining the performance capacity of an application in a production environment according to an embodiment of the present disclosure is shown schematically.

[0073] Figure 7 A schematic block diagram of an application performance capacity estimation device according to an embodiment of the present disclosure is shown; and

[0074] Figure 8 A block diagram schematically illustrates an electronic device suitable for implementing an application performance capacity estimation method according to an embodiment of the present disclosure. Detailed Implementation

[0075] The embodiments of the present disclosure will now be described with reference to the accompanying drawings. However, it should be understood that these descriptions are exemplary only and are not intended to limit the scope of the disclosure. In the following detailed description, numerous specific details are set forth to provide a thorough understanding of the embodiments of the present disclosure for ease of explanation. However, it will be apparent that one or more embodiments may be practiced without these specific details. Furthermore, descriptions of well-known structures and techniques are omitted in the following description to avoid unnecessarily obscuring the concepts of the present disclosure.

[0076] The terminology used herein is for the purpose of describing particular embodiments only and is not intended to limit this disclosure. The terms “comprising,” “including,” etc., as used herein indicate the presence of the stated features, steps, operations, and / or components, but do not exclude the presence or addition of one or more other features, steps, operations, or components.

[0077] All terms used herein (including technical and scientific terms) have the meanings commonly understood by those skilled in the art, unless otherwise defined. It should be noted that the terms used herein are to be interpreted in a manner consistent with the context of this specification, and not in an idealized or overly rigid way.

[0078] When using expressions such as "at least one of A, B, and C", they should generally be interpreted in accordance with the meaning that is commonly understood by a person skilled in the art (e.g., "a system having at least one of A, B, and C" should include, but is not limited to, a system having A alone, a system having B alone, a system having C alone, a system having A and B, a system having A and C, a system having B and C, and / or a system having A, B, and C, etc.).

[0079] As businesses grow and IT architectures transform, more and more application systems are shifting from centralized processing architectures based on IBM mainframes to distributed system frameworks on x86 servers. Because distributed systems break down previous business modules into subsystems, a single transaction often requires calls to multiple subsystems to complete. This lengthens the transaction chain, making online business scenarios increasingly complex. Coupled with factors such as increased transaction volume, performance issues in any subsystem can have a global impact, leading to a decline in system service quality. Therefore, performance and capacity estimation for the overall system performance under new application versions is particularly important.

[0080] Because the structures of each subsystem are different in a distributed architecture, there is currently no universal method for evaluating performance and capacity. The number of nodes and container specifications of subsystems differ between the production environment and the test environment, and the test results in the test environment may differ from the performance in the production environment.

[0081] Based on the aforementioned technical problems, embodiments of this disclosure provide an application performance capacity prediction method applied to a distributed architecture, the distributed architecture comprising multiple single-architecture layers, comprising: acquiring single-node performance index data in a test environment; determining single-node performance capacity in a production environment based on the single-node performance index data in the test environment and a pre-trained single-node performance capacity prediction model; determining single-architecture layer performance capacity in a production environment based on the single-node performance capacity in the production environment, the number of nodes, and a pre-built single-architecture layer performance capacity prediction model for the production environment; and determining application performance capacity in the production environment based on the performance capacities of multiple single-architecture layers in the production environment, wherein the single-node performance capacity prediction model includes a single-node performance capacity prediction model for the test environment and a single-node performance capacity conversion model for the production environment.

[0082] Figure 1 The illustration schematically depicts application scenarios of the application performance capacity estimation method, apparatus, device, medium, and program product according to embodiments of the present disclosure.

[0083] like Figure 1 As shown, application scenario 100 according to this embodiment may include an application performance capacity estimation scenario. Network 104 is used as a medium to provide a communication link between terminal devices 101, 102, 103 and server 105. Network 104 may include various connection types, such as wired, wireless communication links, or fiber optic cables, etc.

[0084] Users can use terminal devices 101, 102, and 103 to interact with server 105 via network 104 to send application performance capacity estimation commands or receive application capacity estimations. Various communication client applications can be installed on terminal devices 101, 102, and 103, such as shopping applications, web browser applications, search applications, instant messaging tools, email clients, social media platform software, etc. (for example only).

[0085] Terminal devices 101, 102, and 103 can be various electronic devices with displays and web browsing capabilities, including but not limited to smartphones, tablets, laptops, and desktop computers.

[0086] Server 105 can be a server that provides various services, such as a backend management server that supports commands sent by users using terminal devices 101, 102, and 103 (for example only). The backend management server can analyze and process data such as received user requests, and feed back the processing results (such as web pages, information, or data obtained or generated according to user requests) to the terminal devices.

[0087] It should be noted that the application performance capacity estimation method provided in this embodiment can generally be executed by server 105. Correspondingly, the application performance capacity estimation device provided in this embodiment can generally be located in server 105. The application performance capacity estimation method provided in this embodiment can also be executed by a server or server cluster that is different from server 105 and capable of communicating with terminal devices 101, 102, 103 and / or server 105. Correspondingly, the application performance capacity estimation device provided in this embodiment can also be located in a server or server cluster that is different from server 105 and capable of communicating with terminal devices 101, 102, 103 and / or server 105.

[0088] It should be understood that Figure 1 The number of terminal devices, networks, and servers shown is merely illustrative. Depending on implementation needs, any number of terminal devices, networks, and servers can be included.

[0089] It should be noted that the application performance capacity estimation method and apparatus determined in the embodiments of this disclosure can be used in the application of software testing in the financial field, and can also be used in any field other than the financial field. The application field of the application performance capacity estimation method and apparatus determined in the embodiments of this disclosure is not limited.

[0090] The following will be based on Figure 1 The described scene, through Figures 2-6 The application performance capacity estimation method of the disclosed embodiments is described in detail.

[0091] Figure 2 A flowchart illustrating an application performance capacity estimation method according to an embodiment of the present disclosure is shown schematically.

[0092] like Figure 2 As shown, the application performance capacity estimation method of this embodiment includes operations S210 to S240, which can be executed by a server or other computing device.

[0093] The S210 is used to obtain single-node performance metrics data for the test environment.

[0094] According to embodiments of this disclosure, the single-node performance index data includes system environment index data and system operation status index data. The system environment index data includes test environment information, CPU information, memory information, and disk information. The system operation status index data includes CPU operation information, memory usage, disk operation information, network I / O information, and platform service response information.

[0095] In one example, the single-node performance metrics in this embodiment mainly involve collecting static and dynamic parameters of servers in the test and production environments. These metrics can be further refined into the basic environment dimension and the system operation dimension of the application system. The system environment metrics include application name, operating system type, test system environment, test cluster nodes, CPU frequency, number of CPUs, memory type, and disk type, etc. The system operation metrics include CPU utilization, memory utilization, disk IOPS, disk busyness, network IO, network bandwidth consumption, overall transaction rate of platform services, and average response time of platform services, etc. The single-node performance metric data of the test environment is obtained, and the single-node application performance capacity in the test environment is further determined based on this performance metric data.

[0096] In operation S220, the single-node performance capacity of the production environment is determined based on the single-node performance index data of the test environment and the pre-trained single-node performance capacity prediction model.

[0097] According to embodiments of this disclosure, the single-node performance capacity prediction model includes a single-node performance capacity prediction model for a test environment and a single-node performance capacity conversion model for a production environment.

[0098] In one example, the single-node performance prediction model of this disclosure includes a single-node performance capacity prediction model in a test environment and a single-node performance capacity conversion model in a production environment. Both models are pre-trained based on machine learning methods using big data analytics. For details of the training process, please refer to [link to relevant documentation]. Figure 3 Operations S310 to S360 shown will not be described again here.

[0099] The single-node performance index data of the test environment obtained by operation S210 is input into the pre-trained single-node performance capacity prediction model of the test environment. The output is the predicted single-node performance capacity of the test environment. Due to the differences in hardware and the number of nodes at each layer between the test environment and the production environment, the data of the test environment differs from the data of the production environment. In order to improve the accuracy of the application performance prediction capacity and mask the differences caused by the environment, the predicted performance capacity of the test environment needs to be converted by the single-node performance capacity conversion model of the production environment, and then the predicted single-node performance capacity of the production environment is determined. The specific process can be found in [link to documentation]. Figure 5 Operations S221 to S222 are shown.

[0100] In operation S230, the performance capacity of the single architecture layer of the production environment is determined based on the performance capacity of a single node in the production environment, the number of nodes, and the pre-built performance capacity prediction model of the single architecture layer of the production environment.

[0101] In one example, after obtaining the estimated performance capacity of a single node, this estimated performance capacity is input into a pre-built production environment single-architecture layer performance capacity prediction model, which outputs the production environment single-architecture performance capacity. The construction process of the production environment single-architecture layer performance capacity prediction model can be found in [link to relevant documentation]. Figure 4 Operations S410 to S440 are shown.

[0102] When operating S240, the performance capacity of production environment applications is determined based on the performance capacity of multiple production environment single architecture layers.

[0103] In one example, in a distributed architecture, a single transaction often requires calls to multiple subsystems to complete. A distributed architecture comprises multiple subsystems, and the performance capacity of an application in a production environment is related to the performance capacity of each individual subsystem. Generally, the minimum performance capacity of multiple production environment subsystems is taken as the performance capacity of the application in the production environment; this subsystem is the bottleneck layer of the application. For details, please refer to [link to documentation / reference]. Figure 6 Operations S241 to S242 are shown.

[0104] The application performance capacity prediction method provided in this disclosure pre-trains a single-node performance capacity prediction model based on machine learning algorithms, determines the single-node performance capacity in the production environment based on test environment performance index data, and determines the single-architecture layer performance capacity in the production environment based on the single-node performance capacity and the pre-built single-architecture layer performance capacity prediction model in the production environment. Compared with existing performance capacity prediction methods, this method fully considers the differences between the production environment and the test environment, as well as the differences between single-node and multi-node environments, resulting in more accurate prediction results.

[0105] First, combine Figure 3 and Figure 4 The training and construction process of the single-node performance capacity prediction model and the production environment single-architecture layer performance capacity prediction model of the embodiments of this disclosure.

[0106] Figure 3 A flowchart illustrating a training method for a single-node performance capacity prediction model according to an embodiment of the present disclosure is shown schematically. Figure 3 The training process of the single-node performance capacity prediction model shown includes operations S310 to S360.

[0107] During operation S310, first training sample data is collected, which includes the CPU utilization rate of a single node under different transaction rates in the test environment.

[0108] In operation S320, the mapping relationship between single-node capacity and CPU utilization is determined based on the first training sample data, so as to determine the single-node performance capacity prediction model for the test environment.

[0109] In one example, taking the ac-asm layer of the PRSA application as an example: by collecting basic data on the single node of this layer in both production and testing environments, the CPU utilization of the single node container under different transaction rate pressures is used as the first training sample data. Based on this first training sample data, the mapping relationship f between the single node container CPU utilization x and the single node capacity is obtained. 1-1 :Cc ac-asm=f 1-1 (x). For example, after multiple data samplings, it was determined that when the CPU utilization is 70%, the maximum capacity of a single node under stable conditions is Cc ac-asm=f1-1(0.7).

[0110] In operation S330, second training sample data is collected, including CPU utilization and transaction rate in the production environment. In operation S340, the first and second training sample data are subjected to feature processing to generate multiple sets of multi-dimensional sample features. In operation S350, machine learning training is performed on the sample features to obtain a single-node performance capacity conversion model. In operation S360, a single-node performance capacity prediction model is determined based on the test environment single-node performance capacity prediction model and the single-node performance capacity conversion model.

[0111] In one example, due to differences in hardware and the number of nodes at each layer between the test and production environments, a model is needed to convert the test environment capacity to the production environment capacity. While collecting relevant data from the test environment, CPU utilization and TPS data of individual node containers in the production environment are also sampled. Feature processing, such as subtraction and quotient operations, is performed on the single-node container data from the test and production environments to obtain multiple sets of multi-dimensional sample features. A single-node performance-capacity conversion model f is then trained using machine learning. 1-2 This model completes the transformation from test points to production points, enabling production environment performance capacity:

[0112] Cs ac-asm=Cc ac-asm*f 1-2 (a i b i c i d i e i f i g i h i i i j i )

[0113] Among them, a i, To j iThese represent the production environment TPS, production environment transaction response time, production environment CPU usage, production environment memory usage, production environment disk usage, and the test environment TPS, test environment transaction response time, test environment CPU usage, test environment memory usage, and test environment disk usage, respectively.

[0114] The specific training process for the single-node performance-capacity conversion model is as follows:

[0115] Preprocess the system environment data (application name, operating system type, test system environment, test cluster nodes, CPU frequency, number of CPUs, memory type, disk type, etc.) and system operation status data (CPU utilization, memory utilization, disk IOPS, disk busyness, network IO, network bandwidth consumption, overall transaction rate of platform services, average response time of platform services, etc.) collected from the production and testing environments.

[0116] Relevant metrics are selected as features for model training. These features are then grouped according to business scenario dimensions, into peak-period business feature group and off-period business feature group. The format of the relevant features is: {a i b i c i d i e i f i g i h i i i j i} represent the production environment TPS, production environment transaction response time, production environment CPU usage, production environment memory usage, production environment disk usage, and test environment TPS, test environment transaction response time, test environment CPU usage, test environment memory usage, and test environment disk usage, respectively.

[0117] Since system environment metrics are relatively fixed, we first perform a quotient calculation between the system environment metrics of the test environment and the production environment to obtain a relatively fixed conversion factor β. For example, the conversion factor for the CPU is β. cpu The memory conversion factor is β. mem And so on. Then, the relevant features of the test environment are weighted to obtain {A}. i B i C i D i E i F i G i H i I i J i}, that is, {a i bi c i d i e i f i g i ,β cpu *h i ,β mem *i i ,β disk *j i Finally, the system operation data for both the test and production environments are normalized.

[0118] The above features were selected, and a multiple linear regression model was used for training. Parameters were adjusted until a model f with both MSE and R² coefficients above 95% was obtained. 1-2 .

[0119] Figure 4 A flowchart illustrating a method for constructing a single-architecture-layer performance capacity prediction model for a production environment according to an embodiment of the present disclosure is shown.

[0120] like Figure 4 As shown, this includes operations S410 to S440.

[0121] While operating the S410, the application underwent multiple gradient stress tests in the test environment.

[0122] By operating the S420, the online transaction rate of different nodes in the test environment under a specified percentage of CPU utilization is obtained.

[0123] When operating S430, a single-architecture layer performance capacity prediction model for the test environment is determined based on the number of nodes, CPU utilization, and online transaction rate.

[0124] In operation S440, the performance capacity prediction model for the single architecture layer in the production environment is determined based on the performance capacity prediction model for a single node in the production environment and the performance capacity prediction model for a single architecture layer in the test environment.

[0125] In one example, through multiple gradient stress tests in the test environment, online transaction rate data were collected for different nodes in the test environment at specified percentages (20%, 40%, 60%, 80%) during the stress test scenarios:

[0126] Cc ac-asm n-x (Where n represents the number of nodes and x represents the container's CPU utilization)

[0127] For example, C 1-20 C represents the online transaction rate when single-node CPU consumption is 20%. 5-60This represents the online transaction rate (TPS) when the CPU consumption of 5 nodes is at 60%. Based on multiple sets of experimental data in the test environment, the relationship between different numbers of nodes n and C is derived. n-x The transformation model f2 between them makes: Cc ac-asm n-x =f2(n,Cc ac-asm) 1-x )

[0128] Finally, the capacity of the final production single architecture layer can be derived using the capacity of a single production container node and the transformation model f2:

[0129] Cs ac-asm n-x =f2(n,Cs ac-asm) 1-x )

[0130] The number of distinct nodes n and C n-x The conversion model f2 is the performance capacity prediction model for a single architecture layer in the production environment. The performance capacity of a single architecture layer can be determined based on the number of nodes and the performance capacity of a single node in the production environment.

[0131] Figure 5 A flowchart illustrating a method for determining the performance capacity of a single node in a production environment according to an embodiment of the present disclosure is shown.

[0132] like Figure 5 As shown, operation S220 includes operation S221 and operation S222.

[0133] In operation S221, the performance capacity of a single node in the test environment is determined based on the single node performance index data of the test environment and the single node performance capacity prediction model of the test environment.

[0134] In operation S222, the single-node performance capacity of the production environment is determined based on the conversion model between the single-node performance capacity of the test environment and the single-node performance capacity of the production environment.

[0135] In one example, based on the single-node performance capacity prediction model f in the above test environment... 1-1 :Cc ac-asm=f 1-1 (x) Input the single-node performance metrics data of the test environment, and the output will be the single-node performance capacity of the test environment. Then, take the single-node performance capacity of the test environment as input, and use the single-node performance capacity conversion model of the production environment to convert the single-node performance capacity of the test environment, and the output will be the single-node performance capacity of the production environment.

[0136] Figure 6 A flowchart illustrating a method for determining the performance capacity of an application in a production environment according to an embodiment of this disclosure is shown schematically. Figure 6 As shown, operation S240 includes operation S241 and operation S242.

[0137] In operation S241, obtain the performance capacity of multiple production environment single architecture layer.

[0138] In operation S242, the minimum value of the performance capacity of the plurality of production environment single architecture layers is determined to be the production environment application performance capacity.

[0139] In one example, repeating operations S210 to S230 yields the estimated capacity for each layer of an application in the production environment. The minimum of these estimated capacity values ​​represents the limit of the application's production capacity: C prsa =min(Csac-asm) n-x Cs app-asm n-x , Cs ac n-x Cs app n-x Cs commondata n-x Cs common n-x )

[0140] Expandable, the scaling strategy can be determined based on the performance capacity of the production environment. Preferably, the capacity limits of the bottleneck layer are used to deduce the remaining capacity of other layers, and the corresponding scaling strategy is determined based on different scaling objectives. Specifically:

[0141] Assuming application X is divided into three architectural layers (1, 2, and 3), the capacity assessment of each layer using the method described above is as follows:

[0142] Layer 1 can support 20, 40, 60, and 70 tps when CPU usage is 20%, 40%, 60%, and 70%, respectively.

[0143] Layer 2 can support 10, 20, 30, and 40 tps when CPU usage is 20%, 40%, 60%, and 70%, respectively.

[0144] Layer 3 can support 200, 400, 600, and 700 tps when CPU usage is 20%, 40%, 60%, and 70%, respectively.

[0145] With its current configuration, application X can support a maximum capacity of 40 tps. The bottleneck layer is layer 2. When application X supports 40 tps, the CPU usage of layer 1 is around 40%, and the CPU usage of layer 3 is below 20%. Therefore, a specific scaling strategy can be determined based on the specific scaling target. For example, to enable application X to support 200 tps, layer 1 needs to be scaled up to 3 times its current capacity, layer 2 needs to be scaled up to 5 times its current capacity, and layer 3 does not need to be scaled up. Under a load of 200 tps, the CPU consumption of layer 3 is expected to be around 20%.

[0146] To enable application X to support 400 tps, layer 1 needs to be expanded to 6 times its current size, layer 2 to 10 times its current size, and layer 3 does not need to be expanded. Under a load of 400 tps, the CPU consumption of layer 3 is expected to be around 40%.

[0147] To enable application X to support 600 tps, layer 1 needs to be expanded to 9 times its current size, layer 2 to 15 times its current size, and layer 3 does not need to be expanded. Under a load of 600 tps, the CPU consumption of layer 3 is expected to be around 60%.

[0148] To enable application X to support 560 tps, layer 1 needs to be expanded to 8 times its current size, layer 2 to 14 times its current size, and layer 3 does not need to be expanded. Under a load of 560 tps, the CPU consumption of layer 3 is expected to be around 60%.

[0149] Based on the above application performance capacity prediction method, this disclosure also provides an application performance capacity prediction device. The following will be combined with... Figure 7 The device is described in detail.

[0150] Figure 7 A schematic block diagram of an application performance capacity estimation device according to an embodiment of the present disclosure is shown.

[0151] like Figure 7 As shown, the application performance capacity estimation device 800 of this embodiment includes an acquisition module 810, a first determination module 820, a second determination module 830 and a third determination module 840.

[0152] The acquisition module 810 is used to acquire single-node performance index data of the test environment. In one embodiment, the acquisition module 810 can be used to perform the operation S210 described above, which will not be repeated here.

[0153] The first determining module 820 is used to determine the single-node performance capacity of the production environment based on the single-node performance index data of the test environment and the pre-trained single-node performance capacity prediction model. In one embodiment, the first determining module 820 can be used to perform the operation S220 described above, which will not be repeated here.

[0154] The second determining module 830 is used to determine the performance capacity of a single architecture layer in the production environment based on the single node performance capacity, the number of nodes, and a pre-built performance capacity prediction model for a single architecture layer in the production environment. In one embodiment, the second determining module 830 can be used to perform the operation S230 described above, which will not be repeated here.

[0155] The third determining module 840 is used to determine the application performance capacity of the production environment based on the performance capacity of multiple production environment single architecture layers. In one embodiment, the third determining module 840 can be used to perform the operation S240 described above, which will not be repeated here.

[0156] According to embodiments of this disclosure, the apparatus further includes a model training module 850 and a model building module 860.

[0157] According to embodiments of this disclosure, the model training module 850 includes a first sample collection submodule 851, a fourth determination submodule 852, a second sample collection submodule 853, a sample feature generation submodule 854, a transformation submodule 855, and a fifth determination submodule 856.

[0158] The first sample collection submodule 851 is used to collect first training sample data, which includes the CPU utilization rate of a single node under different transaction rates in a test environment. In one embodiment, the first sample collection submodule 851 can be used to perform the operation S310 described above, which will not be repeated here.

[0159] The fourth determining submodule 852 is used to determine the mapping relationship between single-node capacity and CPU utilization based on the training sample data, so as to determine the single-node performance capacity prediction model for the test environment. In one embodiment, the fourth determining submodule 852 can be used to perform the operation S320 described above, which will not be repeated here.

[0160] The second sample collection submodule 853 is used to collect second training sample data, which includes CPU utilization and transaction rate in a production environment. In one embodiment, the second sample collection submodule 853 can be used to perform the operation S330 described above, which will not be repeated here.

[0161] The sample feature generation submodule 854 is used to perform feature processing on the first training sample data and the second training sample data to generate multiple sets of multi-dimensional sample features. In one embodiment, the sample feature generation submodule 854 can be used to perform the operation S340 described above, which will not be repeated here.

[0162] The conversion submodule 855 is used to perform machine learning training on the sample features to obtain a single-node performance-capacity conversion model. In one embodiment, the conversion submodule 855 can be used to perform the operation S350 described above, which will not be repeated here.

[0163] The fifth determining submodule 856 is used to determine the single-node performance capacity prediction model based on the single-node performance capacity prediction model of the test environment and the single-node performance capacity conversion model. In one embodiment, the fifth determining submodule 856 can be used to perform the operation S360 described above, which will not be repeated here.

[0164] According to embodiments of this disclosure, the model building module 860 includes a testing submodule 861, a second acquisition submodule 862, a sixth determination submodule 863, and a seventh determination submodule 864.

[0165] The test submodule 861 is used to perform multiple gradient stress tests on the application in a test environment. In one embodiment, the test submodule 861 can be used to perform the operation S410 described above, which will not be repeated here.

[0166] The second acquisition submodule 862 is used to acquire the online transaction rate of different nodes in the test environment at a specified percentage of CPU utilization. In one embodiment, the second acquisition submodule 862 can be used to perform the operation S420 described above, which will not be repeated here.

[0167] The sixth determining submodule 863 is used to determine the performance capacity prediction model of a single architecture layer in the test environment based on the number of nodes, CPU utilization, and online transaction rate. In one embodiment, the sixth determining submodule 863 can be used to perform the operation S430 described above, which will not be repeated here.

[0168] The seventh determining submodule 864 is used to determine the production environment single-architecture layer performance capacity prediction model based on the production environment single-node performance capacity and the test environment single-architecture layer performance capacity prediction model. In one embodiment, the seventh determining submodule 864 can be used to perform the operation S440 described above, which will not be repeated here.

[0169] According to embodiments of the present disclosure, the first determining module 820 includes a first determining submodule 821 and a second determining submodule 822.

[0170] The first determining submodule 821 is used to determine the single-node performance capacity of the test environment based on the single-node performance index data of the test environment and the single-node performance capacity prediction model of the test environment. In one embodiment, the first determining submodule 821 can be used to perform the operation S221 described above, which will not be repeated here.

[0171] The second determining submodule 822 is used to determine the single-node performance capacity of the production environment based on the conversion model between the single-node performance capacity of the test environment and the single-node performance capacity of the production environment. In one embodiment, the second determining submodule 822 can be used to perform the operation S222 described above, which will not be repeated here.

[0172] According to embodiments of this disclosure, the third determining module 840 includes a first obtaining submodule 841 and a third determining submodule 842.

[0173] The first acquisition submodule 841 is used to acquire the performance capacity of multiple production environment single architecture layers. In one embodiment, the first acquisition submodule 841 can be used to perform the operation S241 described above, which will not be repeated here.

[0174] The third determining submodule 842 is used to determine the minimum value of the performance capacity of the plurality of production environment single architecture layers as the production environment application performance capacity. In one embodiment, the third determining submodule 842 can be used to perform the operation S242 described above, which will not be repeated here.

[0175] According to embodiments of this disclosure, any plurality of modules among the acquisition module 810, the first determination module 820, the second determination module 830, and the third determination module 840 can be combined into one module, or any one of these modules can be split into multiple modules. Alternatively, at least part of the functionality of one or more of these modules can be combined with at least part of the functionality of other modules and implemented in one module. According to embodiments of this disclosure, at least one of the acquisition module 810, the first determination module 820, the second determination module 830, and the third determination module 840 can be at least partially implemented as hardware circuitry, such as a field-programmable gate array (FPGA), a programmable logic array (PLA), a system-on-a-chip, a system-on-a-substrate, a system-on-package, an application-specific integrated circuit (ASIC), or implemented in hardware or firmware by any other reasonable means of integrating or packaging the circuitry, or implemented in any one of the three implementation methods of software, hardware, and firmware, or in a suitable combination of any of these. Alternatively, at least one of the acquisition module 810, the first determination module 820, the second determination module 830, and the third determination module 840 may be at least partially implemented as a computer program module, which can perform corresponding functions when the computer program module is run.

[0176] Figure 8 A block diagram schematically illustrates an electronic device suitable for implementing an application performance capacity estimation method according to an embodiment of the present disclosure.

[0177] like Figure 8As shown, an electronic device 900 according to an embodiment of the present disclosure includes a processor 901, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 902 or a program loaded from a storage portion 908 into a random access memory (RAM) 903. The processor 901 may include, for example, a general-purpose microprocessor (e.g., a CPU), an instruction set processor and / or an associated chipset and / or a special-purpose microprocessor (e.g., an application-specific integrated circuit (ASIC)), etc. The processor 901 may also include onboard memory for caching purposes. The processor 901 may include a single processing unit or multiple processing units for performing different actions of the method flow according to an embodiment of the present disclosure.

[0178] RAM 903 stores various programs and data required for the operation of electronic device 900. Processor 901, ROM 902, and RAM 903 are interconnected via bus 904. Processor 901 performs various operations of the method flow according to embodiments of the present disclosure by executing programs in ROM 902 and / or RAM 903. It should be noted that the programs may also be stored in one or more memories other than ROM 902 and RAM 903. Processor 901 may also perform various operations of the method flow according to embodiments of the present disclosure by executing programs stored in said one or more memories.

[0179] According to embodiments of this disclosure, the electronic device 900 may further include an input / output (I / O) interface 905, which is also connected to a bus 904. The electronic device 900 may also include one or more of the following components connected to the I / O interface 905: an input section 906 including a keyboard, mouse, etc.; an output section 907 including a cathode ray tube (CRT), liquid crystal display (LCD), etc., and a speaker, etc.; a storage section 908 including a hard disk, etc.; and a communication section 909 including a network interface card such as a LAN card, modem, etc. The communication section 909 performs communication processing via a network such as the Internet. A drive 910 is also connected to the I / O interface 905 as needed. A removable medium 911, such as a disk, optical disk, magneto-optical disk, semiconductor memory, etc., is installed on the drive 910 as needed so that computer programs read from it can be installed into the storage section 908 as needed.

[0180] This disclosure also provides a computer-readable storage medium, which may be included in the device / apparatus / system described in the above embodiments; or it may exist independently and not assembled into the device / apparatus / system. The computer-readable storage medium carries one or more programs, which, when executed, implement the application performance capacity estimation method according to the embodiments of this disclosure.

[0181] According to embodiments of this disclosure, the computer-readable storage medium may be a non-volatile computer-readable storage medium, such as including, but not limited to: portable computer disks, hard disks, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), portable compact disk read-only memory (CD-ROM), optical storage devices, magnetic storage devices, or any suitable combination thereof. In this disclosure, the computer-readable storage medium may be any tangible medium that contains or stores a program that can be used by or in conjunction with an instruction execution system, apparatus, or device. For example, according to embodiments of this disclosure, the computer-readable storage medium may include ROM 902 and / or RAM 903 and / or one or more memories other than ROM 902 and RAM 903 described above.

[0182] Embodiments of this disclosure also include a computer program product comprising a computer program containing program code for performing the methods shown in the flowchart. When the computer program product is run on a computer system, the program code is used to enable the computer system to implement the application performance capacity estimation method provided in embodiments of this disclosure.

[0183] When the computer program is executed by the processor 901, it performs the functions defined in the system / apparatus of this disclosure embodiments. According to embodiments of this disclosure, the systems, apparatuses, modules, units, etc., described above can be implemented by computer program modules.

[0184] In one embodiment, the computer program may rely on a tangible storage medium such as an optical storage device or a magnetic storage device. In another embodiment, the computer program may also be transmitted and distributed in the form of signals over a network medium, and downloaded and installed via the communication section 909, and / or installed from a removable medium 911. The program code contained in the computer program can be transmitted using any suitable network medium, including but not limited to: wireless, wired, etc., or any suitable combination thereof.

[0185] In such an embodiment, the computer program can be downloaded and installed from a network via the communication section 909, and / or installed from the removable medium 911. When the computer program is executed by the processor 901, it performs the functions defined in the system of this disclosure embodiment. According to embodiments of this disclosure, the systems, devices, apparatuses, modules, units, etc., described above can be implemented by computer program modules.

[0186] According to embodiments of this disclosure, program code for executing the computer programs provided in embodiments of this disclosure can be written in any combination of one or more programming languages. Specifically, these computational programs can be implemented using high-level procedural and / or object-oriented programming languages, and / or assembly / machine languages. Programming languages ​​include, but are not limited to, languages ​​such as Java, C++, Python, "C", or similar programming languages. The program code can execute entirely on the user's computing device, partially on the user's device, partially on a remote computing device, or entirely on a remote computing device or server. In cases involving remote computing devices, the remote computing device can be connected to the user's computing device via any type of network, including a local area network (LAN) or a wide area network (WAN), or it can be connected to an external computing device (e.g., via the Internet using an Internet service provider).

[0187] The flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of systems, methods, and computer program products according to various embodiments of this disclosure. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions indicated in the blocks may occur in a different order than those indicated in the drawings. For example, two consecutively indicated blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in a block diagram or flowchart, and combinations of blocks in a block diagram or flowchart, may be implemented using a dedicated hardware-based system that performs the specified function or operation, or using a combination of dedicated hardware and computer instructions.

[0188] Those skilled in the art will understand that the features described in the various embodiments and / or claims of this disclosure can be combined or combined in various ways, even if such combinations or combinations are not explicitly described in this disclosure. In particular, the features described in the various embodiments and / or claims of this disclosure can be combined or combined in various ways without departing from the spirit and teachings of this disclosure. All such combinations and / or combinations fall within the scope of this disclosure.

[0189] The embodiments of this disclosure have been described above. However, these embodiments are for illustrative purposes only and are not intended to limit the scope of this disclosure. Although various embodiments have been described above, this does not mean that the measures in the various embodiments cannot be used advantageously in combination. The scope of this disclosure is defined by the appended claims and their equivalents. Various substitutions and modifications can be made by those skilled in the art without departing from the scope of this disclosure, and all such substitutions and modifications should fall within the scope of this disclosure.

Claims

1. A method for predicting application performance capacity, applied to a distributed architecture, wherein the distributed architecture comprises multiple single-architecture layers, characterized in that, include: Obtain single-node performance metrics data for the test environment; The single-node performance capacity in the production environment is determined based on the single-node performance index data of the test environment and the pre-trained single-node performance capacity prediction model. The performance capacity of a single architecture layer in the production environment is determined based on the performance capacity of a single node in the production environment, the number of nodes, and a pre-built performance capacity prediction model for a single architecture layer in the production environment. as well as The application performance capacity for the production environment is determined based on the minimum performance capacity of a single architecture layer across multiple production environments. The single-node performance capacity prediction model includes a single-node performance capacity prediction model for the test environment and a single-node performance capacity conversion model for the production environment. The methods for constructing a pre-built performance capacity prediction model for a single architecture layer in a production environment include: The application underwent multiple gradient stress tests in the test environment; Obtain the online transaction rate of different nodes in the test environment at a specified percentage of CPU utilization; The single-architecture layer performance capacity prediction model for the test environment is determined based on the number of nodes, CPU utilization, and online transaction rate. The production environment single-node performance capacity prediction model is determined based on the production environment single-node performance capacity and the test environment single-architecture layer performance capacity prediction model.

2. The method according to claim 1, characterized in that, The step of determining the single-node performance capacity in the production environment based on the single-node performance index data of the test environment and the pre-trained single-node performance capacity prediction model includes: The performance capacity of a single node in the test environment is determined based on the single-node performance index data and the single-node performance capacity prediction model of the test environment; and The performance capacity of a single node in the production environment is determined based on the conversion model between the single-node performance capacity of the test environment and the single-node performance capacity of the production environment.

3. The method according to claim 1, characterized in that, The training method for the pre-trained single-node performance capacity prediction model includes: Collect the first training sample data, which includes the CPU utilization of a single node under different transaction rates in the test environment. Based on the first training sample data, determine the mapping relationship between single-node capacity and CPU utilization to determine the single-node performance capacity prediction model for the test environment; Collect second training sample data, which includes CPU utilization and transaction rate in a production environment; The first training sample data and the second training sample data are subjected to feature processing to generate multiple sets of multi-dimensional sample features; A single-node performance-capacity conversion model is obtained by performing machine learning training on the sample features. The single-node performance capacity prediction model is determined based on the single-node performance capacity prediction model of the test environment and the single-node performance capacity conversion model.

4. The method according to any one of claims 1 to 3, characterized in that, The single-node performance metrics data include system environment metrics data and system operation status metrics data. The system environment metrics data includes test environment information, CPU information, memory information, and disk information. The system operation status metrics data includes CPU operation information, memory usage, disk operation information, network I / O information, and platform service response information.

5. The method according to claim 4, characterized in that, The method further includes: The expansion strategy is determined based on the performance capacity of the production environment.

6. An application performance capacity estimation device, applied to a distributed architecture, the distributed architecture comprising multiple single-architecture layers, including: The acquisition module is used to acquire single-node performance index data in the test environment; The first determining module is used to determine the single-node performance capacity of the production environment based on the single-node performance index data of the test environment and the pre-trained single-node performance capacity prediction model. The second determining module is used to determine the performance capacity of the single architecture layer of the production environment based on the performance capacity of the single node in the production environment, the number of nodes, and the pre-built performance capacity prediction model of the single architecture layer of the production environment. as well as The third determination module is used to determine the application performance capacity of the production environment based on the minimum value of the single architecture layer performance capacity of multiple production environments. The model training module is used to perform multiple gradient stress tests on the application in the test environment; obtain the online transaction rate of different nodes in the test environment under a specified proportion of CPU utilization; determine the single-architecture layer performance capacity prediction model of the test environment based on the number of nodes, CPU utilization, and online transaction rate; and determine the single-architecture layer performance capacity prediction model of the production environment based on the single-node performance capacity of the production environment and the single-architecture layer performance capacity prediction model of the test environment.

7. An electronic device, comprising: One or more processors; Storage device for storing one or more programs. Wherein, when the one or more programs are executed by the one or more processors, the one or more processors perform the method according to any one of claims 1 to 5.

8. A computer-readable storage medium having executable instructions stored thereon, which, when executed by a processor, cause the processor to perform the method according to any one of claims 1 to 5.

9. A computer program product comprising a computer program that, when executed by a processor, implements the method according to any one of claims 1 to 5.

Citation Information

Patent Citations

  • Generation method and device of classification method, and estimation method and device of system capacity

    CN105488539A

  • Edge computing platform container deployment method and system based on load prediction

    CN110231976A