Application performance analysis method, device and equipment
By acquiring historical monitoring data of applications in heterogeneous CPU clusters for multi-dimensional classification and performance difference index calculation, the high overhead and low efficiency problems of existing technologies are solved, and resource utilization and application performance are optimized.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-11-11
- Publication Date
- 2026-04-07
AI Technical Summary
In heterogeneous CPU cluster environments, existing technologies that allocate applications through application structure feature analysis and real-time resource status matching incur significant performance overhead and maintenance costs, and have low processing efficiency.
By acquiring historical monitoring datasets of applications, multi-dimensional and comprehensive classifications are performed, and a performance difference index is calculated to quantify the performance differences of applications in heterogeneous CPU environments and optimize resource utilization.
It enables low-cost and high-efficiency application performance analysis, improving resource utilization and application performance in heterogeneous CPU clusters.
Smart Images

Figure CN121807657A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of computer technology, and more specifically, to a method, apparatus, and device for application performance analysis. Background Technology
[0002] With the rapid development of cloud cluster computing technology, heterogeneous CPU cluster environments have become the core of supporting cloud platform operation. The aforementioned heterogeneous CPU cluster environment refers to a cluster containing multiple different models of Central Processing Unit (CPU) nodes. The nodes differ in hardware characteristics such as memory, disk, and network resources. The cluster achieves unified management and resource aggregation through virtualization and containerization technologies, forming a dynamically scheduled shared resource pool. The cloud platform is a multi-service mixed deployment, that is, different applications share heterogeneous cluster resources. Although this greatly improves resource utilization and reduces idle rate, due to differences in resource limitations and isolation methods for CPU resources, memory resources, disk and network resources, differences in underlying hardware, and differences in application performance, the performance of applications allocated to different nodes varies.
[0003] In existing technologies, applications are assigned to the nodes with the highest similarity to the target program by analyzing application structure features and matching real-time resource status. However, the above methods require the use of disassemblers to obtain the application's assembly code. Obtaining this data in a large cloud cluster will result in huge performance overhead. The correctness of the decompilation results is also difficult to verify. Frequent updates of applications in cloud clusters will bring huge daily maintenance costs to the scheduler, and the processing efficiency is slow.
[0004] In conclusion, how to perform application performance analysis in a cost-effective and efficient manner is a problem that needs to be solved. Summary of the Invention
[0005] In view of this, embodiments of the present invention provide a method, apparatus, and device for application performance analysis, which can perform application performance analysis at low cost and high efficiency.
[0006] In a first aspect, embodiments of the present invention provide a method for application performance analysis, the method comprising: acquiring an application historical monitoring dataset, wherein the application historical monitoring dataset includes multiple sample data, each sample data including an application name, a CPU model corresponding to the application name, and an application performance index; determining multiple target applications corresponding to any CPU model in the application historical monitoring dataset, and application performance indexes corresponding to the multiple target applications; classifying the multiple target applications in a multi-dimensional manner according to the application performance indexes corresponding to the multiple target applications; determining a comprehensive classification for each target application based on the multi-dimensional classification; and determining a performance difference index for the target applications based on the comprehensive classification.
[0007] Optionally, the method further includes: training an application classification model based on the application historical monitoring dataset and the comprehensive classification of each target application.
[0008] Optionally, the method further includes: obtaining application performance metrics corresponding to the newly added application; inputting the application performance metrics corresponding to the newly added application into the application classification model, and outputting a comprehensive classification corresponding to the newly added application.
[0009] Optionally, the step of classifying the multiple target applications according to the application performance indicators corresponding to the multiple target applications in a multi-dimensional manner specifically includes: obtaining the CPU resource usage-related performance indicators among the application performance indicators corresponding to the multiple target applications; and classifying the multiple target applications according to the CPU resource usage-related performance indicators in a first dimension.
[0010] Optionally, the step of classifying the multiple target applications into multiple dimensions based on the application performance metrics corresponding to the multiple target applications specifically includes: obtaining the memory resource usage-related performance metrics among the application performance metrics corresponding to the multiple target applications; and classifying the multiple target applications into a second dimension based on the memory resource usage-related performance metrics.
[0011] Optionally, the step of classifying the multiple target applications according to the application performance indicators corresponding to the multiple target applications in a multi-dimensional manner specifically includes: obtaining the performance indicators related to disk and network resource usage among the application performance indicators corresponding to the multiple target applications; and classifying the multiple target applications according to the third dimension based on the performance indicators related to disk and network resource usage.
[0012] Optionally, in response to the number of target applications corresponding to any comprehensive classification being less than a set threshold, determining the comprehensive classification of each target application based on the multi-dimensional classification specifically includes: classifying the target application into other comprehensive classifications with the smallest centroid distance based on the centroid distance of the multi-dimensional classification of the target application corresponding to any comprehensive classification.
[0013] Optionally, determining the performance difference index of the target application based on the comprehensive classification specifically includes: determining all candidate applications included in the comprehensive classification; calculating the performance difference index of each candidate application; and determining the mean and standard deviation of the performance difference indices of all candidate applications as the performance difference index of the target application.
[0014] Optionally, calculating the performance difference index for each candidate application specifically includes: obtaining historical monitoring datasets of the application; determining the CPU utilization of the candidate application on any CPU model; determining a relative CPU usage index based on the CPU utilization; and determining the performance difference index of the candidate application based on the relative CPU usage index.
[0015] Optionally, determining the relative CPU usage index based on the CPU utilization rate specifically includes: determining the CPU utilization rate of the candidate application on any CPU model and the CPU utilization rate of the candidate application on a specific CPU model; and determining the ratio of the CPU utilization rate of the candidate application on any CPU model to the CPU utilization rate of the candidate application on the specific CPU model as the relative CPU usage index.
[0016] Secondly, embodiments of the present invention provide an application performance analysis apparatus, the apparatus comprising: an acquisition unit, configured to acquire an application historical monitoring dataset, wherein the application historical monitoring dataset includes multiple sample data, each sample data including an application name, a CPU model corresponding to the application name, and an application performance index; a first determination unit, configured to determine multiple target applications corresponding to any CPU model in the application historical monitoring dataset, and application performance indices corresponding to the multiple target applications; a classification unit, configured to perform multi-dimensional classification of the multiple target applications according to the application performance indices corresponding to the multiple target applications; the classification unit is further configured to determine a comprehensive classification for each target application based on the multi-dimensional classification; and a second determination unit, configured to determine a performance difference index for the target applications based on the comprehensive classification.
[0017] Optionally, the device further includes a training unit for training an application classification model based on the application historical monitoring dataset and the comprehensive classification of each of the target applications.
[0018] Optionally, the acquisition unit is further configured to: acquire application performance indicators corresponding to the newly added application; the device further includes: a processing unit, configured to input the application performance indicators corresponding to the newly added application into the application classification model, and output a comprehensive classification corresponding to the newly added application.
[0019] Optionally, the classification unit is specifically used to: obtain CPU resource usage-related performance indicators from the application performance indicators corresponding to the plurality of target applications; and classify the plurality of target applications according to the CPU resource usage-related performance indicators in a first dimension.
[0020] Optionally, the classification unit is further configured to: obtain memory resource usage-related performance indicators from the application performance indicators corresponding to the plurality of target applications; and classify the plurality of target applications in a second dimension based on the memory resource usage-related performance indicators.
[0021] Optionally, the classification unit is further configured to: obtain the performance indicators related to disk and network resource usage among the application performance indicators corresponding to the plurality of target applications; and classify the plurality of target applications in a third dimension based on the performance indicators related to disk and network resource usage.
[0022] Optionally, in response to the number of target applications corresponding to any comprehensive classification being less than a set threshold, the classification unit is further configured to: classify the any comprehensive classification into other comprehensive classifications with the smallest centroid distance based on the centroid distance of the multi-dimensional classification of the target applications corresponding to any comprehensive classification.
[0023] Optionally, the second determining unit is specifically used to: determine all candidate applications included in the comprehensive classification; calculate the performance difference index of each candidate application; and determine the mean and standard deviation of the performance difference indices of all candidate applications as the performance difference index of the target application.
[0024] Optionally, the second determining unit is further configured to: acquire historical monitoring datasets of the application; determine the CPU utilization of the candidate application on any CPU model; determine a relative CPU usage index based on the CPU utilization; and determine a performance difference index of the candidate application based on the relative CPU usage index.
[0025] Optionally, the second determining unit is further configured to: determine the CPU utilization of the candidate application on any CPU model and the CPU utilization of the candidate application on a specific CPU model; and determine the ratio of the CPU utilization of the candidate application on any CPU model to the CPU utilization of the candidate application on a specific CPU model as the relative CPU usage index.
[0026] Thirdly, embodiments of the present invention provide an electronic device, including a memory and a processor, wherein the memory is used to store one or more computer program instructions, wherein the one or more computer program instructions are executed by the processor to implement the method as described in the first aspect or any one of the possible methods of the first aspect.
[0027] Fourthly, embodiments of the present invention provide a computer-readable storage medium having stored thereon computer program instructions that, when executed by a processor, implement the method as described in the first aspect or any one of the possibilities of the first aspect.
[0028] In this embodiment of the invention, an application historical monitoring dataset is acquired, comprising multiple sample data sets. Each sample data set includes an application name, the CPU model corresponding to the application name, and application performance metrics. Multiple target applications corresponding to any CPU model in the application historical monitoring dataset are identified, along with their corresponding application performance metrics. The multiple target applications are then classified in multiple dimensions based on their performance metrics. A comprehensive classification for each target application is determined based on the multi-dimensional classification. Finally, a performance difference index for each target application is determined based on the comprehensive classification. This method allows for cost-effective and efficient application performance analysis, enabling the allocation of applications to appropriate nodes, improving node resource utilization, and ultimately enhancing application performance. Attached Figure Description
[0029] The above and other objects, features and advantages of the present invention will become clearer from the following description of embodiments of the invention with reference to the accompanying drawings, in which: Figure 1 This is a flowchart of an application performance analysis method according to an embodiment of the present invention; Figure 2 This is a flowchart of another application performance analysis method in an embodiment of the present invention; Figure 3 This is a flowchart of another application performance analysis method in an embodiment of the present invention; Figure 4 This is a flowchart of another application performance analysis method in an embodiment of the present invention; Figure 5 This is a flowchart of an application performance analysis method according to an embodiment of the present invention; Figure 6 This is a schematic diagram of an application performance analysis device according to an embodiment of the present invention; Figure 7 This is a schematic diagram of an electronic device according to an embodiment of the present invention. Detailed Implementation
[0030] The present application is described below based on embodiments, but it is not limited to these embodiments. In the detailed description of the present application below, certain specific details are described in detail. Those skilled in the art can fully understand the present application without these details. To avoid obscuring the substance of the present application, well-known methods, processes, flows, elements, and circuits are not described in detail.
[0031] Furthermore, those skilled in the art should understand that the accompanying drawings provided herein are for illustrative purposes only and are not necessarily drawn to scale.
[0032] Unless the context explicitly requires it, words such as "including" or "contains" throughout the application should be interpreted as including rather than exclusive or exhaustive; that is, meaning "including but not limited to".
[0033] In the description of this application, it should be understood that the terms "first," "second," etc., are used for descriptive purposes only and should not be construed as indicating or implying relative importance. Furthermore, in the description of this application, unless otherwise stated, "a plurality of" means two or more.
[0034] In existing technologies, applications are assigned to nodes with the highest similarity to the target program by analyzing application structure features and matching real-time resource status. This optimizes application performance and resource utilization in heterogeneous CPU clusters. These schemes analyze application performance differences in heterogeneous CPU cluster environments from the perspective of program similarity. Using the assembly code and performance of existing applications as input, they calculate the similarity of the scheduled application's assembly instructions to those of known applications. By combining application structure features with resource usage preferences, more accurate node matching is achieved. However, these methods require disassembly tools to obtain the application's assembly code. Obtaining this data in large cloud clusters incurs significant performance overhead, and the correctness of the decompilation results is difficult to verify. Frequent updates to applications in cloud clusters impose substantial daily maintenance costs on the scheduler, and the processing efficiency is slow. Therefore, how to perform application performance analysis cost-effectively and efficiently is a problem that needs to be solved.
[0035] In one possible implementation, the application may also be referred to as an application, business, APP, etc., depending on the actual situation.
[0036] In this embodiment of the invention, to solve the above problems, a method for application performance analysis is proposed, specifically as follows: Figure 1 As shown, the method includes: Step S101: Obtain the application's historical monitoring dataset.
[0037] The application historical monitoring dataset includes multiple sample data sets, each of which includes the application name, the central processing unit (CPU) model corresponding to the application name, and application performance metrics.
[0038] Specifically, the application performance metrics include performance metrics related to CPU resource usage, performance metrics related to memory resource usage, and performance metrics related to disk and network resource usage. Among these, the performance metrics related to CPU resource usage include CPU utilization, CPU time, cycles per instruction (CPI), instructions per second, and L3 cache misses per second; the performance metrics related to memory resource usage include memory utilization and total memory usage; and the performance metrics related to disk and network resource usage include disk-related metrics such as disk utilization, bytes read or written to all disks per second, and disk I / O operation speed per second, as well as network-related metrics such as bytes received or sent by the network interface card per second and network retransmission rate.
[0039] In one possible implementation, the application name can be application 1, application 2, application 3, etc., and the CPU model can be... , , …etc., are merely illustrative examples.
[0040] In this embodiment of the invention, a specific example of the sample data is application 1. The specific values of various performance metrics in the application performance metrics are not detailed here.
[0041] In one possible implementation, historical monitoring data generated by multiple nodes in a heterogeneous CPU cluster during operation within a set time period is acquired. The nodes can also be referred to as machines, and each machine includes a CPU, memory, network, and disk. The collection scope is limited to nodes whose real-time CPU utilization is below a set threshold and which have achieved load balancing. For example, the set time period is 1 hour and the set threshold is 50%. This is only an example and the specific details are determined according to the actual situation. Multiple sample data are generated according to the above method, and the application historical monitoring dataset is composed of multiple sample data.
[0042] Step S102: Determine multiple target applications corresponding to any CPU model in the application historical monitoring dataset, and the application performance indicators corresponding to the multiple target applications.
[0043] In one possible implementation, since the application historical monitoring dataset includes , , …and other CPU models, each corresponding to multiple target applications, for example… Corresponding to 10 applications, This example covers 25 applications, etc., and is merely for illustrative purposes. The application with the worst performance can be used. For multiple target applications corresponding to a particular model, the CPU model with the most corresponding target applications can be used for subsequent processing.
[0044] Step S103: Classify the multiple target applications in multiple dimensions according to the application performance indicators corresponding to the multiple target applications.
[0045] In one possible implementation, the multi-dimensional classification includes a first-dimensional classification, a second-dimensional classification, and a third-dimensional classification; wherein, the first-dimensional classification is a classification of multiple target applications corresponding to any CPU model based on performance indicators related to CPU resource usage; the second-dimensional classification is a classification of multiple target applications corresponding to any CPU model based on performance indicators related to memory resource usage; and the third-dimensional classification is a classification of multiple target applications corresponding to any CPU model based on performance indicators related to disk and network resource usage.
[0046] The following three specific examples illustrate multi-dimensional classification in detail: Specific Implementation Example 1 Obtain the CPU resource usage-related performance metrics from the application performance metrics corresponding to the multiple target applications; classify the multiple target applications according to the first dimension based on the CPU resource usage-related performance metrics.
[0047] For example, to obtain For each target application, the corresponding performance metrics such as CPU utilization, CPU time, CPI (cycles per instruction), instructions per second, and L3 cache misses per second are obtained. Using these performance metrics as input for cluster analysis, the multiple target applications are classified into the first dimension category.
[0048] In one possible implementation, firstly, assume There are m target applications, each with n features, including CPU utilization, CPU time, CPI (cycles per instruction), instructions per second (instructions per second), and L3 Cache Misses per second. The dataset consisting of these n features from the m target applications is denoted as […]. Z-score standardization is performed on the data for each feature, that is, for the features... Data sequence Standardization, forming new sequences ,in, The And s are respectively the The mean and standard deviation are calculated; then, the optimal number of clusters K is determined, assuming K=2, 3, 4, and processed sequentially. The clustering result divides m targets into k categories, represented as... The centroid vector corresponding to each category is { The specific solution process is as follows: Since each row of dataset X corresponds to a feature data of a target application, it can be regarded as a coordinate in n-dimensional space and corresponds to a point in n-dimensional space. Randomly select k points as the initial centroids. ; Calculate each row in the dataset separately To each initial centroid vector distance The ,Will Mark as minimum Corresponding category , of which 1 ,make Obtain the category classification C={ of m points. }; Recalculate New centroids in each category If the new centroid vector { If the new centroid vector is the same as the original centroid vector, then calculate all... contour coefficient , wherein express To the The average distance of all points, the express To non The average distance of all points; if the new centroid vector is not equal to the original centroid vector, then re-apply the classification to the m targets until the new centroid vector is { The original centroid vector is the same; the output class C = { } and the average of the profile coefficients of all points Obtain the profile coefficients corresponding to k=2, 3, and 4 respectively. Select the one with the largest profile coefficient. The corresponding k value is used as the number of clusters K (which can also be expressed as...). Finally, the multiple target applications were categorized in the CPU resource profiling analysis. Class, that is, the first dimension of classification is Class, class name The category number of target application A is , here The value of is for illustrative purposes only and should be determined based on the actual situation. Specific Implementation Example 2 Obtain the memory resource usage-related performance metrics from the application performance metrics corresponding to the multiple target applications; classify the multiple target applications according to the memory resource usage-related performance metrics in a second dimension.
[0050] For example, to obtain For each target application, a corresponding performance metric such as memory usage rate and total memory usage is obtained. Using these performance metrics as input for cluster analysis, the multiple target applications are classified into a second-dimensional category.
[0051] In one possible implementation, firstly, assume There are m target applications, each with n features, such as memory usage rate and total memory usage. The dataset consisting of these n features from the m target applications is denoted as... Z-score standardization is performed on the data for each feature, that is, for the features... Data sequence Standardization, forming new sequences ,in, The And s are respectively the The mean and standard deviation are calculated; then, the optimal number of clusters K is determined, assuming K=2, 3, 4, and processed sequentially. The clustering result divides m targets into k categories, represented as... The centroid vector corresponding to each category is { The specific solution process is as follows: Since each row of dataset X corresponds to a feature data of a target application, it can be regarded as a coordinate in n-dimensional space and corresponds to a point in n-dimensional space. Randomly select k points as the initial centroids. ; Calculate each row in the dataset separately To each initial centroid vector distance The ,Will Mark as minimum Corresponding category , of which 1 ,make Obtain the category classification C={ of m points. }; Recalculate New centroids in each category If the new centroid vector { If the new centroid vector is the same as the original centroid vector, then calculate all... contour coefficient , wherein express To the The average distance of all points, the express To non The average distance of all points; if the new centroid vector is not equal to the original centroid vector, then re-apply the classification to the m targets until the new centroid vector is { The original centroid vector is the same; the output class C = { } and the average of the profile coefficients of all points Obtain the profile coefficients corresponding to k=2, 3, and 4 respectively. Select the one with the largest profile coefficient. The corresponding k value is used as the number of clusters K (which can also be expressed as...). Finally, the multiple target applications were categorized in the memory resource profiling analysis. Class, that is, the second dimension of classification is Class, according to The centroid { } Corresponding to the specific values of each indicator, The target applications in each category are identified by their varying levels of memory resource usage, from high to low. The class names are... The category number of target application A is , here The value of is for illustrative purposes only and should be determined based on the actual situation. Specific Implementation Example 3 Obtain the performance metrics related to disk and network resource usage from the application performance metrics corresponding to the multiple target applications; classify the multiple target applications in a third dimension based on the performance metrics related to disk and network resource usage.
[0053] For example, to obtain For each target application, the disk-related data such as disk usage, bytes read or written to all disks per second, and disk I / O operation speed per second are obtained, as well as network-related data such as bytes received or sent by the network card per second and network retransmission rate are obtained. Using the above performance metrics as input for cluster analysis, the multiple target applications are classified into a third-dimensional category.
[0054] In one possible implementation, firstly, assume For each of the m target applications, there are n features, including disk-related features such as disk utilization, bytes read or written to all disks per second, and disk I / O speed per second; and network-related features such as bytes received or sent by the network interface card per second and network retransmission rate. The dataset consisting of the n features of the m target applications is denoted as […]. Z-score standardization is performed on the data for each feature, that is, for the features... Data sequence Standardization, forming new sequences ,in, The And s are respectively the The mean and standard deviation are calculated; then, the optimal number of clusters K is determined, assuming K=2, 3, 4, and processed sequentially. The clustering result divides m targets into k categories, represented as... The centroid vector corresponding to each category is { The specific solution process is as follows: Since each row of dataset X corresponds to a feature data of a target application, it can be regarded as a coordinate in n-dimensional space and corresponds to a point in n-dimensional space. Randomly select k points as the initial centroids. ; Calculate each row in the dataset separately To each initial centroid vector distance The ,Will Mark as minimum Corresponding category , of which 1 ,make Obtain the category classification C={ of m points. }; Recalculate New centroids in each category If the new centroid vector { If the new centroid vector is the same as the original centroid vector, then calculate all... contour coefficient , wherein express To the The average distance of all points, the express To non The average distance of all points; if the new centroid vector is not equal to the original centroid vector, then re-apply the classification to the m targets until the new centroid vector is { The original centroid vector is the same; the output class C = { } and the average of the profile coefficients of all points Obtain the profile coefficients corresponding to k=2, 3, and 4 respectively. Select the one with the largest profile coefficient. The corresponding k value is used as the number of clusters K (which can also be expressed as...). Finally, the multiple target applications were categorized in the disk and network resource profiling analysis. Class, that is, the third dimension of classification Class, according to The centroid { } Corresponding to the specific values of each indicator, The target applications in each category are identified by their varying levels of disk and network resource usage, from high to low. The category names are... The category number of target application A is , here The value of is for illustrative purposes only and should be determined based on the actual situation.
[0055] Step S104: Determine the comprehensive classification of each target application based on the multi-dimensional classification.
[0056] Specifically, the multi-dimensional classification is the first dimension classification. The second dimension is classified as The third dimension is classified as The comprehensive classification is as follows: The comprehensive classification of target application A is represented as follows: .
[0057] In one possible implementation, in response to the number of target applications corresponding to any comprehensive classification being less than a set threshold, determining the comprehensive classification of each target application based on the multi-dimensional classification specifically includes: classifying the target application into other comprehensive classifications with the smallest centroid distance based on the centroid distance of the multi-dimensional classification of the target application corresponding to any comprehensive classification.
[0058] For example, calculate each comprehensive category. The corresponding number of target applications. If the number of target applications corresponding to a certain comprehensive category is less than 1% of the total number of target applications, then the sum of the distances from each of the three subcategories (i.e., the first dimension category, the second dimension category, and the third dimension category) to the centroids of the other subcategories is calculated, and expressed as: Find the three subclasses that minimize d. Comprehensive classification The target application is categorized into the comprehensive classification. .
[0059] Step S105: Determine the performance difference index of the target application based on the comprehensive classification.
[0060] Specifically, the performance difference index of the target application is determined based on the comprehensive classification, such as... Figure 2 The process includes the following steps: Step S201: Determine all candidate applications included in the comprehensive classification.
[0061] Specifically, identify all candidate applications included in each comprehensive category; for example, a comprehensive category may include 30 candidate applications.
[0062] Step S202: Calculate the performance difference index for each candidate application.
[0063] In one possible implementation, the calculation of the performance difference index for each candidate application is specifically as follows: Figure 3 As shown, it includes the following: Step S301: Obtain the application's historical monitoring dataset.
[0064] Step S302: Determine the CPU utilization of the candidate application on any CPU model.
[0065] For example, any of the CPU models mentioned are represented as follows: The candidate application is application A, and application A is in CPU utilization on .
[0066] Step S303: Determine the relative CPU usage index based on the CPU utilization rate.
[0067] Specifically, the CPU utilization of the candidate application on any CPU model and the CPU utilization of the candidate application on a specific CPU model are determined; the ratio of the CPU utilization of the candidate application on any CPU model to the CPU utilization of the candidate application on a specific CPU model is determined as the relative CPU usage index.
[0068] For example, suppose the specific CPU model is The The CPU with the worst performance among all CPU models will be... As a benchmark, application A is in CPU utilization on The relative CPU usage index is .
[0069] In one possible implementation, under load balancing, the workload of the same application is roughly the same across all nodes at the same time, with the application running on nodes with better performance. When on a node, CPU utilization is low. .
[0070] In this embodiment of the invention, the above method is used to calculate the m applications in the application set M of the heterogeneous CPU cluster across all C-class CPU models. On ; and by calculating each CPU model All corresponding Determine multiple The median, denoted as .
[0071] Step S304: Determine the performance difference index of the candidate application based on the relative CPU usage index.
[0072] Specifically, the candidate application is application A, and the performance difference index (PDI) of application A is represented as follows: ; wherein, the It is a quantification of the performance improvement achieved when applied to heterogeneous CPUs; the aforementioned 1. Characterization application A in Performance comparison on The performance improvement is more than half; It can characterize that application A has a higher performance improvement on most CPUs than most other applications.
[0073] Step S202: Determine the mean and standard deviation of the performance difference indices of all candidate applications as the performance difference index of the target application.
[0074] In this embodiment of the invention, the performance difference index of the candidate application is determined by the above method.
[0075] In one possible implementation, after step S105, other steps are included, specifically as follows: Figure 4 As shown, it includes the following steps: Step S106: Train an application classification model based on the application historical monitoring dataset and the comprehensive classification of each target application.
[0076] Specifically, the application classification model is a multi-class classification model.
[0077] In one possible implementation, after training the application classification model, it can be directly used for classifying new applications, as shown in the following example: Figure 5 As shown, it includes the following: Step S501: Obtain the application performance metrics corresponding to the newly added application.
[0078] Step S502: Input the application performance index corresponding to the newly added application into the application classification model, and output the comprehensive classification corresponding to the newly added application.
[0079] Specifically, after determining the comprehensive category corresponding to the newly added application, the performance difference index corresponding to the comprehensive category is further determined.
[0080] In one possible implementation, after obtaining historical monitoring data, it can be cleaned to generate an application historical monitoring dataset.
[0081] Through the above embodiments, by defining and calculating the performance difference index, the performance differences of applications in heterogeneous CPU environments are quantified. Resource profile analysis is performed on the application's use of various types of resources, and a comprehensive resource profile is obtained by combining the performance difference index. Then, the application is analyzed online from the perspective of the differences in application performance and the consumption of various types of resources in heterogeneous CPU environments, providing a basis for matching the application with appropriate CPU models and nodes with resource load conditions, and optimizing the cluster resource utilization in conjunction with scheduling algorithms.
[0082] In this embodiment of the invention, an application performance analysis apparatus is provided, such as... Figure 6 As shown, the system specifically includes: an acquisition unit 601, a first determination unit 602, a classification unit 603, and a second determination unit 604; wherein, the acquisition unit 601 is used to acquire an application historical monitoring dataset, wherein the application historical monitoring dataset includes multiple sample data, each sample data including an application name, the CPU model corresponding to the application name, and application performance indicators; the first determination unit 602 is used to determine multiple target applications corresponding to any CPU model in the application historical monitoring dataset, and the application performance indicators corresponding to the multiple target applications; the classification unit 603 is used to perform multi-dimensional classification of the multiple target applications according to the application performance indicators corresponding to the multiple target applications; the classification unit 603 is also used to determine a comprehensive classification for each target application according to the multi-dimensional classification; the second determination unit 604 is used to determine a performance difference index for the target applications according to the comprehensive classification.
[0083] Furthermore, the device also includes a training unit for training an application classification model based on the application historical monitoring dataset and the comprehensive classification of each target application.
[0084] Furthermore, the acquisition unit is also used to: acquire application performance indicators corresponding to the newly added application; the device further includes: a processing unit, used to input the application performance indicators corresponding to the newly added application into the application classification model, and output the comprehensive classification corresponding to the newly added application.
[0085] Furthermore, the classification unit is specifically used to: obtain CPU resource usage-related performance indicators from the application performance indicators corresponding to the plurality of target applications; and classify the plurality of target applications according to the CPU resource usage-related performance indicators in a first dimension.
[0086] Furthermore, the classification unit is specifically used to: obtain the memory resource usage-related performance indicators among the application performance indicators corresponding to the plurality of target applications; and classify the plurality of target applications in a second dimension based on the memory resource usage-related performance indicators.
[0087] Furthermore, the classification unit is specifically used to: obtain the performance indicators related to disk and network resource usage among the application performance indicators corresponding to the plurality of target applications; and classify the plurality of target applications in a third dimension based on the performance indicators related to disk and network resource usage.
[0088] Furthermore, in response to the number of target applications corresponding to any comprehensive classification being less than a set threshold, the classification unit is specifically used to: classify the any comprehensive classification into other comprehensive classifications with the smallest centroid distance based on the centroid distance of the multi-dimensional classification of the target applications corresponding to any comprehensive classification.
[0089] Furthermore, the second determining unit is specifically used to: determine all candidate applications included in the comprehensive classification; calculate the performance difference index of each candidate application; and determine the mean and standard deviation of the performance difference indices of all candidate applications as the performance difference index of the target application.
[0090] Furthermore, the second determining unit is specifically used to: acquire historical monitoring datasets of applications; determine the CPU utilization rate of the candidate application on any CPU model; determine a relative CPU usage index based on the CPU utilization rate; and determine a performance difference index of the candidate application based on the relative CPU usage index.
[0091] Furthermore, the second determining unit is specifically used to: determine the CPU utilization of the candidate application on any CPU model and the CPU utilization of the candidate application on a specific CPU model; and determine the ratio of the CPU utilization of the candidate application on any CPU model to the CPU utilization of the candidate application on a specific CPU model as the relative CPU usage index.
[0092] Figure 7 This is a schematic diagram of the structure of the electronic device described in an embodiment of the present invention. Figure 7As shown, it includes a general computer hardware architecture, which includes at least a processor 701 and a memory 702. The processor 701 and the memory 702 are connected via a bus 703. The memory 702 is adapted to store instructions or programs executable by the processor 701. The processor 701 can be a standalone microprocessor or a collection of one or more microprocessors. Thus, the processor 701 executes the instructions stored in the memory 702 to perform the method flow of the embodiments of the present invention as described above, thereby realizing data processing and control of other devices. The bus 703 connects the above-mentioned components together, and also connects the above-mentioned components to a display controller 704, a display device, and an input / output (I / O) device 705. The input / output (I / O) device 705 can be a mouse, keyboard, modem, network interface, touch input device, motion-sensing input device, printer, and other devices known in the art. Typically, the input / output device 705 is connected to the system via an input / output (I / O) controller 706.
[0093] The instructions stored in memory 702 are executed by at least one processor 701 to: acquire an application historical monitoring dataset; determine multiple target applications corresponding to any CPU model in the application historical monitoring dataset, and application performance indicators corresponding to the multiple target applications; classify the multiple target applications in multiple dimensions according to the application performance indicators corresponding to the multiple target applications; determine a comprehensive classification for each of the target applications according to the multi-dimensional classification; and determine a performance difference index for the target applications according to the comprehensive classification.
[0094] Specifically, the electronic device includes: one or more processors 701 and a memory 702. Figure 7 Take a processor 701 as an example. The processor 701 and the memory 702 can be connected via a bus or other means. Figure 7 Taking a bus connection as an example, memory 702, as a non-volatile computer-readable storage medium, can be used to store non-volatile software programs, non-volatile computer-executable programs, and modules. Processor 701 executes various functional applications and data processing of the device by running the non-volatile software programs, instructions, and modules stored in memory 702, thus realizing the aforementioned method for determining application performance analysis.
[0095] Memory 702 may include a program storage area and a data storage area, wherein the program storage area may store the operating system and applications required for at least one function; the data storage area may store an option list, etc. Furthermore, memory 702 may include high-speed random access memory, and may also include non-volatile memory, such as at least one disk storage device, flash memory device, or other non-volatile solid-state storage device. In some embodiments, memory 702 may optionally include memory remotely located relative to processor 701, and these remote memories may be connected to external devices via a network. Examples of such networks include, but are not limited to, the Internet, corporate intranets, local area networks, mobile communication networks, and combinations thereof.
[0096] One or more modules are stored in memory 702, and when executed by one or more processors 701, they perform the application performance analysis method in any of the above method embodiments.
[0097] As those skilled in the art will recognize, various aspects of the embodiments of the present invention can be implemented as a system, method, or computer program product. Therefore, various aspects of the embodiments of the present invention can take the form of a completely hardware implementation, a completely software implementation (including firmware, resident software, microcode, etc.), or an implementation combining software and hardware aspects, which may generally be referred to herein as a "circuit," "module," or "system." Furthermore, various aspects of the embodiments of the present invention can take the form of a computer program product implemented in one or more computer-readable media having computer-readable program code implemented thereon.
[0098] Any combination of one or more computer-readable media can be used. A computer-readable medium can be a computer-readable signal medium or a computer-readable storage medium. A computer-readable storage medium can be, for example, (but not limited to) an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, device, or apparatus, or any suitable combination thereof. More specific examples (not an exhaustive list) of computer-readable storage media will include: an electrical connection having one or more wires, a portable computer floppy disk, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM or flash memory), optical fiber, portable optical disc read-only memory (CD-ROM), optical storage device, magnetic storage device, or any suitable combination thereof. In the context of embodiments of the present invention, a computer-readable storage medium can be any tangible medium capable of containing or storing a program used by or in conjunction with an instruction execution system, device, or apparatus.
[0099] Computer-readable signal media may include propagated digital signals having computer-readable program code implemented therein, such as in baseband or as part of a carrier wave. Such propagated signals may take any of a variety of forms, including, but not limited to, electromagnetic, optical, or any suitable combination thereof. A computer-readable signal medium may be any computer-readable medium that is not a computer-readable storage medium and can communicate, propagate, or transmit a program used by or in conjunction with an instruction execution system, device, or apparatus.
[0100] Program code implemented on a computer-readable medium may be transmitted using any suitable medium, including but not limited to wireless, wired, fiber optic cable, RF, or any suitable combination thereof.
[0101] Computer program code for performing operations relating to various aspects of embodiments of the present invention can be written in any combination of one or more programming languages, including: object-oriented programming languages such as Java, Smalltalk, C++, etc.; and conventional procedural programming languages such as the "C" programming language or similar programming languages. The program code can be executed as a standalone software package entirely on the user's computer, partially on the user's computer, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In the latter case, the remote computer can be connected to the user's computer 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 computer (e.g., via the Internet provided by an Internet service provider).
[0102] The flowchart illustrations and / or block diagrams of the methods, apparatus (systems), and computer program products according to embodiments of the present invention describe various aspects of the embodiments of the present invention. It will be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processor of a general-purpose computer, special-purpose computer, or other programmable data processing apparatus to produce a machine such that the instructions (executed via the processor of the computer or other programmable data processing apparatus) create means for implementing the functions / actions specified in the flowchart and / or block diagram blocks or blocks.
[0103] These computer program instructions may also be stored in a computer-readable medium that can direct a computer, other programmable data processing apparatus or other means to operate in a particular manner, such that the instructions stored in the computer-readable medium produce an article of writing that includes instructions that implement the functions / actions specified in flowchart and / or block diagram blocks or blocks.
[0104] Computer program instructions may also be loaded onto a computer, other programmable data processing apparatus or other device to cause a series of operable steps to be performed on the computer, other programmable apparatus or other device to produce a computer-implemented process, such that the instructions, which execute on the computer or other programmable apparatus, provide for implementing the functions / actions specified in flowchart and / or block diagram blocks or blocks.
[0105] The above description is merely a preferred embodiment of this application and is not intended to limit this application. Various modifications and variations can be made to this application by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this application should be included within the protection scope of this application.
[0106] It should be noted that the user information (including but not limited to user device information, user personal information, etc.) and data (including but not limited to data used for analysis, stored data, and displayed data) involved in this application are all information and data authorized by the user or fully authorized by all parties. Furthermore, the collection, use, and processing of such data must comply with the relevant laws, regulations, and standards of the relevant countries and regions, and corresponding access points are provided for users to choose to authorize or refuse processing. A user's refusal to process personal information beyond what is necessary for basic functions will not affect the user's use of basic functions.
Claims
1. A method for application performance analysis, characterized in that, The method includes: Obtain the historical monitoring dataset of the application, wherein the historical monitoring dataset of the application includes multiple sample data, each sample data including the application name, the CPU model of the central processing unit corresponding to the application name, and the application performance indicators; Identify multiple target applications corresponding to any CPU model in the application historical monitoring dataset, and the application performance metrics corresponding to the multiple target applications; The target applications are classified in multiple dimensions based on their corresponding application performance metrics. A comprehensive classification for each target application is determined based on the multi-dimensional classification. The performance difference index of the target application is determined based on the comprehensive classification.
2. The method according to claim 1, characterized in that, The method further includes: Based on the application's historical monitoring dataset and the comprehensive classification of each target application, an application classification model is trained.
3. The method according to claim 2, characterized in that, The method further includes: Get the application performance metrics corresponding to the newly added application; The application performance metrics corresponding to the newly added application are input into the application classification model, and the comprehensive classification corresponding to the newly added application is output.
4. The method according to claim 1, characterized in that, The step of classifying the multiple target applications into multiple dimensions based on their corresponding application performance metrics specifically includes: Obtain the CPU resource usage-related performance metrics from the application performance metrics corresponding to the multiple target applications; The multiple target applications are classified in the first dimension based on the performance indicators related to CPU resource usage.
5. The method according to claim 1, characterized in that, The step of classifying the multiple target applications into multiple dimensions based on their corresponding application performance metrics specifically includes: Obtain the memory resource usage-related performance metrics from the application performance metrics corresponding to the multiple target applications; The multiple target applications are classified in a second dimension based on the performance indicators related to memory resource usage.
6. The method according to claim 1, characterized in that, The step of classifying the multiple target applications into multiple dimensions based on their corresponding application performance metrics specifically includes: Obtain the performance metrics related to disk and network resource usage from the application performance metrics corresponding to the multiple target applications; The multiple target applications are classified in a third dimension based on performance metrics related to disk and network resources.
7. The method according to claim 1, characterized in that, If the number of target applications corresponding to any comprehensive classification is less than a set threshold, the step of determining the comprehensive classification of each target application based on the multi-dimensional classification specifically includes: Based on the centroid distance of the multi-dimensional classification of the target application corresponding to any comprehensive classification, the comprehensive classification is assigned to the other comprehensive classification with the smallest centroid distance.
8. The method according to claim 1, characterized in that, The determination of the performance difference index of the target application based on the comprehensive classification specifically includes: Identify all candidate applications included in the comprehensive classification; Calculate the performance difference index for each candidate application; The mean and standard deviation of the performance difference indices of all candidate applications are determined as the performance difference index of the target application.
9. The method according to claim 8, characterized in that, The calculation of the performance difference index for each candidate application specifically includes: Obtain historical monitoring datasets for the application; Determine the CPU utilization of the candidate application on any CPU model; Determine the relative CPU usage index based on the CPU utilization rate; The performance difference index of the candidate applications is determined based on the relative CPU usage metric.
10. The method according to claim 9, characterized in that, The determination of relative CPU usage metrics based on the CPU utilization rate specifically includes: Determine the CPU utilization of the candidate application on any CPU model, and the CPU utilization of the candidate application on a specific CPU model; The ratio of the CPU utilization of the candidate application on any CPU model to the CPU utilization of the candidate application on a specific CPU model is determined as the relative CPU utilization index.
11. An apparatus for application performance analysis, characterized in that, The device includes: The acquisition unit is used to acquire the historical monitoring dataset of the application, wherein the historical monitoring dataset of the application includes multiple sample data, and each sample data includes the application name, the CPU model of the central processing unit corresponding to the application name, and the application performance indicators. The first determining unit is used to determine multiple target applications corresponding to any CPU model in the application historical monitoring dataset, and application performance indicators corresponding to the multiple target applications. A classification unit is used to classify the multiple target applications in multiple dimensions based on the application performance indicators corresponding to the multiple target applications. The classification unit is also used to determine a comprehensive classification for each target application based on the multi-dimensional classification. The second determining unit is used to determine the performance difference index of the target application based on the comprehensive classification.
12. An electronic device comprising a memory and a processor, characterized in that, The memory is used to store one or more computer program instructions, wherein the one or more computer program instructions are executed by the processor to implement the method as described in any one of claims 1-10.
13. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that, when executed by a processor, implements the method as described in any one of claims 1-10.