Method and device for predicting load execution performance and computing device cluster
By obtaining the operation information of the measured object in different configurations, and using AI technology and search recommendation algorithm to optimize configuration parameters, the problem of low load execution performance prediction accuracy in the existing technology is solved, and efficient configuration parameter tuning is achieved.
Patent Information
- Application Number
- CN202410038588.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-01-10
- Publication Date
- 2025-07-11
AI Technical Summary
In the prior art, the AI model has low accuracy when performing performance prediction of loads, and cannot effectively improve the tuning efficiency and effect of application configuration parameters.
By obtaining the stage operation information of the object under test under different configurations, using AI technology to model the load execution characteristics, and combining the search recommendation algorithm to optimize configuration parameters and predict performance indicators.
Improve the accuracy of load execution performance prediction, improve the efficiency and effect of configuration parameter tuning, and shorten the tuning time.
Smart Images

Figure CN120295682A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the technical field of artificial intelligence (AI), and in particular, to a method, apparatus, and computing device cluster for predicting the load execution performance. Background Art
[0002] With the continuous development of various large-scale basic applications (such as big data, databases, etc.), these applications have spawned hundreds or thousands of configuration parameters to cope with different usage scenarios of different users.
[0003] Adjusting the configuration parameter values of an application will affect the performance of the application, and appropriate configuration can significantly improve the performance of the application. The optimization and adjustment of application configuration parameters are strongly related to the load, hardware environment, etc. Therefore, for the same application in different hardware environments and different loads, the configuration parameters often need to be customized and optimized. However, in the case of too many application configuration parameters, manual customization and optimization will be very time-consuming, and the optimization efficiency and effect cannot meet the actual requirements.
[0004] To improve the optimization efficiency, a current solution is to use an AI model to model the performance of an application: in the training stage, use different data scales (i.e., the total amount of data to be processed by the load), different configurations, and the performance of the application when executing the load under different configurations to train the AI model; in the usage stage, input a certain configuration and a certain data scale into the AI model, and the AI model outputs the performance prediction result of the application when executing the load of the data scale under the configuration. However, this AI model has the problem of low prediction accuracy. Summary of the Invention
[0005] This application provides a method, apparatus, and computing device cluster for predicting the load execution performance, which can improve the prediction accuracy.
[0006] In a first aspect, this application provides a method for predicting the load execution performance. The method includes: obtaining the first load execution feature of the object to be measured, and obtaining the second configuration of the object to be measured, and then predicting the performance of the object to be measured when executing the first load under the second configuration based on the first load execution feature and the second configuration, so as to obtain the first performance prediction result. Among them, the first load execution feature includes the stage operation information of the object to be measured during the process of executing the first load under the first configuration; the second configuration is different from the first configuration; the first performance prediction result corresponds to one or more performance indicators of the object to be measured.
[0007] In this solution, since the first load execution feature includes the running information (i.e., stage running information) of one or more stages during the execution of the first load by the object under test in the first configuration, which reflects the influence of the first load on each stage and can also reflect the differences and changes between different stages. Therefore, compared with only using the total amount of data processed by the first load, using the first load execution feature can more accurately depict the influence of the first load on the execution process of the object under test, thus enabling a higher accuracy of performance prediction based on the first load execution feature.
[0008] Based on the first aspect, in a possible implementation, the first load execution feature and the second configuration can be input into the performance model of the object under test, and then the performance model outputs the first performance result. That is to say, by using AI technology to model the performance of the object under test and then performing performance prediction based on the performance model, this helps to improve the tuning efficiency and effect.
[0009] Based on the first aspect, in a possible implementation, the second configuration is generated by a search and recommendation algorithm. Regarding the type of the search and recommendation algorithm, the embodiments of this application do not make specific limitations. For example, algorithms such as Bayesian Optimization (BO) and Random Search (RS) can be used. Based on the above prediction method and combined with the search and recommendation algorithm, the configuration tuning of the object under test can be realized.
[0010] Based on the first aspect, in a possible implementation, the search and recommendation algorithm can be iteratively run. When the search termination condition is met, the second configuration is recommended to the user or the configuration of the object under test is adjusted to the second configuration. Regarding the setting of the search termination condition, the embodiments of this application do not make specific limitations. For example, the search termination condition can be set to the current tuning round reaching the specified round, or the first performance prediction result being greater than or equal to the performance threshold (which can be set), etc.
[0011] Based on the first aspect, in a possible implementation, in addition to obtaining the above first load execution feature and the second configuration, the second load execution feature and the first performance result of the object under test can also be obtained. Then, based on the first load execution feature, the second load execution feature, the first configuration, the second configuration, and the first performance result, the performance of the object under test when executing the first load in the second configuration is predicted to obtain the first performance prediction result. Among them, the second load execution feature includes the stage running information during the execution of the second load by the object under test in the first configuration. The total amount of data processed by the second load is different from the total amount of data processed by the first load. The first performance result is the performance result when the object under test executes the second load in the first configuration, and the first performance result corresponds to one or more performance indicators of the object under test.
[0012] In this solution, similar to the first load execution feature, since the second load execution feature includes the stage operation information during the execution of the second load by the object under test in the first configuration, which reflects the influence of the second load on each stage and can also reflect the differences and changes between different stages, the second load execution feature can accurately depict the influence of the second load on the execution process of the object under test. Performance prediction based on the first load execution feature and the second load execution feature helps improve the prediction accuracy.
[0013] Based on the first aspect, in a possible implementation, the first load execution feature, the second load execution feature, the first configuration, the second configuration, and the first performance result can be input into the performance model of the object under test, and the performance model outputs the first performance prediction result, where the first performance prediction result is determined by the performance model calculating the gap between the first load execution feature and the second load execution feature. That is to say, the performance of the object under test can be modeled, and then performance prediction can be carried out based on the performance model.
[0014] It should be understood that the first load execution feature and the second load execution feature reflect the differences between the stage operation information when the object under test executes loads with different data volumes in the same configuration (i.e., the first configuration). Performance prediction based on the first load execution feature and the second load execution feature can, on the one hand, increase the feature dimension input into the performance model, and on the other hand, through comparing the first load execution feature and the second load execution feature, multi-dimensional feature comparison can be achieved, so that the performance model can learn the differences in the influence of loads with different data volumes on the execution process of the object under test, thereby improving the performance prediction accuracy.
[0015] Based on the first aspect, in a possible implementation, the total data volume processed by the second load is less than the total data volume processed by the first load.
[0016] It should be understood that when the total data volume processed by the second load is less than the total data volume of the first load, it is equivalent to using the performance result when the object under test executes a load with a smaller data volume (i.e., the second load) to predict the performance when the object under test executes a load with a larger data volume (i.e., the first load). Compared with the time consumed when the object under test executes a load with a larger data volume, the time consumed when the object under test executes a load with a smaller data volume is usually shorter. Therefore, the time required to obtain the first performance result when the object under test executes the second load in the first configuration is less, which helps shorten the overall time of performance prediction and can thus shorten the time-consuming of configuration parameter tuning.
[0017] Based on the first aspect, in a possible implementation, before using the performance model to output the first performance result, multiple load execution characteristics of the object under test are obtained, and multiple performance results of the object under test are obtained. Then, the performance model is trained based on the multiple load execution characteristics and the multiple performance results. Among them, the multiple load execution characteristics correspond to the multiple loads one by one, the total data volumes processed by the multiple loads are different from each other, and each load execution characteristic includes the stage operation information of the object under test during the execution of the corresponding load under the first configuration; each performance result corresponds to one of the multiple loads, each performance result corresponds to one configuration of the object under test, and each performance result is the performance result of the object under test when executing the corresponding load under the corresponding configuration.
[0018] Based on the first aspect, in a possible implementation, the multiple performance results can be combined in pairs and the multiple load execution characteristics can be combined in pairs and input into the performance model for training. It should be understood that assuming there are N performance results, combining them in pairs can generate different combinations, thereby expanding the amount of training data and further improving the prediction accuracy of the performance model.
[0019] Based on the first aspect, in a possible implementation, the process of the object under test executing the first load under the first configuration includes multiple stages, and the stage operation information of the object under test during the process of executing the first load under the first configuration includes at least one of the following:
[0020] The data volume information of at least one of the multiple stages;
[0021] The resource usage information of at least one of the multiple stages;
[0022] The execution time of at least one of the multiple stages.
[0023] Based on the first aspect, in a possible implementation, the data volume information includes at least one of the stage result data volume, the read data volume, and the write data volume.
[0024] Based on the first aspect, in a possible implementation, the resource usage information includes at least one of the processor resource usage, the memory resource usage, and the disk resource usage.
[0025] Based on the first aspect, in a possible implementation, the object under test includes at least one of a database application, a big data processing application, a computing device, and a network device. That is to say, this solution can perform performance prediction for software or hardware.
[0026] Second aspect, the present application further provides a prediction device for load execution performance, including an acquisition module and a prediction module. The acquisition module is used to acquire the first load execution characteristics of the object under test, where the first load execution characteristics include the stage operation information during the process of the object under test executing the first load under the first configuration. The acquisition module is further used to acquire the second configuration of the object under test, where the second configuration is different from the first configuration. The prediction module is used to predict the performance of the object under test when executing the first load under the second configuration based on the first load execution characteristics and the second configuration, and obtain the first performance prediction result, where the first performance prediction result corresponds to one or more performance indicators of the object under test.
[0027] The above prediction device for load execution performance may further include more or fewer units / modules, which are not specifically limited herein. The prediction device for load execution performance in the second aspect is specifically used to execute the method in any implementation scheme in the first aspect, which can be referred to the previous introduction and will not be elaborated herein.
[0028] Third aspect, the present application further provides a computing device cluster, including at least one computing device, and each computing device includes a processor and a memory. The processor of the above at least one computing device is used to execute the instructions stored in the memory of the above at least one computing device, so that the computing device cluster executes the method in any implementation scheme in the first aspect.
[0029] Fourth aspect, the present application further provides a computer-readable storage medium, including computer program instructions. When the above computer program instructions are executed by a computing device cluster (including at least one computing device), the computing device cluster executes the method in any implementation scheme in the first aspect.
[0030] Fifth aspect, the present application further provides a computer program product containing instructions. When the above instructions are run by a computing device cluster (including at least one computing device), the computing device cluster is caused to execute the method in any implementation scheme in the first aspect. BRIEF DESCRIPTION OF THE DRAWINGS
[0031] In order to more clearly illustrate the technical solutions in the embodiments of the present application, the following briefly introduces the drawings required for description in the embodiments.
[0032] Figure 1 is a schematic flowchart of a method for predicting load execution performance provided by an embodiment of the present application;
[0033] Figure 2 is a schematic diagram of a configuration parameter tuning scenario provided by an embodiment of the present application;
[0034] Figure 3 is a schematic flowchart of another method for predicting load execution performance provided by an embodiment of the present application;
[0035] Figure 4 It is a schematic diagram of sampling a same data set to generate loads with multiple different data volumes provided by an embodiment of the present application;
[0036] Figure 5 It is a schematic diagram of another configuration parameter tuning scenario provided by an embodiment of the present application;
[0037] Figure 6 It is a schematic diagram of an application tuning process provided by an embodiment of the present application;
[0038] Figure 7 It is a schematic diagram of the structure of a prediction device for the load execution performance provided by an embodiment of the present application;
[0039] Figure 8 It is a schematic diagram of the structure of a computing device provided by an embodiment of the present application;
[0040] Figure 9 It is a schematic diagram of a computing device cluster provided by an embodiment of the present application;
[0041] Figure 10 It is a schematic diagram of two computing devices interacting through a network provided by an embodiment of the present application. Detailed implementation manners
[0042] Next, the technical solutions in the embodiments of the present application will be described with reference to the accompanying drawings in the embodiments of the present application. Obviously, the described embodiments are only a part of the embodiments of the present application, rather than all of the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without making creative efforts shall fall within the protection scope of the present application.
[0043] For applications such as databases, big data processing, and video live streaming, corresponding parameters need to be configured properly to work normally. Under different configurations, these applications often exhibit different load execution performances (i.e., the performance during the process of the application executing the load). To enable these applications to adapt to the user's usage scenarios and obtain better performance, a suitable configuration needs to be found for the application, and this process of finding a suitable configuration is called configuration parameter tuning. To achieve configuration parameter tuning, AI technology is usually used to model the performance of the application to obtain a performance model, and then the performance model is searched through a search and recommendation algorithm to find a suitable configuration.
[0044] The currently commonly used modeling scheme is as follows: Using different data scales (i.e., the total amount of data processed by the load), different configurations, and the performance of the application when executing the load under different configurations to train the AI model, obtaining the performance model of the application. Then, inputting a certain data scale and a certain configuration into the trained performance model, and the performance model outputs the performance prediction result of the application when executing the load of this data scale under this configuration. Since this performance model only uses the characteristics of one dimension of the data scale to describe the characteristics of the load, and the data scale cannot accurately depict the impact of the load on the entire execution process of the application, the prediction accuracy is low.
[0045] To improve the prediction accuracy, the present application provides a method for predicting the performance of load execution: obtaining the first load execution characteristics of the object to be measured, where the first load execution characteristics include the stage operation information during the process of the object to be measured executing the first load under the first configuration. Also obtaining the second configuration (different from the first configuration) of the object to be measured, and then predicting the performance of the object to be measured when executing the first load under the second configuration based on the first load execution characteristics and the second configuration. Since the first load execution characteristics include the operation information of one or more stages during the process of the object to be measured executing the first load under the first configuration (i.e., stage operation information), which reflects the impact of the first load on each stage, and can also reflect the differences and changes between different stages, the first load execution characteristics can accurately depict the impact of the first load on the execution process of the object to be measured, thereby making the accuracy of the performance prediction based on the first load execution characteristics relatively high. The following specifically introduces this method for predicting the performance of load execution.
[0046] Please refer to Figure 1 , Figure 1 which is a schematic flow chart of a method for predicting the performance of load execution provided by an embodiment of the present application, including the following steps S101 to step S103.
[0047] S101. Obtain the first load execution characteristics of the object to be measured, where the first load execution characteristics include the stage operation information during the process of the object to be measured executing the first load under the first configuration.
[0048] It should be understood that the object to be measured refers to the object for which performance prediction is required. Optionally, the object to be measured can be software (such as application software in the fields of databases, big data, or software systems such as video live streaming and content delivery networks), and the method of Figure 1 can predict the performance of the software when executing the first load under the first configuration; the object to be measured can also be hardware (such as network devices, computing devices, etc.), and the method of Figure 1 can predict the performance of the hardware when executing the first load under the first configuration.
[0049] Suppose the object under test has K configuration parameters, where K is a positive integer. The first configuration includes a value for each of the K configuration parameters. The configuration parameters can be hardware configuration parameters or software configuration parameters. The value of K is related to the design of the object under test. For example, for a certain database application (an object under test), in order to adapt to different usage scenarios of different users, the R & D designers of the database application can set multiple configuration parameters. Different users can adjust the values of the configuration parameters to adapt to their actual usage scenarios.
[0050] Optionally, the first configuration can be specified by the user of the object under test, or it can be the default configuration / baseline configuration of the object under test, or it can be a configuration obtained by other means. The embodiments of the present application do not make specific limitations. The first configuration can be within the value range of the configuration parameters of the object under test, which means that the value of each configuration parameter in the first configuration is within the value range of a corresponding configuration parameter. The value range of each configuration parameter can be discrete or continuous. The embodiments of the present application do not make specific limitations.
[0051] For example, suppose the object under test is an application software, and this application software has 3 configuration parameters, denoted here as configuration parameters A, B, and C. The first configuration includes the first value of configuration parameter A, the second value of configuration parameter B, and the third value of configuration parameter C. Among them, the first value is within the value range of configuration parameter A, the second value is within the value range of configuration parameter B, and the third value is within the value range of configuration parameter C.
[0052] The first workload refers to a certain workload of the object under test, and the first workload needs to process a certain amount of data. For the convenience of description here, the total amount of data processed by the first workload is denoted as the first data amount. It should be understood that the process of the object under test executing a workload can be divided into one or more stages, and the number of stages is related to the tasks included in the workload. A workload can include one or more tasks. Different tasks are usually divided into different stages for execution, and each stage can execute one or more tasks.
[0053] For example, assume that the object under test is a database application of an e-commerce website. The first workload of this database application includes the following 4 Structured Query Language (SQL) query tasks: user login query (verifying whether the username and password of the user are correct), product query (querying product information that matches the user's search criteria), shopping cart query (querying product information in the user's shopping cart), and order query (querying the user's order information). The object under test divides the above 4 SQL tasks into different stages for execution according to the execution plan: the task of user login query is executed in stage 1, the task of product query is executed in stage 2, the task of shopping cart query is executed in stage 3, and the task of order query is executed in stage 4. The execution sequence relationship among the above 4 stages is: stage 1 → stage 2 → stage 3 → stage 4. That is to say, when the object under test executes this workload, it first executes the user login query, then executes the product query, then executes the shopping cart query, and finally executes the order query.
[0054] Optionally, the process of the object under test executing the first workload under the first configuration includes N stages, where N is a positive integer greater than 1. The stage operation information during the process of the object under test executing the first workload under the first configuration includes at least one of the following:
[0055] (1) Data volume information of at least one of the N stages;
[0056] (2) Resource usage information of at least one of the N stages;
[0057] (3) Execution time of at least one of the N stages. Optionally, the data volume information includes at least one of the stage result data volume, read data volume, and write data volume. Different stages may have different data volume information, and the data volume information of a stage is related to the specific task executed in that stage. Among them, the stage result data volume of a stage refers to the data volume of the results generated in that stage. The read data volume of a stage refers to the data volume read from storage devices such as disks / memory by that stage. The read data volume includes local read data volume and / or off-site read data volume. The local read data volume refers to the data volume read from local storage (such as cache, memory, disk), while the off-site read data volume refers to the data volume read from remote storage (such as network, other nodes). The write data volume of a stage refers to the data volume written to disks / networks, etc., by that stage. It should be understood that when the stage operation information includes data volume information, the stage operation information can reflect the data volume characteristics of each stage during the process of the object under test executing the first workload under the first configuration, and can also reflect the differences and changes in data volume among different stages, thereby accurately depicting the impact of the first workload on the entire workload execution process of the object under test, which helps to improve the accuracy of performance prediction.
[0058] Continuing with the previous example of database applications, the first workload of the database application includes 4 SQL query tasks: user login query, product query, shopping cart query, and order query. These 4 SQL query tasks are executed in different stages. Since different query tasks may involve different tables / datasets or have different query conditions, there are differences in the data volume information at different stages. For example, the above-mentioned user login query involves the user information table, the product query involves the product information table, the shopping cart query involves the shopping cart information table, and the order query involves the order information table. The data volumes of these tables are different, resulting in differences in the data volume information at the 4 stages.
[0059] Another example, assume that the process of the DUT executing the first workload under the first configuration includes the following two stages: the first stage executes a data filtering task, and the second stage executes a data summation task. Specifically, in the first stage, the DUT filters out 100 data from 10,000 data according to the filtering conditions. The data volume of these 100 data is the stage result data of the first stage, and the data volume of the 10,000 data is the total data volume processed in the first stage. Then, in the second stage, the DUT sums these 100 data, and the data volume corresponding to the summation result is the stage result data volume of the second stage, and the data volume of these 100 data is the total data volume processed in the second stage.
[0060] Optionally, the resource usage information includes at least one of the processor resource usage, memory resource usage, and disk resource usage. The processor resource usage includes one or more of the central processing unit (CPU) resources, graphics processing unit (GPU) resources, neural network processing unit (NPU) resources, and data processing unit (DPU) resources. It should be understood that in the case where the stage running information includes the resource usage information, the stage running information can reflect the resource usage characteristics of each stage in the process of the DUT executing the first workload under the first configuration, and can also reflect the differences and changes in resource usage at different stages (reflecting the stage where the performance bottleneck lies), thereby accurately depicting the impact of the first workload on the entire workload execution process of the DUT, which helps to improve the performance prediction accuracy.
[0061] Regarding the acquisition method of the first load execution characteristics, the embodiments of the present application do not make specific limitations. For example, in a test environment, let the object under test execute the first load under the first configuration, and then analyze the execution results to obtain data volume information, resource usage information, execution time, etc. at different stages, so as to obtain the first load execution characteristics of the object under test. The execution results can be event logs or other forms. The execution information of each stage can be extracted from the event logs, and then the first load execution characteristics of the object under test can be generated. For example, Spark is a big data batch processing application. The event log inside Spark is called Spark Event log. Spark Event log records the detailed information (including data volume information) of different stages and different tasks during the Spark execution of the load. By analyzing Spark Event log, the stage operation information of each stage when the Spark executes loads of various data volumes under the first configuration can be obtained, so as to obtain the load execution characteristics corresponding to various data volumes. Another example is that if the object under test has historical execution results of executing the first load under the first configuration (historical execution results in the test environment / non-test environment), then by analyzing the historical execution results, the first load execution characteristics of the object under test can be obtained.
[0062] S102. Obtain the second configuration of the object under test, where the second configuration is different from the first configuration.
[0063] It is assumed that the object under test has K configuration parameters, where K is a positive integer. The second configuration includes a value of each of these K configuration parameters. The second configuration can be within the value range of the configuration parameters of the object under test, which means that the value of each configuration parameter in the second configuration is within the value range of a corresponding configuration parameter. The value range of each configuration parameter can be discrete or continuous, and the embodiments of the present application do not make specific limitations. For example, it is assumed that the object under test is an application software, and the application software has 3 configuration parameters, denoted here as configuration parameters A, B, and C. The second configuration includes the first value of configuration parameter A, the second value of configuration parameter B, and the third value of configuration parameter C, where the first value is within the value range of configuration parameter A, the second value is within the value range of configuration parameter B, and the third value is within the value range of configuration parameter C.
[0064] It should be understood that the second configuration being different from the first configuration means that there is at least one configuration parameter value difference between the second configuration and the first configuration, and there can be one or more configuration parameter value differences between the second configuration and the first configuration. Continuing with the previous example, it is assumed that the value of configuration parameter A is different between the first configuration and the second configuration, but the value of configuration parameter B is the same between the first configuration and the second configuration, and the value of configuration parameter C is the same between the first configuration and the second configuration. At this time, the first configuration and the second configuration are considered to be different.
[0065] Regarding the execution order of steps S101 and S102, the embodiments of the present application do not make specific limitations. For example, step S101 can be executed first and then step S102, or step S102 can be executed first and then step S101, or steps S101 and S102 can be executed in parallel.
[0066] S103. Based on the first load execution characteristics and the second configuration, predict the performance of the object under test when executing the first load in the second configuration, and obtain a first performance prediction result, where the first performance prediction result corresponds to P performance indicators of the object under test.
[0067] The above-mentioned P is a positive integer, that is, the first performance prediction result corresponds to one or more of the performance indicators of the object under test. Optionally, the above-mentioned P performance indicators can be part or all of the performance indicators of the object under test, depending on the actual prediction requirements. For example, in the case of predicting all performance indicators, the first performance prediction result can include the predicted values of all performance indicators; in the case of only predicting some performance indicators, the first performance prediction result only includes the predicted values of the part of the performance indicators that need to be predicted. For example, the performance indicators of an application software include response time, throughput, etc.
[0068] Optionally, after step S103, the performance of the object under test when executing the first load in the second configuration can also be actually tested to obtain a performance test result. The performance test result can also be compared with the first performance prediction result obtained by prediction in step S103 to determine the prediction accuracy.
[0069] Optionally, the first load execution characteristics and the second configuration can be input into a performance model, and the performance prediction model outputs the first performance prediction result. Regarding the specific type of the performance model, the embodiments of the present application do not make specific limitations. Regarding the training method of the performance model, multiple load execution characteristics of the object under test can be obtained first, and multiple performance results of the object under test can be obtained, and then the performance model can be trained based on the above-mentioned multiple load execution characteristics and multiple performance results. Among them, the above-mentioned multiple load execution characteristics correspond to multiple loads one by one, the total data volumes processed by the above-mentioned multiple loads are different from each other, and each load execution characteristic includes the stage operation information during the process of the object under test executing the corresponding load in the first configuration; each performance result corresponds to one of the above-mentioned multiple loads, and one load can correspond to one or more performance results, each performance result corresponds to a configuration of the object under test, and the configurations corresponding to different performance results can be the same or different (the configuration can be randomly generated or selected by the user, etc., and the embodiments of the present application do not specifically limit), and each performance result is the performance result of the object under test when executing the load corresponding to the performance result in the configuration corresponding to the performance result (corresponding to the above-mentioned P performance indicators of the object under test).
[0070] The following is a specific example of the training method of this performance model.
[0071] First, obtain the second load execution characteristics of the object under test. The second load execution characteristics include the stage operation information during the execution of the second load by the object under test under the first configuration. The total amount of data processed by the second load is the second data volume. Also, obtain the actual performance result of the object under test when executing the second load under the third configuration. The third configuration is within the range of the configuration parameter values of the object under test, and the third configuration is different from the first configuration. This actual performance result is a real performance result (not a predicted one), and it can be a historical performance result or a performance test result obtained through testing.
[0072] Then, input the above second load execution characteristics and the third configuration into the performance model to be trained. The performance model to be trained outputs a performance prediction solution result, and then compare the gap between this performance prediction result and the above actual performance result, and update the parameters of the performance model according to this gap.
[0073] It is also possible to obtain the third load execution characteristics of the object under test. The third load execution characteristics include the stage operation information during the execution of the third load by the object under test under the first configuration. The total amount of data processed by the third load is the third data volume. Also, obtain the actual performance result of the object under test when executing the third load under the fourth configuration. The fourth configuration is within the range of the configuration parameter values of the object under test, and the fourth configuration is different from the first configuration. This actual performance result is a real performance result (not a predicted one), and it can be a historical performance result or a performance test result obtained through testing.
[0074] It should be noted that when the amount of data processed by the second load is the same as that processed by the third load, the above second load execution characteristics and third load execution characteristics are substantially the same. At this time, the third configuration is different from the fourth configuration; when the amount of data processed by the second load is different from that processed by the third load, the above second load execution characteristics and third load execution characteristics are different. At this time, the third configuration and the fourth configuration can be the same or different.
[0075] Then, input the above third load execution characteristics and the fourth configuration into the performance model to be trained. The performance model to be trained outputs a performance prediction result, and then compare the gap between this performance prediction result and the above actual performance result, and continue to update the parameters of the performance model according to this gap. Similarly, it is also possible to obtain other load execution characteristics and actual performance results of the object under test for training the performance model, which will not be elaborated here. Finally, a trained performance model can be obtained, and then step S103 is executed based on this performance model.
[0076] Optionally, the second configuration is generated by a search recommendation algorithm. That is to say,Figure 1 The method can be used in the scenario of tuning configuration parameters based on a search and recommendation algorithm, enabling the search and recommendation algorithm to search within the range of configuration parameter values of the object under test, generating one or more configurations (including the second configuration), and then predicting the performance of the object under test when executing the first load in the manner of step S103 for each configuration. Subsequently, one or more configurations with the optimal or relatively optimal performance prediction results can be used as the recommended configurations for the object under test when executing the first load (corresponding to the first data volume). Regarding the type of the search and recommendation algorithm, the embodiments of the present application do not make specific limitations. For example, algorithms such as Bayesian Optimization (BO) and Random Search (RS) can be adopted.
[0077] Regarding the method for judging the pros and cons of the performance prediction results corresponding to different configurations, the embodiments of the present application do not make specific limitations either. For example, assume that the object under test includes a performance metric such as execution time, and predict according to the method Figure 1 to obtain the predicted execution time of the object under test when executing the first load under configuration A as T1, and obtain the predicted execution time of the object under test when executing the first load under configuration B as T2. If T1 is greater than T2, it is considered that the performance prediction result of configuration A is better than that of configuration B. Another example, assume that the object under test includes multiple metrics such as execution time, CPU utilization rate, and memory utilization rate, and predict according to the method Figure 1 to obtain the predicted execution time, predicted CPU utilization rate, and predicted memory utilization rate of the object under test when executing the first load under configuration C, calculate the score corresponding to configuration C based on the above information (such as through weighted summation, multiplication and division operations, etc., which are not specifically limited in the embodiments of the present application). Similarly, obtain the predicted execution time, predicted CPU utilization rate, and predicted memory utilization rate of the object under test when executing the first load under configuration D, calculate the score corresponding to configuration D, and then compare the scores of different configurations, and consider the configuration with a higher score as a better configuration.
[0078] Optionally, the above search and recommendation algorithm can be iteratively run, and when the search termination condition is met, recommend the second configuration to the user or adjust the configuration of the object under test to the second configuration. Regarding the search termination condition, the embodiments of the present application do not make specific limitations. For example, the search termination condition can be set as the first performance prediction result being greater than or equal to a performance threshold (which can be set), or set as the current configuration tuning round reaching the total round (which can be specified by the user or adopt the default total round), or set as the actual performance result of the object under test when executing the first load under the second configuration being greater than or equal to the performance threshold, and so on.
[0079] Regarding the method of recommending the second configuration to the user, it can be to display the second configuration to the user on the interaction interface, or to recommend the second configuration to the user by other means. The embodiments of the present application do not make specific limitations. In addition to displaying the second configuration to the user on the interaction interface, the performance test results (actual performance results) and / or the first performance prediction results corresponding to the second configuration can also be displayed.
[0080] The following is an example to illustrate how to use Figure 1 the performance prediction method in the configuration parameter tuning scenario.
[0081] Please refer to Figure 2 , Figure 2 which is a schematic diagram of a configuration parameter tuning scenario provided by the embodiments of the present application. First, a performance model of the object under test is obtained through training. The training method can be referred to the previous introduction and will not be elaborated here. Then, based on this performance model and the search and recommendation algorithm, configuration search is performed to obtain the recommended configuration for the first load (corresponding to the first data volume). Specifically, in a round of configuration tuning process, based on the search and recommendation algorithm, configuration search is performed within the value range of the configuration parameters of the object under test, generating one or more configurations to be tested. For each configuration to be tested, the configuration to be tested and the execution characteristics of the first load are input into the performance model, and the performance model outputs the corresponding performance prediction results. Each configuration to be tested corresponds to a performance prediction result.
[0082] Optionally, the configuration to be tested corresponding to the optimal one or more performance prediction results can be used as the recommended configuration to recommend to the user. Or, the configuration to be tested corresponding to the optimal one or more performance prediction results can be actually tested, and the actual performance results of the object under test when executing the first load under each configuration to be tested are obtained through the test. Each configuration to be tested corresponds to an actual performance result, and then the configuration to be tested corresponding to the optimal one or more actual performance results is used as the recommended configuration to recommend to the user. Or, it can also not be recommended to the user, but automatically update the configuration of the object under test with the recommended configuration.
[0083] Optionally, the configuration corresponding to the optimal actual performance result can be used as the recommended configuration in this round of tuning, and then new load execution characteristics are obtained. The new load execution characteristics include the stage operation information of the object under test during the execution of the first load under this recommended configuration. Based on the new load execution characteristics, the next round of configuration tuning is performed, and the search recommendation algorithm continues to perform configuration search within the value range of the configuration parameters of the object under test, generating one or more configurations to be tested. For each configuration to be tested, the configuration to be tested and the new load execution characteristics are input into the performance model, and the performance model outputs the corresponding performance prediction results. Each configuration to be tested corresponds to a performance prediction result. Similarly, multiple rounds of configuration tuning can be performed, and the total number of rounds of configuration tuning can be specified by the user or the default total number of rounds can be used. The configuration corresponding to the optimal performance prediction result obtained in the last configuration tuning can be used as the final recommended configuration to recommend to the user. Alternatively, it can also not be recommended to the user, but the configuration of the object under test is automatically updated with the recommended configuration.
[0084] It should be understood that in addition to the configuration parameter tuning scenario, the performance prediction method described above can also be used in other scenarios that require performance prediction. Figure 1
[0085] In summary, in Figure 1 the load execution performance prediction method provided in the embodiment, the stage operation information of the object under test during the execution of the first load under the first configuration is used as the first load execution characteristic, and then based on the first load execution characteristic, the performance of the object under test when executing the first load under the second configuration is predicted. Since the first load execution characteristic includes the operation information of one or more stages (i.e., stage operation information) of the object under test during the execution of the first load under the first configuration, which reflects the influence of the first load on each stage and can also reflect the differences and changes between different stages, the first load execution characteristic can accurately depict the influence of the first load on the execution process of the object under test, thus making the accuracy of the performance prediction based on the first load execution characteristic relatively high.
[0086] Please refer to Figure 3 Figure 3 which is a schematic flowchart of another load execution performance prediction method provided in the embodiment of the present application, including the following steps S301 to S305.
[0087] S301. Obtain the first load execution characteristic of the object under test, where the first load execution characteristic includes the stage operation information of the object under test during the execution of the first load under the first configuration.
[0088] For the specific content of step S301, please refer to the introduction of step S101 and will not be elaborated here.
[0089] S302. Obtain the second configuration of the object under test, where the second configuration is different from the first configuration.
[0090] For the specific content of step S302, please refer to the introduction of step S102 and will not be elaborated here.
[0091] S303. Obtain the second load execution characteristics of the object under test, where the second load execution characteristics include the stage operation information during the process of the object under test executing the second load under the first configuration, and the total data volume processed by the second load is different from the total data volume processed by the first load.
[0092] For ease of description, the total data volume processed by the first load is the first data volume, and the total data volume processed by the second load is denoted as the second data volume. Optionally, the total data volume processed by the second load being different from the total data volume processed by the first load may be that the second data volume is less than the first data volume or the second data volume is greater than the first data volume.
[0093] Optionally, the process of the object under test executing the first load under the second configuration includes X stages, where X is a positive integer greater than 1, and the stage operation information during the process of the object under test executing the first load under the second configuration includes at least one of the following:
[0094] (1) The data volume information of at least one of the X stages;
[0095] (2) The resource usage information of at least one of the X stages;
[0096] (3) The execution time of at least one of the X stages.
[0097] Regarding the data volume information and the resource usage information, please refer to the relevant descriptions in step S101 and will not be elaborated here.
[0098] Optionally, the first load execution characteristics and the second load execution characteristics at least include the same kind of information among the data volume information, the resource usage information, and the execution time, and there can be the following three cases.
[0099] Case 1: The first load execution characteristics and the second load execution characteristics only contain the same kind of information among the data volume information, the resource usage information, and the execution time. For example, both the first load execution characteristics and the second load execution characteristics contain the data volume information, or both the first load execution characteristics and the second load execution characteristics contain the resource usage information, or both the first load execution characteristics and the second load execution characteristics contain the execution time.
[0100] Case 2: The first load execution feature and the second load execution feature include the same two of the data volume information, resource usage information, and execution time. For example, both the first load execution feature and the second load execution feature include the data volume information and the resource usage information, or both the first load execution feature and the second load execution feature include the data volume information and the execution time, or both the first load execution feature and the second load execution feature include the resource usage information and the execution time.
[0101] Case 3: The first load execution feature and the second load execution feature both include the data volume information, the resource usage information, and the execution time.
[0102] S304. Obtain the first performance result of the object under test, where the first performance result is the performance result of the object under test when executing the first load under the second configuration, and the first performance result corresponds to P performance indicators of the object under test.
[0103] The above P is a positive integer, that is, the first performance result corresponds to one or more of the performance indicators of the object under test. Optionally, the above P performance indicators can be part or all of the performance indicators of the object under test, depending on the actual prediction requirements.
[0104] It should be noted that regarding the execution order among the above steps S301, S302, S303, and S304, the embodiments of the present application do not make specific limitations, as long as it is ensured that these 4 steps are executed before S305. For example, step S101 and step S302 can be executed first, and then step S302 and S304; or step S304 can be executed first, then step S301 and S303, and then step S302; or the above 4 steps can be executed in parallel, and so on.
[0105] S305. Predict the performance of the object under test when executing the first load under the second configuration based on the first load execution feature, the second load execution feature, the first configuration, the second configuration, and the first performance result, and obtain the first performance prediction result, where the first performance prediction result corresponds to the above P performance indicators of the object under test.
[0106] As can be seen from the foregoing, the first load execution feature includes the phase operation information of the object under test when executing the first load under the first configuration, the second load execution feature includes the phase operation information of the object under test when executing the second load under the first configuration, and the total amount of data processed by the first load is different from the total amount of data processed by the second load. Therefore, the first load execution feature and the second load execution feature reflect the phase operation information of the object under test when executing loads with different data volumes under the same configuration (i.e., the first configuration). Performing performance prediction based on the first load execution feature and the second load execution feature helps improve the prediction accuracy. It should be understood that step S305 uses the first performance result of the object under test when executing the second load to predict the performance of the object under test when executing the first load. From the introduction in step S303, the second data volume processed by the second load can be greater than / less than the first data volume processed by the first load. When the second data volume is less than the first data volume, it is equivalent to using the performance result of the object under test when executing a load with a smaller data volume (i.e., the second load) to predict the performance of the object under test when executing a load with a larger data volume (i.e., the first load). Compared with the time consumed by the object under test when executing a load with a larger data volume, the time consumed by the object under test when executing a load with a smaller data volume is usually shorter. Therefore, the time required to obtain the first performance result of the object under test when executing the second load is relatively less, which helps shorten the overall time of performance prediction and further helps shorten the time consumed for configuration parameter tuning (introduced later).
[0107] Optionally, the first load execution feature, the second load execution feature, the first configuration, the second configuration, and the first performance result can be input into the performance model of the object under test, and the performance model outputs the first performance prediction result. The performance model here can be a contrastive learning model, and the first performance result is determined by the performance model by calculating the gap between the first load execution feature and the second load execution feature. Specifically, the fitting formula of the performance model can refer to Equation (1):
[0108]
[0109] where config src and config target respectively represent two different configurations of the object under test, denoted as the source configuration and the target configuration in sequence, and both are within the value range of the configuration parameters of the object under test. workload_fingerprint src and workload_fingerprint targetrespectively represent the source load execution feature and the target load execution feature. The source load execution feature includes the stage operation information during the process of the object under test executing a certain amount of data (denoted as the source data amount) under the first configuration, and the target load execution feature includes the stage operation information during the process of the object under test executing a certain amount of data (denoted as the target data amount) under the first configuration, where the source data amount is different from the target data amount. The load of the source data amount means that the total amount of data processed by this load is the source data amount, and this load can be called the source load. The load of the target data amount means that the total amount of data processed by this load is the target data amount, and this load can be called the target load. y src is the performance result when the object under test executes the load of the source data amount under the source configuration, and this performance result corresponds to P performance indicators of the object under test, where P is a positive integer. y target is the performance prediction result output by the performance model when the object under test executes the load of the target data amount under the target configuration. It should be noted that the order of each parameter in formula (1) is only for example and does not constitute a specific limitation.
[0110] It should be understood that inputting the first load execution feature, the second load execution feature, the first configuration, the second configuration, and the first performance result into the above performance model is equivalent to taking the first load execution feature as the target load execution feature, the second load execution feature as the source load execution feature, the first configuration as the source configuration, the second configuration as the target configuration, and the first performance result as the performance result when the object under test executes the load of the source data amount (here is the second load) under the source configuration. Then the performance model outputs the performance prediction result when the object under test executes the load of the target data amount (here is the first load) under the target configuration, which is the first performance prediction result.
[0111] Regarding the training method of the performance model, it can be to first obtain multiple load execution features of the object under test, and obtain multiple performance results of the object under test, and then train the performance model based on the above multiple load execution features and multiple performance results. Among them, the above multiple load execution features correspond to multiple loads one by one, the total amounts of data processed by the above multiple loads are different from each other, and each load execution feature includes the stage operation information during the process of the object under test executing the corresponding load under the first configuration; each performance result corresponds to one of the above multiple loads, and one load can correspond to one or more performance results, each performance result corresponds to a configuration of the object under test, and the configurations corresponding to different performance results can be the same or different (the configuration can be randomly generated or selected by the user, etc., and the embodiments of the present application do not specifically limit), and each performance result is the performance result when the object under test executes the load corresponding to this performance result under the configuration corresponding to this performance result (corresponding to the above P performance indicators of the object under test).
[0112] Optionally, multiple of the above performance results can be combined pairwise and multiple of the above load execution characteristics can be combined pairwise and input into the performance model for training. It should be understood that assuming there are N performance results, combining them pairwise can generate different combinations, thus expanding the amount of training data and further enabling the improvement of the prediction accuracy of the performance model. The following is a specific example of the training method of the performance model.
[0113] First, through pairwise combination, obtain a third load execution characteristic and a fourth load execution characteristic from multiple load execution characteristics of the object under test. The third load execution characteristic and the fourth load execution characteristic can be any two different load execution characteristics among the multiple load execution characteristics, and the third load execution characteristic and the fourth load execution characteristic form a combination. Among them, the third load execution characteristic includes the stage operation information during the execution of the third load by the object under test under the first configuration, and the fourth load execution characteristic includes the stage operation information during the execution of the fourth load by the object under test under the first configuration. The total number of third load processes is different from the total amount of data of the fourth load process. Correspondingly, obtain a second performance result and a third performance result from multiple performance results of the object under test. The second performance result and the third performance result form a combination. Among them, the second performance result is the performance result when the object under test executes the third load under the third configuration, and the third performance result is the performance result when the object under test executes the fourth load under the fourth configuration. Both the third configuration and the fourth configuration are within the value range of the configuration parameters of the object under test. Both the second performance result and the third performance result correspond to the above P performance indicators. It should be noted that regarding the order of obtaining the third load execution characteristic, the fourth load execution characteristic, the second performance result, and the third performance result, the embodiments of the present application do not make specific limitations and can be executed sequentially or in parallel.
[0114] Then, input the third load execution characteristic, the fourth load execution characteristic, the third configuration, the fourth configuration, and the third performance result into the performance model to be trained, and the performance model outputs a second performance prediction result.
[0115] Next, update the parameters of the performance model according to the gap between the second performance prediction result and the second performance result.
[0116] Similarly, multiple performance results can also be combined pairwise and multiple load execution characteristics can be combined pairwise in a similar manner, and then input into the performance model of the object under test for training, which will not be elaborated here. Finally, a trained performance model can be obtained, and then step S305 is executed based on this performance model.
[0117] Optionally, the data processed by the third load and the data processed by the fourth load are sampled from the same dataset at different sampling ratios. That is to say, the data processed by different loads for training the performance model is sampled from the same dataset at different sampling ratios.
[0118] For example, Figure 4 FIG. is a schematic diagram of sampling a same dataset to generate multiple loads with different data volumes according to an embodiment of the present application. For a certain dataset, the data volumes processed by different loads of the object under test are sampled from the dataset at different sampling ratios. Here, it is assumed that the data volume of the dataset is 3TB (the embodiment of the present application does not limit the data volume of the dataset). Sample data from the dataset at a sampling ratio of 5% to obtain the data volume to be processed by Load 1, and then let the object under test execute Load 1 to obtain the corresponding performance result. Similarly, sample data from the dataset at a sampling ratio of 10% to obtain the data volume to be processed by Load 2, and then let the object under test execute Load 2 to obtain the corresponding performance result. Sample data from the dataset at a sampling ratio of 20% to obtain the data volume to be processed by Load 3, and then let the object under test execute Load 2 to obtain the corresponding performance result... Sample data from the dataset at a sampling ratio of Y% to obtain the data volume to be processed by Load M, and then let the object under test execute Load M, where M is a positive integer greater than 1 and can be specified by the user or take a default value.
[0119] It should be noted that the embodiment of the present application does not make specific limitations on the selection of the sampling ratio. For example, M different sampling ratios can be randomly selected between 0 and 100% (i.e., full volume) to sample the same dataset, so as to obtain M loads with different data volumes. For another example, different sampling ratios can be selected according to a certain rule, such as selecting sampling ratios according to the rule of 10%, 20%, 30%... 100%, or randomly / at a certain interval within a specified range (such as specified within 20% to 80%). Of course, other rules can also be used to select sampling ratios, which will not be introduced in detail here.
[0120] Optionally, assume that in a subsequent configuration parameter tuning scenario, it is necessary to obtain the recommended configuration when the object under test executes a load with a large data volume. Before that, the performance results when the object under test executes a load with a small data volume can be used for model training. Since the time taken for the object under test to execute a load with a large data volume is usually longer than the time taken for the object under test to execute a load with a small data volume, the speed of obtaining the performance results when the object under test executes a load with a small data volume will be faster, which helps to improve the model building speed and also helps to shorten the overall time for configuring parameter tuning.
[0121] The following uses an example to illustrate how to use the Figure 3 performance prediction method in the scenario of configuration parameter tuning.
[0122] Please refer to Figure 5 , Figure 5 which is a schematic diagram of another configuration parameter tuning scenario provided by an embodiment of the present application. First, a performance model of the object under test is obtained through training. The training method is as described above and will not be elaborated here. Then, based on this performance model and a search recommendation algorithm, a configuration search is performed to obtain a recommended configuration corresponding to the load of the target data volume. Specifically, in a round of configuration tuning, a configuration search is performed within the range of the configuration parameter values of the object under test based on the search recommendation algorithm, generating one or more configurations to be tested. For each configuration to be tested, this configuration to be tested is used as the target configuration, and the source load execution characteristics, target load execution characteristics (the source load execution characteristics and target load execution characteristics are used as comparison characteristics, and the gap between them can be calculated), source configuration, target configuration, and the performance result when the object under test executes the load of the source data volume under the source configuration (please refer to the introduction of Formula 1) are input into the performance model together. The performance model outputs the corresponding performance prediction result, and each configuration to be tested corresponds to a performance prediction result.
[0123] Optionally, one or more configurations to be tested corresponding to the optimal performance prediction results can be used as the recommended configuration to recommend to the user. Or, one or more configurations to be tested corresponding to the optimal performance prediction results can be actually tested. Through the test, the actual performance results when the object to be tested executes the load of the target data volume under each configuration to be tested are obtained. Each configuration to be tested corresponds to an actual performance result. Then, one or more configurations to be tested corresponding to the optimal actual performance results are used as the recommended configuration to recommend to the user. Or, it can also not be recommended to the user, but instead automatically update the configuration of the object under test with the recommended configuration.
[0124] Optionally, the configuration corresponding to the optimal actual performance result can be used as the recommended configuration in this round of tuning. Then, update the source load execution characteristics and the target load execution characteristics. The updated source load execution characteristics include the stage operation information during the execution of the source load by the object under test with this recommended configuration. The updated target load execution characteristics include the stage operation information during the execution of the load with the target data volume by the object under test with this recommended configuration. Moreover, using the recommended configuration of this round as the source configuration, obtain the performance result when the object under test executes the load with the source data volume under this source configuration. Subsequently, based on the updated source load execution characteristics, the updated target load execution characteristics, and the performance result when the object under test executes the load with the source data volume under the recommended configuration of this round, perform the next round of configuration tuning: The search recommendation algorithm continues to perform configuration search within the value range of the configuration parameters of the object under test to generate one or more configurations to be tested. For each configuration to be tested, input this configuration to be tested (as the target configuration), the recommended configuration of the previous round of tuning (as the source configuration), the updated source load execution characteristics, the updated target load execution characteristics, and the performance result when the object under test executes the load with the source data volume under the recommended configuration of the previous round into the performance model. The performance model outputs the corresponding performance prediction result, and each configuration to be tested corresponds to a performance prediction result.
[0125] Similarly, multiple rounds of configuration tuning can be iteratively performed. The total number of rounds of configuration tuning can be specified by the user or use the default total number of rounds. Use the configuration corresponding to the optimal performance prediction result obtained in the last round of configuration tuning as the recommended configuration corresponding to the load with the target data volume to recommend to the user. Alternatively, it can also not be recommended to the user, but automatically update the configuration of the object under test with this recommended configuration.
[0126] It should be noted that this application embodiment does not make specific limitations on how to select the source configuration during the above configuration parameter tuning process. For example, a configuration can be randomly selected from the value range of the configuration parameters of the object under test as the source configuration, or a configuration can be selected from the previously tested configurations / historical configurations as the source configuration. It can also use the default configuration / baseline configuration of the object under test as the source configuration, or use the recommended configuration obtained in each round of tuning as the source configuration in the next round of tuning.
[0127] This application embodiment also does not make specific limitations on how to select the source data volume during the above configuration tuning process. It should be understood that selecting different source data volumes to perform the above configuration tuning process may obtain different recommended configurations (corresponding to the load with the target data volume).
[0128] For example, the above configuration parameter tuning process can be performed with different source data volumes and the same source configuration, and then use the optimal performance prediction result output by the performance prediction model as the recommended configuration corresponding to the target data volume.
[0129] For another example, it is possible to select to perform one or more rounds of configuration tuning under different source data volumes with the same source configuration, determine a source configuration corresponding to the optimal performance prediction result output by the performance prediction model at this time, and then use this source configuration as the source configuration used in subsequent tuning rounds (one or more rounds) to continue with configuration tuning, thereby obtaining the recommended configuration corresponding to the target data volume.
[0130] For another example, it is possible to select to perform one or more rounds of configuration tuning under different source data volumes with the same source configuration. For each source data volume, perform an actual performance test on the target configuration corresponding to the optimal performance prediction result output by the performance model based on this source data volume, test the actual performance result of the object under test when executing the load of the target data volume under this target configuration, and then calculate the prediction accuracy corresponding to this source data volume based on the actual performance result and the performance prediction result of the object under test when executing the load of the target data volume under this target configuration. By comparing the prediction accuracies corresponding to different source data volumes, determine the top K (K is a positive integer and can be set) source data volumes with the highest prediction accuracy, and then use these K source data volumes to perform one or more rounds of configuration tuning respectively, thereby obtaining the recommended configuration corresponding to the target data volume.
[0131] It should be understood that in addition to the configuration parameter tuning scenario, the performance prediction method described above can also be used in other scenarios that require performance prediction. Figure 3 for performance prediction.
[0132] Next, taking a big data application as an example of the tuning object, it will be described how to use the Figure 3 performance prediction method to obtain the recommended configuration of this application when executing the load of the target data volume.
[0133] Please refer to Figure 6 , Figure 6 which is a schematic diagram of an application tuning process provided by an embodiment of the present application. The object under test in the figure is a certain big data application (such as Hive, Spark, etc.). In order to enable this application to obtain better performance when executing the load of a certain target data volume, perform the Figure 6 application tuning process to obtain the recommended configuration (better / optimal configuration) of the object under test when executing the load of the target data volume.
[0134] (1) Execution of mixed data volume load
[0135] Assume that the load of this application is an SQL load. By obtaining SQL loads with multiple different data volumes (corresponding to different sampling ratios), and then having this application execute SQL loads with different data volumes under the first configuration respectively, the actual performance results of this application when executing loads with various data volumes under the first configuration can be obtained.
[0136] Optionally, an extended field can be added to the SQL statement in the SQL load, which is exemplarily named as the TABLESAMPLE field here, and the field is used to control the sampling ratio of the database table (i.e., the data set). By setting this field to different values, loads of different data volumes can be obtained, and the data processed by each load is obtained by sampling the same batch of database tables at the sampling ratio indicated by the corresponding field. Then, the application is instructed to execute loads of different data volumes respectively under the first configuration, so as to obtain the stage operation information and actual performance results of the application in the process of executing loads of different data volumes under the first configuration. The execution stage information can be reflected in the event log of the application. For example, in the SparkListenerStageCompleted field in the event log of the Spark application, the accumulator class will record the detailed information after the execution of each stage. As shown in Table 2, the accumulator class records the four types of data volume related information of each stage, from which the corresponding stage operation information can be extracted.
[0137] Table 2 Four types of data volume related information in the accumulator class
[0138] Name Description internal.metrics.resultSize Volume of stage result data internal.metrics.shuffle.write.bytesWritten Number of data bits written to disk or network during data reshuffling (shuffle) internal.metrics.input.bytesRead Number of read bits, i.e., number of data bits read from disk or memory internal.metrics.shuffle.read.localBytesRead Number of data bits read from local storage during data reshuffling (shuffle)
[0139] Optionally, the first configuration may be a default configuration / baseline configuration / a configuration specified by a user of the application, and the first configuration is within a configuration parameter value range of the application.
[0140] In addition to obtaining the actual performance results of the application when executing various data loads under the first configuration, the actual performance results of the application when executing various data loads under other configurations other than the first configuration can also be obtained. The other configurations here include one or more configurations, each of which is within the configuration parameter value range of the application. These configurations can be selected from the configuration parameter value range of the application by random / certain screening rules / user-specified methods, and the embodiments of the present application do not specifically limit this.
[0141] (2) Load execution feature extraction
[0142] Based on the execution stage information corresponding to the different data amounts obtained in the above step (1), load execution characteristics corresponding to the different data amounts are generated, and the load execution characteristics corresponding to each data amount include the stage operation information when the application executes the load of the data amount under the first configuration, and the stage operation information may include at least one of data amount information, resource usage information, and execution time.
[0143] (3) Constructing the performance model of the object under test based on the contrastive learning model
[0144] A performance model for this application is constructed using a contrastive learning model, and the performance model is trained based on the load execution characteristics and actual performance results corresponding to various data volumes obtained in the above steps (1) and (2). For the specific training method, please refer to the relevant introduction in the previous text, so as to obtain the performance model of this application for performing step (4).
[0145] (4) Use the performance model to optimize configuration parameters
[0146] Based on the performance model trained in step (3), use this performance model to optimize configuration parameters to obtain the recommended configuration when this application executes the load of the target data volume. For the process of optimizing configuration parameters, please refer to the description of the configuration parameter optimization scenario in the previous text, which will not be elaborated here.
[0147] Optionally, as Figure 6 shown, the user can specify tuning parameters such as the target data volume and the number of tuning rounds to the tuning front end. Then, based on the obtained tuning parameters, the tuning front end instructs the tuning component to start tuning, so as to perform configuration parameter tuning based on the performance model of this application (i.e., the big data application). Finally, the tuning component will feedback the recommended configuration corresponding to the target data volume obtained through tuning to the user.
[0148] In summary, in Figure 3 the load execution performance prediction method provided in the embodiment, the stage operation information during the process of the object under test executing the first load under the first configuration is used as the first load execution characteristic, and the stage operation information during the process of the object under test executing the second load under the first configuration is used as the second load execution characteristic. The total data volume processed by the first load is different from the total data volume processed by the second load. Then, the first performance result when the object under test executes the second load under the first configuration is obtained. Furthermore, based on the first load execution characteristic, the second load execution characteristic, the first configuration, the second configuration, and the first performance result, the performance when the object under test executes the first load under the second configuration is predicted.
[0149] Since the first load execution feature contains the running information of one or more stages (i.e., stage running information) during the process of the object under test executing the first load under the first configuration, which reflects the influence of the first load on each stage and can also reflect the differences and changes between different stages, the first load execution feature can accurately depict the influence of the first load on the execution process of the object under test. Similarly, since the second load execution feature contains the stage running information during the process of the object under test executing the second load under the first configuration, which reflects the influence of the second load on each stage and can also reflect the differences and changes between different stages, the second load execution feature can accurately depict the influence of the second load on the execution process of the object under test. This makes the accuracy of performance prediction based on the first load execution feature and the second load execution feature relatively high. Moreover, by using a contrastive learning model as the performance model of the object under test, the performance model can calculate the gap between the first load execution feature and the second load execution feature by comparing them, and can learn the influence and differences of loads with different data volumes on the application execution process, which helps to improve the accuracy of performance prediction. Figure 3 The performance prediction method is used in the configuration parameter tuning scenario, which also helps to improve the tuning efficiency and effect of the configuration parameter tuning process.
[0150] Please refer to Figure 7 , Figure 7 which is a schematic structural diagram of a prediction device 700 for load execution performance provided by an embodiment of the present application, including an acquisition module 701 and a prediction module 702.
[0151] The acquisition module 701 is used to acquire the first load execution feature of the object under test, where the first load execution feature includes the stage running information during the process of the object under test executing the first load under the first configuration. The acquisition module 701 is also used to acquire the second configuration of the object under test, where the second configuration is different from the first configuration. The prediction module 702 is used to predict the performance of the object under test when executing the first load under the second configuration based on the first load execution feature and the second configuration, and obtain a first performance prediction result, where the first performance prediction result corresponds to one or more performance indicators of the object under test.
[0152] Optionally, the prediction module 702 is specifically used to: input the first load execution feature and the second configuration into the performance model of the object under test, and the performance model outputs a first performance result.
[0153] Optionally, the second configuration is generated by a search and recommendation algorithm.
[0154] Optionally, the prediction module 702 is further used to: iteratively run the search and recommendation algorithm, and when the search termination condition is met, recommend the second configuration to the user or adjust the configuration of the object under test to the second configuration.
[0155] Optionally, the prediction module 702 is further configured to: obtain the second load execution feature of the object under test, obtain the first performance result of the object under test, and then predict the performance of the object under test when executing the first load under the second configuration based on the first load execution feature, the second load execution feature, the first configuration, the second configuration, and the first performance result, so as to obtain the first performance prediction result. Wherein, the second load execution feature includes the stage operation information during the process of the object under test executing the second load under the first configuration, and the total amount of data processed by the second load is different from the total amount of data processed by the first load; the first performance result is the performance result when the object under test executes the second load under the first configuration, and the first performance result corresponds to one or more performance indicators of the object under test (the same as the performance indicators corresponding to the first performance prediction result).
[0156] Optionally, the prediction module 702 is specifically configured to: input the first load execution feature, the second load execution feature, the first configuration, the second configuration, and the first performance result into the performance model of the object under test, and the performance model outputs the first performance prediction result. Wherein, the first performance prediction result is determined by the performance model by calculating the gap between the first load execution feature and the second load execution feature.
[0157] Optionally, the total amount of data processed by the second load is less than the total amount of data processed by the first load.
[0158] Optionally, the load execution performance prediction device 700 further includes a training module 703. The acquisition module 701 is further configured to acquire multiple load execution features of the object under test, where the multiple load execution features correspond to multiple loads one by one, the total amounts of data processed by the multiple loads are different from each other, and each load execution feature includes the stage operation information during the process of the object under test executing the corresponding load under the first configuration. The acquisition module 701 is further configured to acquire multiple performance results of the object under test, where each performance result corresponds to one of the multiple loads, each performance result corresponds to one configuration of the object under test, and each performance result is the performance result when the object under test executes the corresponding load under the corresponding configuration. The training module 703 is configured to train the performance model based on the multiple load execution features and the multiple performance results.
[0159] Optionally, the training module 703 is specifically configured to: combine the multiple performance results in pairs and combine the multiple load execution features in pairs and input them into the performance model for training.
[0160] Optionally, the process of the object under test executing the first load under the first configuration includes N stages, where N is a positive integer greater than 1, and the stage operation information during the process of the object under test executing the first load under the first configuration includes at least one of the following:
[0161] (1) Data volume information for at least one of the N stages;
[0162] (2) Resource usage information for at least one of the N stages;
[0163] (3) Execution time for at least one of the N stages.
[0164] Optionally, the above data volume information includes at least one of stage result data volume, read data volume, and write data volume.
[0165] Optionally, the above resource usage information includes at least one of processor resource usage, memory resource usage, and disk resource usage.
[0166] Optionally, the object under test includes at least one of database applications, big data processing applications, computing devices, and network devices.
[0167] It should be noted that the above acquisition module 701, prediction module 702, and training module 703 can be implemented by software, or can be implemented by hardware, or can be implemented by a combination of software and hardware. Exemplarily, next, taking the prediction module 702 as an example, the implementation manner of the prediction module 702 will be introduced. Similarly, the implementation manners of the above other modules can refer to the implementation manner of the prediction module 702.
[0168] As an example of a software functional unit, the prediction module 702 can include code running on a computing instance. Among them, the computing instance can include at least one of a physical host (computing device), a virtual machine, and a container. Further, the above computing instance can be one or more. For example, the prediction module 702 can include code running on multiple hosts / virtual machines / containers. It should be noted that the multiple hosts / virtual machines / containers for running this code can be distributed in the same region, or can be distributed in different regions. Further, the multiple hosts / virtual machines / containers for running this code can be distributed in the same availability zone (AZ), or can be distributed in different AZs, and each AZ includes one data center or multiple geographically close data centers. Among them, usually one region can include multiple AZs.
[0169] Similarly, multiple hosts / virtual machines / containers used to run the code can be distributed within the same virtual private cloud (VPC) or across multiple VPCs. Usually, one VPC is set up within one region. To enable cross-region communication between two VPCs within the same region and between VPCs in different regions, a communication gateway needs to be set up within each VPC, and the interconnection between VPCs is achieved through the communication gateway.
[0170] As an example of a hardware functional unit, the prediction module 702 may include at least one computing device, such as a server. Alternatively, the prediction module 702 may also be a device implemented using an application-specific integrated circuit (ASIC) or a programmable logic device (PLD). Among them, the above PLD may be implemented by a complex programmable logic device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), or any combination thereof.
[0171] The multiple computing devices included in the prediction module 702 can be distributed within the same region or across different regions. The multiple computing devices included in the prediction module 702 can be distributed within the same availability zone (AZ) or across different AZs. Similarly, the multiple computing devices included in the prediction module 702 can be distributed within the same VPC or across multiple VPCs. Among them, the multiple computing devices can be any combination of computing devices such as servers, ASICs, PLDs, CPLDs, FPGAs, and GALs.
[0172] In other embodiments, the above-mentioned acquisition module 701, prediction module 702, and training module 703 can all be used to execute Figure 1 or Figure 3 any of the steps. The steps that each of these modules is responsible for implementing can be specified as needed, and all functions of the load execution performance prediction device 700 are implemented by them respectively by implementing Figure 1 or Figure 3 different steps.
[0173] It should also be noted that the above load execution performance prediction device 700 is used to execute the Figure 1 or Figure 3 method of the embodiment. For details, please refer to Figure 1or Figure 3 The relevant description thereof will not be elaborated herein. Figure 7 The prediction device 700 for the load execution performance is only illustrated by way of example with the above division of each functional module. In actual applications, the above functions can be allocated to different functional modules as needed, that is, the internal structure of the prediction device 700 for the load execution performance can be divided into other different functional modules to complete all or part of the functions described above.
[0174] Please refer to Figure 8 , this application also provides a computing device 800, including a bus 802, a processor 804, a memory 806, and a communication interface 808. The processor 804, the memory 806, and the communication interface 808 communicate with each other through the bus 802. The computing device 800 may be a server, a laptop computer, a desktop computer, etc., which are not specifically limited in the embodiments of this application, and the number of processors and memories in the computing device 800 is also not limited in the embodiments of this application.
[0175] The bus 802 may be a peripheral component interconnect (PCI) bus or an extended industry standard architecture (EISA) bus, etc. The bus can be divided into an address bus, a data bus, a control bus, etc. For the sake of convenience of representation, Figure 8 only one line is shown in
[0176] but it does not mean that there is only one bus or one type of bus. The bus 802 may include a path for transmitting information between various components of the computing device 800 (for example, the memory 806, the processor 804, the communication interface 808).
[0177] The memory 806 may include volatile memory, such as random access memory (RAM). The processor 804 may also include non-volatile memory, such as read-only memory (ROM), flash memory, a hard disk drive (HDD), or a solid state drive (SSD).
[0178] The executable program code is stored in the memory 806. The processor 804 executes the executable program code to implement the functions of the acquisition module 701, the prediction module 702, and the training module 703 in Figure 7 respectively, so as to implement the Figure 1 or Figure 3 method of the embodiment in this application.
[0179] The communication interface 808 uses a transceiver module such as, but not limited to, a network interface card or a transceiver to implement the communication between the computing device 800 and other devices or a communication network.
[0180] The embodiment of this application also provides a computing device cluster. The computing device cluster includes at least one computing device. The computing device may be a server, such as a central server, an edge server, or a local server in a local data center. In some embodiments, the computing device may also be a terminal device such as a desktop computer, a laptop computer, or a smart phone.
[0181] As Figure 9 shown, the computing device cluster includes at least one computing device 800. In the memory 806 of one or more computing devices 800 in the computing device cluster, there may be stored the same instructions for executing the Figure 1 or Figure 3 method of the embodiment.
[0182] In some possible implementation manners, in the memory 806 of one or more computing devices 800 in the computing device cluster, there may also be respectively stored partial instructions for executing the method in the previous Figure 1 or Figure 3 embodiment. In other words, the combination of one or more computing devices 800 may jointly execute the instructions for the Figure 1 or Figure 3 method.
[0183] It should be noted that the memories 806 in different computing devices 800 in the computing device cluster may store different instructions, respectively for executing Figure 7Part of the functions of the prediction device 700 for the load execution performance, that is, the instructions stored in the memories 806 in different computing devices 800 can implement Figure 7 One or more of the functions of the acquisition module 701, the prediction module 702, and the training module 703 in
[0184] In some possible implementation manners, one or more computing devices in the computing device cluster may be connected through a network. Among them, the network may be a wide area network or a local area network, etc. Figure 10 Shows a possible implementation manner. As Figure 10 Shown, two computing devices 800A and 800B are connected through a network. Specifically, they are connected to the network through the communication interfaces in each computing device. In this type of possible implementation manner, the memory 806 in the computing device 800A stores instructions for implementing the functions of the acquisition module 701 and the prediction module 702. At the same time, the memory 806 in the computing device 800B stores instructions for implementing the function of the training module 703.
[0185] It should be understood that Figure 10 The functions of the computing device 800A shown in
[0186] This application embodiment also provides another computing device cluster. The connection relationship between the computing devices in this computing device cluster may be similarly referred to Figure 10 The connection manner of the described computing device cluster. The difference is that the memories 806 in one or more computing devices 800 in this computing device cluster may store the same instructions for executing the methods described above Figure 1 or Figure 3 above.
[0187] In some possible implementation manners, the memories 806 in one or more computing devices 800 in this computing device cluster may also respectively store instructions for executing the methods that can implement Figure 1 or Figure 3 above. In other words, a combination of one or more computing devices 800 can jointly execute the instructions for implementing the methods described above Figure 1 or Figure 3 above.
[0188] The embodiments of the present application further provide a computer-readable storage medium. The computer-readable storage medium may be any available medium that can be stored by a computing device or a data storage device such as a data center containing one or more available media. The available medium may be a magnetic medium (e.g., a floppy disk, a hard disk, a magnetic tape), an optical medium (e.g., a DVD), or a semiconductor medium (e.g., a solid-state drive), etc. The computer-readable storage medium includes instructions that direct a computing device cluster (including at least one computing device) to execute Figure 1 or Figure 3 the method of the embodiment.
[0189] The embodiments of the present application further provide a computer program product containing instructions. The computer program product may be software or a program product that contains instructions and can run on a computing device or be stored in any available medium. When the computer program product runs on at least one computing device, it causes at least one computing device to execute Figure 1 or Figure 3 the method of the embodiment.
[0190] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention and are not intended to limit them. Although the present invention has been described in detail with reference to the foregoing embodiments, those of ordinary skill in the art should understand that they can still modify the technical solutions described in the foregoing embodiments or perform equivalent replacements for some of the technical features. However, these modifications or replacements do not cause the essence of the corresponding technical solutions to deviate from the protection scope of the technical solutions of the embodiments of the present invention.
Claims
1. A method for predicting the execution performance of a load, characterized in that, The method includes: Obtaining a first load execution feature of the object under test, where the first load execution feature includes stage operation information during the process of the object under test executing a first load under a first configuration; Obtaining a second configuration of the object under test, where the second configuration is different from the first configuration; Predicting the performance of the object under test when executing the first load under the second configuration based on the first load execution feature and the second configuration, to obtain a first performance prediction result, where the first performance prediction result corresponds to one or more performance indicators of the object under test.
2. The method according to claim 1, wherein The predicting the performance of the object under test when executing the first load under the second configuration based on the first load execution feature and the second configuration, to obtain a first performance prediction result, includes: Inputting the first load execution feature and the second configuration into a performance model of the object under test, and the performance model outputs the first performance result.
3. The method according to claim 1 or 2, characterized in that, The second configuration is generated by a search recommendation algorithm.
4. The method according to claim 3, characterized in that, After obtaining the first performance prediction result, the method further includes: Iteratively running the search recommendation algorithm, and when a search termination condition is met, recommending the second configuration to the user or adjusting the configuration of the object under test to the second configuration.
5. The method according to claim 1, characterized in that, Before predicting the performance of the object under test when executing the first load under the second configuration based on the first load execution feature and the second configuration, the method further includes: Obtaining a second load execution feature of the object under test, where the second load execution feature includes stage operation information during the process of the object under test executing a second load under the first configuration, and the total amount of data processed by the second load is different from the total amount of data processed by the first load; Obtaining a first performance result of the object under test, where the first performance result is the performance result of the object under test when executing the second load under the first configuration, and the first performance result corresponds to the one or more performance indicators; The predicting the performance of the object under test when executing the first load under the second configuration based on the first load execution feature and the second configuration, to obtain a first performance prediction result, includes: Predicting the performance of the object under test when executing the first load under the second configuration based on the first load execution feature, the second load execution feature, the first configuration, the second configuration, and the first performance result, to obtain the first performance prediction result.
6. The method according to claim 5, characterized in that The predicting the performance of the object under test when executing the first load under the second configuration based on the first load execution feature, the second load execution feature, the first configuration, the second configuration, and the first performance result, to obtain the first performance prediction result, includes: Input the first load execution feature, the second load execution feature, the first configuration, the second configuration, and the first performance result into the performance model of the object under test, and the performance model outputs the first performance prediction result, where the first performance prediction result is determined by the performance model calculating the gap between the first load execution feature and the second load execution feature.
7. The method according to claim 5 or 6, characterized in that, The total amount of data processed by the second load is less than the total amount of data processed by the first load.
8. The method according to claim 6 or 7, characterized in that, Before inputting the first load execution feature, the second load execution feature, the first configuration, the second configuration, and the first performance result into the performance model of the object under test, the method further includes: Obtain multiple load execution features of the object under test, where the multiple load execution features correspond to multiple loads one by one, the total amounts of data processed by the multiple loads are different from each other, and each load execution feature includes the stage running information of the object under test during the execution of the corresponding load under the first configuration; Obtain multiple performance results of the object under test, where each performance result corresponds to one of the multiple loads, each performance result corresponds to one configuration of the object under test, and each performance result is the performance result of the object under test when executing the corresponding load under the corresponding configuration; Train the performance model based on the multiple load execution features and the multiple performance results.
9. The method according to claim 8, characterized in that, The training of the performance model based on the multiple load execution features and the multiple performance results includes: Input the pairwise combinations of the multiple performance results and the pairwise combinations of the multiple load execution features into the performance model for training.
10. The method according to any one of claims 1 to 9, characterized in that, The process of the object under test executing the first load under the first configuration includes multiple stages, and the stage running information of the object under test during the execution of the first load under the first configuration includes at least one of the following: The data volume information of at least one stage among the multiple stages; The resource usage information of at least one stage among the multiple stages; The execution time of at least one stage among the multiple stages.
11. The method according to claim 10, wherein, The data volume information includes at least one of the stage result data volume, the read data volume, and the write data volume.
12. The method according to claim 10 or 11, characterized in that The resource usage information includes at least one of the processor resource usage, the memory resource usage, and the disk resource usage.
13. The method according to any one of claims 1 to 12, characterized in that The object under test includes at least one of a database application, a big data processing application, a computing device, and a network device.
14. A prediction device for load execution performance, characterized in that, It includes an acquisition module and a prediction module: The acquisition module is used to acquire the first load execution feature of the object under test, where the first load execution feature includes the stage running information of the object under test during the execution of the first load under the first configuration; The acquisition module is further used to acquire the second configuration of the object under test, where the second configuration is different from the first configuration; The prediction module is used to predict the performance of the object under test when executing the first load in the second configuration based on the first load execution feature and the second configuration, and obtain a first performance prediction result, where the first performance prediction result corresponds to one or more performance indicators of the object under test.
15. The device according to claim 14, characterized in that, Specifically, the prediction module is used for: Input the first load execution feature and the second configuration into the performance model of the object under test, and the performance model outputs the first performance result.
16. The device according to claim 14 or 15, characterized in that The second configuration is generated by a search and recommendation algorithm.
17. The device according to claim 16, characterized in that, The prediction module is further used for: Iteratively run the search and recommendation algorithm, and when the search termination condition is met, recommend the second configuration to the user or adjust the configuration of the object under test to the second configuration.
18. The device according to claim 14, characterized in that, The acquisition module is further used for: acquiring the second load execution feature of the object under test, where the second load execution feature includes the stage operation information during the object under test executing the second load in the first configuration, and the total data volume processed by the second load is different from the total data volume processed by the first load; The acquisition module is further used for: acquiring the first performance result of the object under test, where the first performance result is the performance result of the object under test when executing the second load in the first configuration, and the first performance result corresponds to the one or more performance indicators; Specifically, the prediction module is used for: predicting the performance of the object under test when executing the first load in the second configuration based on the first load execution feature, the second load execution feature, the first configuration, the second configuration, and the first performance result, and obtaining the first performance prediction result.
19. The device according to claim 18, characterized in that, Specifically, the prediction module is used for: Input the first load execution feature, the second load execution feature, the first configuration, the second configuration, and the first performance result into the performance model of the object under test, and the performance model outputs the first performance prediction result, where the first performance prediction result is determined by the performance model calculating the gap between the first load execution feature and the second load execution feature.
20. The device according to claim 18 or 19, characterized in that, The total data volume processed by the second load is less than the total data volume processed by the first load.
21. The device according to claim 19 or 20, characterized in that, The device further includes a training module. The acquisition module is further used for: acquiring multiple load execution features of the object under test, where the multiple load execution features correspond to multiple loads one by one, the total data volumes processed by the multiple loads are different from each other, and each load execution feature includes the stage operation information during the object under test executing the corresponding load in the first configuration; The acquisition module is further used for: acquiring multiple performance results of the object under test, where each performance result corresponds to one of the multiple loads, each performance result corresponds to a configuration of the object under test, and each performance result is the performance result of the object under test when executing the corresponding load in the corresponding configuration; The training module is used for: training the performance model based on the multiple load execution features and the multiple performance results.
22. The device according to claim 21, characterized in that, Specifically, the training module is used for: Combining the multiple performance results in pairs and combining the multiple load execution characteristics in pairs, and inputting them into the performance model for training.
23. The device according to any one of claims 14 to 22, characterized in that The process of the object under test executing the first load under the first configuration includes multiple stages, and the stage operation information during the process of the object under test executing the first load under the first configuration includes at least one of the following: Data volume information of at least one stage among the multiple stages; Resource usage information of at least one stage among the multiple stages; Execution time of at least one stage among the multiple stages.
24. The device according to claim 23, wherein The data volume information includes at least one of stage result data volume, read data volume, and write data volume.
25. The device according to claim 23 or 24, characterized in that The resource usage information includes at least one of processor resource usage, memory resource usage, and disk resource usage.
26. The device according to any one of claims 14 to 22, characterized in that, The object under test includes at least one of a database application, a big data processing application, a computing device, and a network device.
27. A cluster of computing devices, characterized in that, Comprising at least one computing device, each computing device includes a processor and a memory, and the processor of the at least one computing device is configured to execute instructions stored in the memory of the at least one computing device, so that the computing device cluster executes the method according to any one of claims 1-13.
28. A computer-readable storage medium, characterized in that, Comprising computer program instructions, when the computer program instructions are executed by a computing device cluster, the computing device cluster executes the method according to any one of claims 1-13.
29. A computer program product containing instructions, characterized in that, When the instructions are run by a computing device cluster, it causes the computing device cluster to execute the method according to any one of claims 1-13.