Network performance evaluation method, device, computer equipment and readable storage medium
By obtaining virtual machine parameters in high-performance computing servers and optimizing the parameters using genetic algorithms and simulated annealing algorithms, the accuracy and efficiency issues of virtualization performance evaluation are solved, and efficient and accurate network performance evaluation is achieved.
Patent Information
- Application Number
- CN202410266777.6
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-03-06
- Publication Date
- 2025-09-23
- Estimated Expiration
- 2044-03-06
AI Technical Summary
Existing technologies lack accuracy and efficiency when evaluating the virtualization performance of high-performance computing servers, resulting in irrational resource allocation and requiring a lot of time and manpower to adjust.
By obtaining the virtual machine parameters of each tested computing server, performance testing is performed, the fitness value is calculated, and the parameters are optimized through genetic algorithms and simulated annealing algorithms until the preset fitness threshold is reached to determine the optimal configuration.
It improves the efficiency and accuracy of network performance evaluation, can automatically screen out parameters with better configuration, optimize parameter performance, and reflect the fitness value of server performance more accurately.
Smart Images

Figure CN118227257B_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the technical field of performance evaluation, and in particular to a network performance evaluation method, apparatus, computer equipment, and readable storage medium. Background Art
[0002] A high-performance computing server is a server that can handle a large number of computing tasks and is usually used in scenarios that require powerful computing capabilities, such as cloud computing. As the demand and attention for high-performance computing servers increase, the performance evaluation of high-performance computing servers has become increasingly important.
[0003] Since virtualization performance reflects the resource utilization efficiency of high-performance computing servers in cloud computing and also indirectly reflects the performance of the server itself, virtualization performance is usually used as one of the key indicators for evaluating high-performance computing servers.
[0004] In related technologies, virtualization performance can be evaluated and adjusted by monitoring virtual machine resource usage, including CPU, memory, disk, and network. However, this evaluation method can cause some problems. For example, after each virtual machine is given a certain resource margin, it is necessary to determine whether further resource allocation needs to be adjusted based on test results and resource monitoring. This process depends largely on the experience and subjective judgment of the tester, which often leads to excessive or insufficient resource allocation. As a result, the obtained results do not objectively reflect the actual performance of the virtual machine and lack accuracy. In addition, it requires a lot of time, manpower, and material resources for continuous adjustment and trial and error, resulting in very low evaluation efficiency. Summary of the Invention
[0005] The main purpose of the embodiments of the present application is to provide a network performance evaluation method, apparatus, computer equipment and readable storage medium, which can improve the efficiency and accuracy of network performance evaluation.
[0006] To achieve the above objectives, a first aspect of an embodiment of the present application provides a network performance evaluation method, the method comprising:
[0007] Obtaining first parameters corresponding to each virtual machine in each tested computing server, and performing a performance test on the virtual machine of each tested computing server according to the first parameters to obtain a first fitness value corresponding to each tested computing server, wherein each tested computing server is configured with the same hardware parameters;
[0008] Determining at least one related first parameter from the first parameters according to the first fitness value, and adjusting each related first parameter to obtain a second parameter corresponding to each related first parameter;
[0009] Allocating each second parameter to a corresponding virtual machine to perform a performance test on a tested computing server corresponding to each virtual machine to obtain a second fitness value corresponding to each tested computing server;
[0010] When each second fitness value is greater than a preset fitness threshold, adjusting each second parameter, and determining the adjusted parameter as the second parameter;
[0011] Repeatedly assigning each second parameter to a corresponding virtual machine to perform a performance test on a tested computing server corresponding to each virtual machine to obtain a second fitness value corresponding to each tested computing server;
[0012] Until any second fitness value is less than the preset fitness threshold, a maximum target fitness value is determined among the second fitness values as the performance evaluation result of each tested computing server.
[0013] Accordingly, a second aspect of an embodiment of the present application provides a network performance evaluation device, the device comprising:
[0014] an acquisition module, configured to acquire first parameters corresponding to each virtual machine in each tested computing server, and perform a performance test on the virtual machine of each tested computing server based on the first parameters to obtain a first fitness value corresponding to each tested computing server, wherein each tested computing server is configured with the same hardware parameters;
[0015] an adjustment module, configured to determine at least one related first parameter from the first parameters according to the first fitness value, and adjust each related first parameter to obtain a second parameter corresponding to each related first parameter;
[0016] an allocation module, configured to allocate each second parameter to a corresponding virtual machine, perform a performance test on a tested computing server corresponding to each virtual machine, and obtain a second fitness value corresponding to each tested computing server;
[0017] a comparison module, configured to adjust each second parameter when each second fitness value is greater than a preset fitness threshold, and determine the adjusted parameter as the second parameter;
[0018] A testing module, configured to repeatedly assign each second parameter to a corresponding virtual machine to perform a performance test on a tested computing server corresponding to each virtual machine, and obtain a second fitness value corresponding to each tested computing server;
[0019] The determination module is configured to determine the maximum target fitness value among the second fitness values as the performance evaluation result of each tested computing server until any second fitness value is less than a preset fitness threshold.
[0020] In some embodiments, the acquisition module is further configured to:
[0021] Obtaining initial parameters corresponding to each virtual machine in each tested computing server, and performing performance testing on the virtual machine of each tested computing server based on the initial parameters to obtain an initial fitness value corresponding to each tested computing server;
[0022] Determining a plurality of target initial parameters from the initial parameters based on the initial fitness value, and configuring the plurality of target initial parameters to obtain candidate parameters corresponding to each virtual machine in each tested computing server;
[0023] Perform performance testing on the virtual machine of each tested computing server according to the candidate parameters to obtain a reference fitness value corresponding to each tested computing server;
[0024] Determining a plurality of target candidate parameters from the candidate parameters based on the reference fitness value, configuring the plurality of target candidate parameters, and determining the configured parameters as candidate parameters;
[0025] Repeatedly perform performance tests on the virtual machines of each tested computing server based on the candidate parameters to obtain a reference fitness value corresponding to each tested computing server;
[0026] When the number of iterations of the parameters input by the virtual machine reaches a first preset number, or when the reference fitness value no longer changes for more than a second preset number of times, the candidate parameters of the last iteration are determined as the first parameters corresponding to each virtual machine in each tested computing server.
[0027] In some embodiments, the acquisition module is further configured to:
[0028] Sort the initial parameters according to their initial fitness values to obtain a sorting result;
[0029] Selecting a plurality of target initial parameters from the initial parameters based on the sorting result, and encoding all the target initial parameters to obtain a first code for representing each target initial parameter;
[0030] Selecting a first candidate code from the first code based on the first selection range, and selecting a second candidate code from the first code based on the second selection range;
[0031] Select at least one second candidate code to perform code adjustment to obtain a third candidate code;
[0032] The first candidate code and the third candidate code are decoded to obtain candidate parameters corresponding to each virtual machine in each tested computing server.
[0033] In some embodiments, the target initial parameter includes a target initial parameter item and a target initial parameter value, and the acquisition module is further configured to:
[0034] Obtaining the total number of virtual machines in all the tested computing servers, and determining the encoding length corresponding to each target initial parameter item in the target initial parameter based on the total number of virtual machines;
[0035] Based on the coding length, each target initial parameter value is binary-coded to obtain the coding value corresponding to each target initial parameter value;
[0036] For each target initial parameter, the code values corresponding to the corresponding target initial parameter values are sequentially concatenated to obtain a first code for representing the target initial parameter.
[0037] In some embodiments, the acquisition module is further configured to:
[0038] Taking each second candidate code as a matrix row, a configuration matrix corresponding to the second candidate code is generated;
[0039] Randomly select at least one matrix row, and for each matrix row, perform a negation operation on the code value in the matrix row to obtain a variant code;
[0040] Randomly selecting at least one matrix row pair therefrom, and for each matrix row pair, exchanging the code values of the first matrix row and the second matrix row to obtain a cross code, wherein each matrix row pair includes a first matrix row and a second matrix row;
[0041] The variation coding and cross coding are taken as the third candidate coding.
[0042] In some embodiments, the detection device of the network performance evaluation device further includes a reduction module, which is configured to:
[0043] Get the preset fitness reduction ratio;
[0044] When a reference fitness value is less than a preset fitness threshold, the fitness value less than the preset fitness value is multiplied by the fitness reduction ratio to obtain an adjusted reference fitness value.
[0045] In some embodiments, the adjustment module is further configured to:
[0046] Obtaining a first code of a related first parameter;
[0047] For each relevant first parameter, determining at least one relevant first parameter item to be adjusted, and determining a relevant code value corresponding to the relevant first parameter item from the first code;
[0048] Obtaining a preset adjustment step size and adjusting the relevant coding value according to the adjustment step size;
[0049] The first code whose relevant code value has been adjusted is decoded to obtain a second parameter corresponding to each relevant first parameter.
[0050] In some embodiments, the adjustment module is further configured to:
[0051] Obtaining at least one access code value from the first code corresponding to each relevant first parameter; wherein the access code value indicates whether the processor core within the relevant first parameter needs to access the corresponding memory across non-uniform memory access nodes;
[0052] When the processor core within the first parameter representing the access code value accesses the corresponding memory, it is necessary to cross the non-uniform memory access node, then the access code value is modified;
[0053] The first code of the modified access code value is decoded to obtain a second parameter corresponding to each related first parameter.
[0054] In some embodiments, the third aspect of the embodiments of the present application proposes a computer device, which includes a memory and a processor, the memory stores a computer program, and when the processor executes the computer program, it implements the network performance evaluation method of any one of the embodiments of the first aspect of the present application.
[0055] In some embodiments, the fourth aspect of the embodiments of the present application proposes a computer-readable storage medium, which stores a computer program. When the computer program is executed by a processor, it implements the network performance evaluation method of any one of the embodiments of the first aspect of the present application.
[0056] The embodiment of the present application obtains a first parameter corresponding to each virtual machine in each tested computing server, and performs a performance test on the virtual machine of each tested computing server according to the first parameter to obtain a first fitness value corresponding to each tested computing server, wherein each tested computing server is configured with the same hardware parameters; determines at least one related first parameter in the first parameter according to the first fitness value, and adjusts each related first parameter to obtain a second parameter corresponding to each related first parameter; assigns each second parameter to the corresponding virtual machine to perform a performance test on the tested computing server corresponding to each virtual machine to obtain a second fitness value corresponding to each tested computing server; when each second fitness value is greater than a preset fitness threshold, adjusts each second parameter and determines the adjusted parameter as the second parameter; repeatedly assigns each second parameter to the corresponding virtual machine to perform a performance test on the tested computing server corresponding to each virtual machine to obtain a second fitness value corresponding to each tested computing server; until any second fitness value is less than the preset fitness threshold, determines the maximum target fitness value in the second fitness values as the performance evaluation result of each tested computing server. In this way, it is possible to simultaneously conduct performance tests on different parameters through multiple tested computing servers configured with the same hardware parameters. The fitness value of each tested computing server can represent the fitness value of all tested computing servers, which greatly improves the efficiency of network performance evaluation. At the same time, the present application can determine the parameters of the better configuration through the fitness value of each tested computing server, thereby screening out the parameters with poor configuration; for the parameters of the better configuration obtained by screening, adjustments are made under the condition that they are greater than the preset fitness threshold, thereby gradually optimizing the performance of the parameters, trying to obtain a parameter combination with a higher advantage, and automatically calculating the fitness value after each adjustment, so that the final fitness value can more accurately reflect the performance of the tested computing server. In summary, the present application can improve the efficiency and accuracy of network performance evaluation. BRIEF DESCRIPTION OF THE DRAWINGS
[0057] Figure 1 This is a schematic diagram of the structure of the network performance evaluation system provided in the embodiment of the present application;
[0058] Figure 2 This is a flow chart of the network performance evaluation method provided by an embodiment of the present application;
[0059] Figure 3 This is an overall flow chart of the network performance evaluation method provided in the embodiment of the present application;
[0060] Figure 4 This is a functional structure diagram of the network performance evaluation device provided in an embodiment of the present application;
[0061] Figure 5This is a schematic diagram of the hardware structure of the computer device provided in the embodiment of the present application. DETAILED DESCRIPTION
[0062] In order to make the purpose, technical solutions and advantages of this application more clear, the following further describes this application in detail with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain this application and are not intended to limit this application.
[0063] It should be noted that although the device schematics illustrate functional module divisions and the flowcharts illustrate logical sequences, in certain circumstances, the steps shown or described may be performed in a sequence that differs from the module divisions in the device or the sequence in the flowcharts. The terms "first," "second," and so on, in the specification, claims, and drawings, are used to distinguish similar items and are not necessarily used to describe a specific sequence or precedence.
[0064] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by those skilled in the art to which this application pertains. The terms used herein are for the purpose of describing the embodiments of this application only and are not intended to limit this application.
[0065] A high-performance computing server is a server that can handle a large number of computing tasks and is usually used in scenarios that require powerful computing capabilities, such as cloud computing. As the demand and attention for high-performance computing servers increase, the performance evaluation of high-performance computing servers has become increasingly important.
[0066] Since virtualization performance reflects the resource utilization efficiency of high-performance computing servers in cloud computing and also indirectly reflects the performance of the server itself, virtualization performance is usually used as one of the key indicators for evaluating high-performance computing servers.
[0067] In related technologies, virtualization performance can be evaluated and adjusted by monitoring virtual machine resource usage, including CPU, memory, disk, and network. However, this evaluation method can cause some problems. For example, after each virtual machine is given a certain resource margin, it is necessary to determine whether further resource allocation needs to be adjusted based on test results and resource monitoring. This process depends largely on the experience and subjective judgment of the tester, which often leads to excessive or insufficient resource allocation. As a result, the obtained results do not objectively reflect the actual performance of the virtual machine and lack accuracy. In addition, it requires a lot of time, manpower, and material resources for continuous adjustment and trial and error, resulting in very low evaluation efficiency.
[0068] Based on this, the embodiments of the present application provide a network performance evaluation method, apparatus, computer equipment and readable storage medium to improve the efficiency and accuracy of network performance evaluation.
[0069] The network performance evaluation method, apparatus, computer device, and readable storage medium provided in the embodiments of the present application are specifically described through the following embodiments. First, the network performance evaluation system in the embodiments of the present application is described.
[0070] Please refer to Figure 1 In some implementations, the network performance evaluation system includes a node supervision and task distribution process 11 , a tested computing server cluster 12 , a fitness recovery process 13 , and an optimization algorithm engine 14 .
[0071] Specifically, the node supervision and task distribution process 11 may be responsible for monitoring the status and online / offline status of the tested computing server cluster 12 in the system, and for distributing tasks to the tested computing servers in the tested computing server cluster 12 .
[0072] In some embodiments, the tested computing server cluster 12 may be a collection of tested computing servers, each of which is configured with at least one virtual machine for running corresponding parameters and obtaining corresponding. Each tested computing server in the tested computing server cluster 12 has the same hardware configuration. After any tested computing server in the tested computing server cluster 12 obtains a performance evaluation result, the corresponding performance evaluation result is applicable to any tested computing server in the tested computing server cluster 12. After receiving the task assigned by the node supervision and task distribution process 11, the tested computing server in the tested computing server cluster 12 can perform the corresponding network performance test and upload the performance evaluation result obtained by the performance test, that is, the fitness value, to the fitness recovery process 13. Furthermore, a daemon process can be set up in each computing server under test. The daemon process can be used to monitor task status, report node status, receive tasks and upload results. After receiving the test task, the daemon process of the computing server under test configures the SPECVirt test suite according to the test parameters and starts the test. During the test, the daemon process of the computing server under test regularly reports heartbeat messages to the node supervision and task distribution process 11 and the fitness recovery process 13 to ensure the survival of the computing server under test. After each performance test, the daemon process of the computing server under test will upload the test results (i.e., fitness values) to the fitness recovery process 13.
[0073] Exemplarily, the fitness recovery process 13 can be used to collect and process the performance evaluation results of the computing server under test. For example, the fitness recovery process 13 can sort the computing server under test based on the fitness values obtained when the computing server under test is subjected to performance testing, and select parameters with higher fitness values based on the sorting results and transmit them to the optimization algorithm engine 14 for further processing. Furthermore, the fitness process can also encode each parameter so that the subsequent optimization algorithm engine can directly configure or adjust it according to the encoded parameters. Furthermore, when the fitness recovery process 13 receives a heartbeat timeout reported by the daemon process of a computing server under test, it indicates that the computing server under test has exceeded the system load in the performance test of the corresponding parameter, and such a parameter is unacceptable. Therefore, the computing server under test corresponding to this parameter can be directly assigned a minimum fitness, such as 0, to avoid passing the parameter to the optimization algorithm engine 14 for iteration.
[0074] Specifically, the optimization algorithm engine 14 can be the optimization subject in the entire system. Two sets of optimization programs are run in the optimization algorithm engine 14, corresponding to the genetic algorithm search in the first stage and the simulated annealing algorithm in the second stage. The optimization algorithm engine 14 can receive the parameters before or after the screening of the fitness recovery process 13, and select, cross and mutate the parameters to obtain new parameters, and continue to determine new parameters based on the fitness values corresponding to the newly obtained parameters until the iteration conditions are met. Some parameters are selected from the parameters of the last iteration and transmitted to the second stage to execute the simulated annealing algorithm. In the second stage, the parameters selected in the first stage are fine-tuned, and the fitness value is calculated after each fine-tuning. After the termination conditions are met, the highest fitness value is selected as the score of any tested computing server. It can be understood that after each readjustment or configuration of the parameters, the new parameters are transmitted to the node supervision and task distribution process 11, so that the node supervision and task distribution process 11 distributes the new parameters to the tested computing server cluster 12 for testing, and the fitness value obtained from the test is fed back to the optimization algorithm engine 14 through the fitness recovery process 13, so that the optimization algorithm engine 14 can continuously optimize and adjust to obtain new parameters.
[0075] The network performance evaluation method in the embodiment of the present application can be illustrated by the following embodiment.
[0076] It should be noted that in each specific embodiment of the present application, when it comes to the need to perform relevant processing based on data related to user identity or characteristics such as user information, user behavior data, user historical data, and user location information, the user's permission or consent will be obtained first. Moreover, the collection, use, and processing of these data will comply with relevant laws, regulations, and standards. In addition, when the embodiment of the present application needs to obtain the user's sensitive personal information, the user's separate permission or consent will be obtained through a pop-up window or by jumping to a confirmation page. After clearly obtaining the user's separate permission or consent, the necessary user-related data for the normal operation of the embodiment of the present application will be obtained.
[0077] In the embodiment of the present application, the network performance evaluation device will be described from the perspective of the network performance evaluation device, which can be integrated into a computer device. Figure 2 , Figure 2 This is a flowchart of the steps of the network performance evaluation method provided in an embodiment of the present application. In this embodiment of the present application, the network performance evaluation device is specifically integrated into a terminal or server as an example. When the processor on the terminal or server executes the program instructions corresponding to the network performance evaluation method, the specific process is as follows:
[0078] Step 101: obtain the first parameters corresponding to each virtual machine in each tested computing server, and perform performance testing on the virtual machine of each tested computing server based on the first parameters to obtain the first fitness value corresponding to each tested computing server, wherein each tested computing server is configured with the same hardware parameters.
[0079] It can be understood that in order to improve the efficiency of the performance test of the tested computing server, different first parameters can be run simultaneously by multiple tested computing servers configured with the same hardware parameters to obtain the first fitness value of each tested computing server when the performance test is performed using the first parameters. This eliminates the need to run the first parameters in turn when there is only one tested computing server, thereby saving time for performance testing of the tested computing server and improving the efficiency of performance testing of the tested computing server.
[0080] The computing server under test may be a computing server whose performance is to be evaluated. The computing server may be used to execute computing tasks, has a high-performance processor and memory, and may be used to process a large amount of computing-intensive workloads.
[0081] A virtual machine can be a software implementation of a computer environment. Using virtualization technology, the compute server under test can partition its hardware resources into multiple virtualized containers, each of which can independently run a virtual machine. Each virtual machine is considered an independent computing environment with its own operating system, applications, and resources, allowing different operating systems and applications to run on the compute server under test.
[0082] The first parameter may be a numerical value of a performance parameter or indicator configured for each virtual machine in each tested computing server. For example, the first parameter may include CPU core allocation, memory usage, hard disk storage capacity, and the like. After configuring the first parameter, the virtual machine of the tested computing server may obtain a first fitness value. It is understood that each first parameter may be different to test the performance of the virtual machine of the tested computing server under different parameters.
[0083] The first fitness value can be obtained after the virtual machine of each tested computing server runs the corresponding first parameter. The first fitness value can be a comprehensive indicator used to measure the performance and efficiency level of the virtual machine in a given scenario. Specifically, since the performance of the virtual machine is affected by the hardware and virtualization software of the tested computing server, the first fitness value calculated after the virtual machine runs the first parameter can reflect the performance level of the tested computing server. In other words, the first fitness value can be used as a performance test result of the tested computing server under the first parameter. The higher the first fitness value, the better the performance of the tested computing server.
[0084] In some embodiments, each tested computing server is configured with identical hardware parameters. That is, each tested computing server utilizes hardware components such as the same processor model, the same memory capacity, and the same hard disk type and capacity. By running different first parameters on virtual machines within the tested computing servers with identical hardware parameters, first fitness values for all tested computing servers under different first parameters can be obtained. This enables parallel execution of different first parameters, thereby improving the efficiency of performance testing of the tested computing servers.
[0085] In some embodiments, the computing server under test can be tested based on the SPECVirt test suite. Specifically, SPECVirt is a virtualization performance benchmark suite that can be used to evaluate server performance in a virtualized environment. SPECVirt provides a series of load workloads that simulate real scenarios, such as virtual desktops, databases, Web servers, etc., to evaluate the performance and efficiency of the computing server under test in the virtualized environment. Furthermore, for each virtual machine of the computing server under test, after the virtual machine is configured with the first parameters and running, SPECVirt can be used to regularly monitor the performance indicators of the computing server under test and the running virtual machines, such as CPU utilization, memory usage, disk I / O throughput, network bandwidth, etc. Afterwards, based on the performance indicators obtained from the detection, SPECVirt can calculate the first fitness value of each virtual machine according to a predefined calculation method, such as weighted summation or weighted average. The appropriate calculation method can be selected according to specific business needs and performance indicators.
[0086] In some embodiments, the first fitness value of each tested computing server can be obtained by comprehensively considering various performance indicators and weighting them. For example, the SPECVirt test suite is run on the tested computing server 1, and the following test result data is obtained: CPU performance index: 200; memory performance index: 150; hard disk performance index: 180. If the first fitness value is calculated by weighted average, where the CPU weight is 40%, the memory weight is 30%, and the hard disk weight is 30%. Then the first fitness value can be calculated by the following formula: first fitness value = (200*0.4) + (150*0.3) + (180*0.3) = 80 + 45 + 54 = 179. It is understandable that other algorithms can also be used to calculate the first fitness value, or when the first fitness value is calculated by weighted average, the weight can be appropriately adjusted. The embodiment of the present application does not impose specific restrictions on this.
[0087] By calculating the first fitness value corresponding to each tested computing server in the above manner, the first fitness value of the tested computing server with the same hardware parameters under different first parameters can be obtained at the same time, thereby improving the efficiency of detecting the tested computing server and facilitating the subsequent selection of the first parameter with a high first fitness value for iteration to further test the performance of the tested computing server.
[0088] In some implementations, to obtain a first parameter with a higher fitness, the genetic algorithm may be iteratively updated using the initial parameters, and after each iteration, the parameter with a higher fitness is selected as a candidate parameter to iteratively obtain a first parameter with a higher fitness, thereby laying the foundation for fine-tuning the first parameter in the subsequent second stage. For example, the "obtaining the first parameter corresponding to each virtual machine in each tested computing server" in step 101 may include:
[0089] (101.1) Obtaining initial parameters corresponding to each virtual machine in each tested computing server, and performing a performance test on the virtual machine of each tested computing server based on the initial parameters to obtain an initial fitness value corresponding to each tested computing server;
[0090] (101.2) determining a plurality of target initial parameters from the initial parameters based on the initial fitness value, and configuring the plurality of target initial parameters to obtain candidate parameters corresponding to each virtual machine in each of the tested computing servers;
[0091] (101.3) performing a performance test on the virtual machine of each tested computing server according to the candidate parameters to obtain a reference fitness value corresponding to each tested computing server;
[0092] (101.4) determining a plurality of target candidate parameters from the candidate parameters based on the reference fitness value, configuring the plurality of target candidate parameters, and determining the configured parameters as candidate parameters;
[0093] (101.5) Repeatedly perform performance testing on the virtual machine of each tested computing server according to the candidate parameters to obtain a reference fitness value corresponding to each tested computing server;
[0094] (101.6) When the number of iterations of the parameters input by the virtual machine reaches a first preset number, or when the number of times the reference fitness value no longer changes exceeds a second preset number, the candidate parameter of the last iteration is determined as the first parameter corresponding to each virtual machine in each tested computing server.
[0095] The initial parameters may be the default configuration parameters of each virtual machine in each tested computing server before the performance test. It is understood that in order to quickly test the performance of the tested computing server, the initial parameters of the virtual machines in each tested computing server are different to obtain the initial fitness values of the tested computing server under different initial parameters.
[0096] The initial fitness value may be calculated by SPECVirt when the virtual machine of the tested computing server is running with the initial parameters. The specific method for calculating the fitness value corresponding to the parameters based on SPECVirt has been described above and will not be repeated here.
[0097] Among them, the target initial parameters are selected from the initial parameters based on the size of the initial fitness values. For example, the initial fitness values can be sorted to obtain sorting results, and the initial parameters with higher initial fitness values can be selected from the sorting results according to a preset selection range as the target initial parameters. For example, when the initial fitness values are sorted in reverse order, the initial parameters corresponding to the first 50% of the initial fitness values can be selected as the target initial parameters, or the first 16 initial parameters can be selected as the target initial parameters. Without departing from the concept of the present application, the specific number of selections can be determined according to the actual situation, as long as it is ensured that the selected target initial parameters have higher initial fitness values than the initial parameters that have not been selected.
[0098] The candidate parameters may be configured using the target initial parameters. Specifically, the target initial parameters selected based on the initial fitness values may have good performance during actual performance testing. However, in order to maximize the performance evaluation results of the compute server under test, so that the final performance evaluation results can best reflect the performance of the compute server under test, the target initial parameters may be configured to attempt to obtain more optimally configured candidate parameters from the more optimal target initial parameters.
[0099] The reference fitness value may be calculated by SPECVirt when the virtual machine of the compute server under test runs the candidate parameters. The specific method for calculating the fitness value corresponding to the parameter based on SPECVirt has been described above and will not be repeated here.
[0100] Among them, the target candidate parameters are selected from the candidate parameters based on the size of the reference fitness value. For example, the reference fitness values can be sorted to obtain a sorting result, and the candidate parameters with higher reference fitness values can be selected from the sorting result according to a preset selection range as the target candidate parameters. For example, when the reference fitness values are sorted in reverse order, the candidate parameters corresponding to the top 40% of the reference fitness values can be selected as the target candidate parameters, or the top 10 candidate parameters can be selected as the target candidate parameters. Without departing from the concept of the present application, the specific number of selections can be determined according to the actual situation, as long as it is ensured that the selected target candidate parameters have a higher reference fitness value than the candidate parameters that have not been selected.
[0101] Among them, the first preset number of times can be the iteration number threshold set when iterating the candidate parameters input by the virtual machine. The first preset number of times can be determined based on the complexity of the parameters. For example, if the complexity of the candidate parameters used to test the virtual machine is high, such as if there are many parameter items of the candidate parameters, the first preset number of times can be appropriately increased to cover the range of candidate parameters of different configurations through iteration as much as possible, and to maximize the attempt to obtain the first parameter with higher adaptability; and if there are fewer parameter items of the candidate parameters, the first preset number of times can be appropriately reduced, as long as it is ensured that the first parameter obtained by the final iteration can reflect a better parameter configuration scheme. Exemplarily, the first preset number of times can be 60 times, 80 times, etc., and can be adjusted according to actual conditions without departing from the concept of this application.
[0102] The second preset number of times refers to the threshold number of times the reference fitness value no longer changes during performance testing and fitness evaluation. It is understood that when the reference fitness value no longer changes, it indicates that the genetic algorithm has achieved the same reference fitness value while optimizing the configured parameters as much as possible. At this point, if the parameters are further iterated, the same reference fitness value will still be achieved, so the iteration can be stopped. The second preset number of times can be determined based on actual conditions. For example, the second preset number of times can be determined to be 5, 6, or the like.
[0103] In some embodiments, when configuring multiple target initial parameters to obtain candidate parameters corresponding to each virtual machine in each tested computing server, or configuring multiple target candidate parameters and determining the configured parameters as candidate parameters, a genetic algorithm can be used to update the configuration. Taking configuring multiple target initial parameters to obtain candidate parameters corresponding to each virtual machine in each tested computing server as an example, when configuring the target initial parameters, the target initial parameters can be encoded, for example, each target initial parameter is binary-encoded to obtain a first encoding corresponding to each target initial parameter. Afterwards, the first encoding can be selected, mutated, and crossover-operated to generate candidate parameters of different configurations to explore more possible parameter combinations, and based on the different candidate parameters obtained, the corresponding reference fitness value is recalculated.
[0104] It can be understood that when configuring multiple target initial parameters to obtain candidate parameters corresponding to each virtual machine in each tested computing server, or configuring multiple target candidate parameters and determining the configured parameters as candidate parameters, parameters with higher fitness values are selected as candidate parameters. Therefore, each time the tested computing server iterates, the fitness value obtained by the final calculation can be used to reflect the imperfection of the candidate parameters of this configuration, thereby guiding the genetic algorithm to optimize in a better direction. That is to say, the genetic algorithm is guided to select, cross, and mutate in the direction that may obtain a higher fitness value to obtain candidate parameters, thereby improving the efficiency and accuracy of the evaluation.
[0105] In some embodiments, the genetic algorithm continuously calculates reference fitness values based on the candidate parameters obtained from the new configuration, selects new target candidate parameters for configuration, and iterates until the number of iterations reaches a first preset number, at which point the iteration stops, and the candidate parameters of the last iteration are determined as the first parameters corresponding to each virtual machine in each tested computing server. Alternatively, when the number of times the reference fitness value no longer changes exceeds a second preset number, the candidate parameters of the last iteration are determined as the first parameters corresponding to each virtual machine in each tested computing server. It is understandable that stopping the iteration when the iteration condition is met can obtain excellent first parameters without wasting computing resources.
[0106] In some embodiments, it may be configured that when the number of iterations of the parameters input by the virtual machine of each tested computing server reaches a first preset number, or when the number of times the reference fitness value no longer changes exceeds a second preset number, the candidate parameters of the last iteration are determined as the first parameters corresponding to each virtual machine in each tested computing server. Alternatively, when the number of iterations of the parameters input by the virtual machine reaches a first preset number, and when the number of times the reference fitness value no longer changes exceeds a second preset number, the candidate parameters of the last iteration are determined as the first parameters corresponding to each virtual machine in each tested computing server.
[0107] In some embodiments, in order to configure different candidate parameters, the target initial parameters may be subjected to selection, crossover, and mutation operations. Prior to this, in order to facilitate the selection, crossover, and mutation operations on the target initial parameters, the target initial parameters may be encoded so as to facilitate rapid adjustment of the encoded target initial parameters and improve iteration efficiency. For example, (101.2) may include:
[0108] (101.2.1) Sort the initial parameters according to their initial fitness values to obtain a sorting result;
[0109] (101.2.2) selecting a plurality of target initial parameters from the initial parameters based on the sorting result, and encoding all the target initial parameters to obtain a first code for representing each target initial parameter;
[0110] (101.2.3) Selecting a first candidate code from the first code based on the first selection range, and selecting a second candidate code from the first code based on the second selection range;
[0111] (101.2.4) selecting at least one second candidate code and performing code adjustment to obtain a third candidate code;
[0112] (101.2.5) Decode the first candidate code and the third candidate code to obtain candidate parameters corresponding to each virtual machine in each tested computing server.
[0113] The sorting results can be obtained by sorting in order or in reverse order according to the initial fitness values of the initial parameters, and the sorting results are used to subsequently screen out target initial parameters with higher initial fitness values.
[0114] The first code is obtained by encoding the target initial parameter value of each target initial parameter item in each target initial parameter. The first code can be a string, a binary code or other form that can be operated by the genetic algorithm, and the specific form is not limited.
[0115] The first selection range is a range for selecting the first candidate code from the first code. The first selection range is used to select a range of candidate parameters within a certain range or a certain number of the target initial parameters without adjusting the parameters. The first selection range can be a selection percentage or a specific selection number. For example, based on the sorting results, a certain proportion or a certain number of the first codes can be selected as the first candidate codes, and the first candidate codes can be decoded to obtain candidate parameters. Alternatively, based on the sorting results, a certain proportion or a certain number of initial parameters can be selected as candidate parameters.
[0116] Among them, the first candidate code can be selected from the first code through the first selection range. The first candidate code represents a certain percentage range or a certain number of first codes with the highest initial fitness value among all first codes. The first candidate code is often the first code with the highest initial fitness value, which represents the optimal parameter configuration in the current iteration scenario, and is conducive to better retention or propagation of excellent parameter configuration in subsequent iterations. For example, if the target initial parameters are sorted in reverse order according to the initial fitness value, then the first 30% of the first codes corresponding to the target initial parameters can be selected as the first candidate codes, or 3 first codes can be selected as the first candidate codes. The specific percentage range or number can be determined according to actual conditions.
[0117] The second selection range is the range for selecting the second candidate code from the first code. The second selection range can be a selection percentage or a specific selection number. For example, if the target initial parameters are sorted in reverse order according to the initial fitness value, then the first 60% of the first codes corresponding to the target initial parameters can be selected as the first candidate code, or 6 first codes can be selected as the first candidate code. The specific percentage range or number can be determined based on actual conditions.
[0118] The second candidate code is the first code that needs to be adjusted and, after adjustment, is used to obtain the candidate parameters for the next iteration. The second candidate code can be a first code randomly selected from the first code according to a certain selection ratio, or a first code with a higher initial fitness value selected based on a sorting result. The second candidate code can be a new code value obtained by performing a crossover operation or a mutation operation on the first code. By performing mutation and crossover operations on the first code, a new code combination, that is, a new parameter combination, can be obtained to prevent the algorithm from falling into a local optimal solution and to generate candidate parameters with better fitness as much as possible.
[0119] The third candidate encoding can be a new encoding obtained by adjusting the second candidate encoding. The third candidate encoding is the newly configured encoding. It is understood that during the parameter iteration process, the algorithm continuously optimizes with the goal of achieving a higher fitness value. Therefore, the candidate parameters obtained after decoding the third candidate encoding often achieve a higher fitness value than the target initial parameters during performance testing on a virtual machine.
[0120] Specifically, since the target initial parameters, the initial fitness value and the first encoding have a one-to-one correspondence and are interrelated, the first candidate encoding and the second candidate encoding can be selected according to the first selection range and the second selection range based on the sorting result obtained by sorting the initial fitness value, and the second candidate encoding can be adjusted to obtain a third candidate encoding that may have a higher fitness value. After that, the first candidate encoding and the second candidate encoding are decoded in the encoding manner to obtain the candidate parameters. In this way, by continuously trying to adjust the parameters, the candidate parameters with higher fitness values can be sought, thereby improving the efficiency and accuracy of the network performance evaluation.
[0121] In some embodiments, to facilitate the execution of the genetic algorithm, the target initial parameters can be converted into a form that can be easily processed and operated by a computer, that is, the target initial parameters are encoded, thereby facilitating parameter optimization. For example, (101.2.2) may include:
[0122] (101.2.2.1) Obtain the total number of virtual machines in all the tested computing servers, and determine the encoding length corresponding to each target initial parameter item in the target initial parameter based on the total number of virtual machines;
[0123] (101.2.2.2) Based on the encoding length, binary encode each target initial parameter value to obtain the encoding value corresponding to each target initial parameter value;
[0124] (101.2.2.3) For each target initial parameter, the encoding values corresponding to the corresponding target initial parameter values are sequentially concatenated to obtain a first encoding for representing the target initial parameter.
[0125] In some embodiments, the target initial parameters include target initial parameter items and target initial parameter values. The initial parameter items may be specific parameter options or parameter types that need to be configured or adjusted, such as the number of CPU cores, memory size, virtual network, storage size, cross-non-uniform memory access (NUMA) nodes, etc. The target initial parameter values may be specific numerical values, options, or states set for each target initial parameter item.
[0126] Among them, the encoding length can be the maximum length of the encoding value, and the encoding length can be specifically determined based on the total number of virtual machines in each tested computing server and the total standard value of the initial parameter item. For example, when the number of virtual machines is 5, the target initial parameter item is the number of CPU cores, and the standard value of the initial parameter item is 96, the number of CPU cores can be evenly distributed to these 5 virtual machines, and the encoding length is determined according to the number length of 96 / 5, that is, each virtual machine occupies a maximum of 96 / 5 CPU cores. The encoding length of the target initial parameter items such as memory size, virtual network, storage size, etc. can also be determined according to the above method, which will not be repeated here.
[0127] The encoding value may be a binary representation of the target initial parameter value. Specifically, after the encoding length is determined, the step iteration value may be determined. For example, the storage size may be stepped and iterated according to 0.5T.
[0128] Among them, the first code is a binary code obtained by splicing after forming a code according to each initial parameter item. When splicing according to the initial parameters, it is necessary to set a fixed splicing order so that a specific area can be selected from the first code for adjustment later. For example, when the binary code of the number of CPU cores is 1000, the binary code of the memory size is 100000, the binary code of the virtual network is 10000, the binary code of the storage size is 100, and the binary code across NUMA is 0, each code value is spliced in turn according to the preset order to obtain the first code: 10001000001000010000000000. The specific splicing order can be set as needed.
[0129] In some implementations, when binary encoding is performed on each target initial parameter item, a numerical range can be used to represent the resource range that can be allocated to each basic virtual machine. For example, the iteration step is determined by the numerical range, and then binary encoding is performed based on each target initial parameter value.
[0130] For example, the original format of the encoding can be {CPU core number range: 0x04 to 0x13, 1 bit represents 1 core, and the corresponding binary encoding bit number is 0 0000}; {memory size range: 0x08 to 0x33, 1 bit represents 1 GB, and the corresponding binary encoding bit number is 00 0000}; {the virtual network card divides the bandwidth traffic into 32 parts, ranging from 0x01 to 0x20, and the corresponding binary encoding bit number is 00 0000}; {storage range: 0x01 to 0x06, 1 bit represents 0.5 TB, and the corresponding binary encoding bit number is 000}; {0 represents non-cross-NUMA, 1 represents cross-NUMA, and the corresponding binary encoding bit number is 0}; the number of bits occupied by the binary representation of the individual code is {00000 00 0000 00 0000 000 0}.
[0131] Afterwards, based on the original format of the encoding, the target initial parameter value is converted into a binary code, and then the converted encoding values are correspondingly spliced according to the order in the original format of the encoding to obtain a first code for representing the target initial parameter. That is to say, the first code corresponding to each target initial parameter is obtained, so that the first code can be directly adjusted later, and different candidate parameters can be obtained after decoding.
[0132] In summary, by encoding the target initial parameters to obtain the corresponding first code, the parameters can be converted into a form that can be processed and operated by a computer, which facilitates parameter optimization and algorithm execution, thereby further improving the efficiency of performance testing.
[0133] In some implementations, in order to continue attempting to obtain parameters with higher fitness values after obtaining the parameters corresponding to the current optimal fitness value, the selected second candidate code may be adjusted to obtain a third candidate code, so as to facilitate decoding the first candidate code and obtain new candidate parameters, which are then used in the performance test of the computing server under test to obtain a higher fitness value. For example, (101.2.4) may include:
[0134] (101.2.4.1) Taking each second candidate code as a matrix row, generate a configuration matrix corresponding to the second candidate code;
[0135] (101.2.4.2) Arbitrarily select at least one matrix row, and for each matrix row, perform a negation operation on the code value in the matrix row to obtain a variant code;
[0136] (101.2.4.3) arbitrarily select at least one matrix row pair therefrom, and for each matrix row pair, swap the code values of the first matrix row and the second matrix row to obtain a cross code, wherein each matrix row pair includes a first matrix row and a second matrix row;
[0137] (101.2.4.4) Variant coding and cross coding are taken as the third candidate coding.
[0138] Among them, each matrix row corresponds to a second candidate code, and each second candidate code corresponds to a target initial parameter. Therefore, each matrix row corresponds to a target initial parameter. Similarly, since the first matrix row and the second matrix row also belong to the configuration matrix, the first matrix row and the second matrix row also correspond to different target initial parameters.
[0139] Among them, the configuration matrix can be a summary matrix generated based on all second candidate codes, that is, the configuration matrix is generated based on all target initial parameters, each second candidate code corresponds to a matrix row, and the configuration matrix is used to record the code values of each target initial parameter.
[0140] The variant code can be a new code generated by performing a NOT operation on an arbitrarily selected row of the configuration matrix. For example, if the original matrix row is 1010011000, then the variant code is 0101100111. Alternatively, the variant code can also be obtained by performing a NOT operation on a specific range of matrix rows. For example, the memory size can be NOT operated on. If the original matrix row is 000111000, where 111 represents the binary code corresponding to the memory size, then the memory size code value is NOT operated on, resulting in a variant code of 000000000. It should be noted that, without departing from the concept of the present application, the specific code value for the NOT operation can be selected according to actual circumstances.
[0141] The matrix row pair may be a combination of two matrix rows arbitrarily selected from the configuration matrix, and the two matrix rows arbitrarily selected from the configuration matrix are respectively named as the first matrix row and the second matrix row.
[0142] The exchange code can be generated by exchanging the code values of the first and second matrix rows in a selected matrix row pair. During the exchange of the first and second matrix rows, the code information of different matrix rows can be combined to generate a new code result, thereby attempting to obtain candidate parameters with higher fitness values. It is understood that generally, a certain range of code values can be selected from the first and second matrix rows for exchange to generate two corresponding cross codes. After exchanging the first and second matrix rows, the parameter search can be prevented from being limited to a specific code combination, thereby increasing the diversity and coverage of the search space.
[0143] The third candidate code may be a new code generated by taking the variation code and the cross code as a result. After decoding the third candidate code, a candidate code may be obtained for use in performance testing of a virtual machine of the computing server under test.
[0144] In this way, the generated configuration matrix can be used to quickly implement mutation and crossover operations on any one or more matrix rows to increase the diversity of the search space, thereby contributing to a more comprehensive and efficient parameter optimization and search process.
[0145] In some embodiments, to encourage the genetic algorithm to optimize in a more optimal direction, when the reference fitness value obtained by running the candidate parameters adjusted by the genetic algorithm does not meet the preset fitness threshold, the reference fitness value can be reduced to penalize the algorithm's negative performance and encourage the algorithm to optimize in a direction that meets the preset fitness threshold. In some embodiments, specific reduction methods may include:
[0146] A1. Obtain the preset fitness reduction ratio;
[0147] A2. When a reference fitness value is less than a preset fitness threshold, the fitness value less than the preset fitness value is multiplied by the fitness reduction ratio to obtain an adjusted reference fitness value.
[0148] Among them, the fitness reduction ratio is a pre-set parameter used to adjust the reference fitness value that does not meet the preset fitness threshold. When the reference fitness value does not meet the preset fitness threshold, the reference fitness value needs to be reduced according to the fitness reduction ratio, so that the algorithm can adjust the next candidate parameter in the direction of meeting the preset fitness threshold, thereby effectively improving the algorithm's ability to adjust the parameters.
[0149] The preset fitness threshold is a standard threshold used to determine whether the candidate parameters obtained after algorithm adjustment meet the expected results. The preset fitness threshold can be a specific fitness value. For example, if the fitness value is set to 95, when the reference fitness value is less than 95, the reference fitness value is reduced according to the fitness reduction ratio. When the reference fitness value is greater than 95, the reference fitness value is output directly according to the original result.
[0150] In some implementations, the standardization of candidate parameters for algorithm adjustment may be determined based on parameter indicators, rather than a preset fitness threshold. Specifically, when a candidate parameter fails to meet at least one parameter indicator, the reference fitness value corresponding to the candidate parameter that fails to meet the parameter indicator is multiplied by the fitness reduction ratio to obtain an adjusted reference fitness value.
[0151] In some embodiments, the reference indicators of the candidate parameters can be set as follows: QoS (quality of service) > 95%, that is, the probability that the system's service quality reaches more than 95%; the number of CPU cores * the number of virtual machines < the number of CPU cores of the measured computing server; the number of virtual machine memories * the number of virtual machines < the total memory of the measured computing server, that is, the total memory of all virtual machines on a certain measured computing server needs to be less than the total memory of the measured computing server; the virtual machine storage capacity * the number of virtual machines < the total storage of the measured computing server, that is, the total storage of all virtual machines on a certain measured computing server needs to be less than the total storage of the measured computing server; the virtual machine network bandwidth * the number of virtual machines < the total network card bandwidth of the measured computing server, that is, the sum of the network bandwidth requirements of all virtual machines on the measured computing server needs to be less than the total network card bandwidth of the measured computing server; the number of virtual machines < the number of virtual network cards allowed by the Data Plane Development Kit (DPDK), etc.
[0152] QoS (Quality of Service) can compare the actual collected system performance data with the expected performance indicators. The comparison can be expressed as a percentage, ratio, etc. to represent the proportion of actual performance to expected performance, and the QoS value is characterized by the probability or degree to which the system achieves the expected performance. For example, if the expected performance of the system is an average response time of less than 100 milliseconds for each request, and the actual collected data shows an average response time of less than 90 milliseconds, then the QoS can be calculated as 90%. It should be noted that the QoS calculation method can be determined based on specific business needs or the hardware configuration of the specific computing server being tested.
[0153] It should be noted that the above reference indicators can be increased or decreased according to actual conditions. When the candidate parameters do not meet 3 parameter indicators (this number can be adjusted according to actual conditions), the reference fitness value corresponding to the candidate parameters that do not meet the parameter indicators will be multiplied by the fitness reduction ratio to obtain the adjusted reference fitness value.
[0154] In some embodiments, the fitness value that is less than the preset fitness value is multiplied by the fitness reduction ratio to obtain an adjusted reference fitness value. For example, the reference fitness value obtained by the virtual machine of the tested computing server by running the candidate parameters is 95, and the fitness reduction ratio is 50%, then the adjusted reference fitness value is 95*50%=47.5. Alternatively, the reference fitness value can also be adjusted in a weighted manner, by subtracting the reference fitness value from the reference fitness value multiplied by the fitness reduction ratio to obtain the adjusted reference fitness value. For example, if the reference fitness value is 98 and the fitness reduction ratio is 40%, then the adjusted reference fitness value is 98-98*20%=58.8. It should be noted that the fitness reduction ratio can be adjusted according to actual conditions.
[0155] Through the above method, when the reference fitness value is lower than the preset fitness threshold, the final reference fitness value can be reduced, thereby prompting the algorithm to adjust the candidate parameters that meet the preset fitness threshold in the next iteration, thereby more efficiently completing the evaluation of the network performance of the tested computing server.
[0156] Step 102: Determine at least one related first parameter from the first parameters according to the first fitness value, and adjust each related first parameter to obtain a second parameter corresponding to each related first parameter.
[0157] It can be understood that in order to achieve the effect of optimizing the best, the first parameters can be sorted according to the first fitness values corresponding to the first parameters, and at least one relevant first parameter can be selected based on the results of the sorting, and then the relevant first parameters can be fine-tuned to further determine whether there is a more optimal parameter configuration.
[0158] The relevant first parameter is at least one first parameter with the highest first fitness value. For example, after sorting the first parameters according to their first fitness values, the sorting results are: first parameter 1, first fitness value: 98; first parameter 2, first fitness value: 97; first parameter 3, first fitness value: 97; first parameter 4, first fitness value: 95; ... first parameter n, first fitness value: 83. Then, the first parameters with the top three first fitness values can be selected as the relevant first parameters, i.e., first parameter 1, first parameter 2, and first parameter 3. The specific number or range of the selected relevant first parameters can be determined flexibly.
[0159] The second parameter is obtained by adjusting each related first parameter. Specifically, the related first parameter may include a related first parameter item and a related first parameter value. The related first parameter is adjusted, that is, the related first parameter value is adjusted to obtain the second parameter corresponding to each related first parameter, so that the virtual machine of the computing server under test can subsequently run the second parameter to determine whether the second parameter has a higher fitness value than the related first parameter, thereby continuously trying to obtain the second parameter with a higher fitness value to improve the accuracy of the network performance evaluation.
[0160] In some embodiments, in order to select a method with the goal of obtaining a higher fitness value, that is, to obtain a better performance evaluation result, after obtaining a relatively better related first parameter, the first parameter value of the related first parameter is further adjusted to obtain a second parameter, so as to obtain a more optimal parameter configuration for testing the computing server under test. For example, the "adjusting each related first parameter to obtain a second parameter corresponding to each related first parameter" in step 102 may include:
[0161] (102.A1) Obtaining a first code of a related first parameter;
[0162] (102.A2) For each relevant first parameter, determine at least one relevant first parameter item to be adjusted, and determine a relevant code value corresponding to the relevant first parameter item from the first code;
[0163] (102.A3) Obtaining a preset adjustment step size and adjusting the relevant code value according to the adjustment step size;
[0164] (102.A4) Decode the first code whose relevant code value has been adjusted to obtain a second parameter corresponding to each relevant first parameter.
[0165] Among them, the relevant first parameters include relevant first parameter items and relevant first parameter values corresponding to each relevant first parameter item. The first code is obtained by binary encoding the relevant first parameter value corresponding to each relevant first parameter item. The specific process of binary encoding the reference target initial parameters to obtain the first code can be described above, which will not be repeated here.
[0166] Among them, by encoding the relevant first parameter value of each relevant first parameter item, the relevant coding value corresponding to the relevant first parameter value can be obtained. For the specific encoding method, please refer to the above process of binary encoding the reference target initial parameter value of the reference target initial parameter, which will not be repeated here.
[0167] The adjustment step size can be the magnitude of the adjustment of the relevant code value. By selecting a reasonable adjustment step size, the range and accuracy of the parameter change can be controlled. For example, the adjustment step size for the processor core or memory can be set to 1 bit. Furthermore, a target relevant first parameter item can be selected from the relevant first parameter items for adjustment. Specifically, the relevant code value of the relevant first parameter value corresponding to the target relevant first parameter item can be adjusted according to the adjustment step size.
[0168] It is understandable that CPU cores and memory are key first-related parameter items for improving system performance. Therefore, by fine-tuning the number of CPU cores and memory size, the overall system performance can be more effectively improved. Specifically, the CPU cores and memory can be used as target first-related parameter items, and the relevant encoding values of the first-related parameter values of the CPU cores and memory can be adjusted respectively. Furthermore, in addition to adjusting the CPU cores and memory, the relevant parameter values of other relevant parameter items can also be adjusted, depending on actual needs.
[0169] Exemplarily, the first code of the relevant first parameter is obtained as 11001100. For each relevant first parameter, at least one relevant first parameter item to be adjusted is determined. If the relevant first parameter item to be adjusted is memory, and the relevant code value of the memory is determined from the first code to be in the third position of the first code, the relevant code value can be randomly adjusted according to the adjustment step. For example, by adjusting the relevant code value by +1, the first code of the adjusted relevant code value can be obtained as 11101100.
[0170] Furthermore, after obtaining the first code of the adjusted relevant code value, decoding can be performed according to the encoding process to obtain the second parameter corresponding to each relevant first parameter. Specifically, the relevant first parameter item corresponding to each relevant code value can be determined according to the splicing order, and then the binary number can be converted into a specific numerical value.
[0171] In the above manner, the relevant codes can be gradually adjusted according to the preset adjustment step size, thereby gradually optimizing the value of the relevant first parameter to obtain a second parameter with a higher fitness value, that is, to obtain a better performance evaluation result.
[0172] It is understandable that when the processor core needs to access the memory across non-consistent memory access nodes, it may cause increased latency and decreased access speed; and when the processor core and memory are accessed at the same non-consistent memory access node, it means that after the corresponding computing task is executed by the processor core in the non-consistent memory access node, the memory in the non-consistent memory access node can be directly used, thereby improving the access speed of the data and reducing latency. Therefore, the memory and the processor core can be adjusted to the same non-consistent memory access node to further improve the data access speed and the overall performance of the system and reduce data latency. For example, "adjusting each relevant first parameter to obtain the second parameter corresponding to each relevant first parameter" in step 102 can also include:
[0173] (102.B1) Obtain at least one access code value from the first code corresponding to each relevant first parameter; wherein the access code value indicates whether the processor core within the relevant first parameter needs to access the corresponding memory across non-uniform memory access nodes;
[0174] (102.B2) When the access code value represents that the processor core within the associated first parameter accesses the corresponding memory and needs to cross a non-uniform memory access node, the access code value is modified;
[0175] (102.B3) Decode the first code of the modified access code value to obtain the second parameter corresponding to each related first parameter.
[0176] Among them, the access code value can be a value obtained from the first code corresponding to each relevant first parameter, which is used to indicate whether the processor core within the relevant first parameter needs to access the corresponding memory across the non-consistent memory access node. Since the first code is obtained by sequentially splicing each relevant first parameter item, the access code value can be found directly in the first code. For example, if the processor core and the memory are under the same non-consistent memory access node, the access code value is 1; if the processor core and the memory are not under the same non-consistent memory access node, the access code value is 0. Specifically, the access code value can be set flexibly, and it is only necessary to make the access code values corresponding to the processor core and the memory being under the same non-consistent memory access node and not being under the same non-consistent memory access node opposite.
[0177] Among them, Non-Uniform Memory Access (NUMA) node is a computer architecture design. NUMA can reduce memory access latency and improve performance by dividing memory into multiple local memory areas and allowing each processor core to access its local memory area.
[0178] In some embodiments, when the access code value represents that the processor core within the relevant first parameter accesses the corresponding memory, it is necessary to cross the non-consistent memory access node, and the access code value is modified. The specific modification method is to perform a non-operation on the access code value, that is, when the access code value is 0, it is modified to 1, and when the access code value is 1, it is modified to 0, so that the processor core and the memory are under the same non-consistent memory access node, so as to reduce the system delay and improve the access efficiency.
[0179] Specifically, when decoding the first code of the modified access code value to obtain the second parameter corresponding to each related first parameter, the first code can be directly decoded according to the binary decoding method. Specifically, the code value corresponding to each first parameter item can be determined from the first parameter, and then the code value is decoded according to the step. Since the binary encoding method has been detailed above, when decoding the first code, it only needs to correspond to the above method, and this is not repeated here.
[0180] In some embodiments, it is possible to directly determine whether the processor core and memory of each relevant first parameter are under the same non-consistent memory access node based on the access code value. If the processor core and the memory are under the same non-consistent memory access node, the access code value does not need to be adjusted; if the processor core and the memory are not under the same non-consistent memory access node, the access code value needs to be adjusted so that the processor core and the memory are under the same non-consistent memory access node, thereby obtaining the first code of the modified access code value, and then decoding the first code value to obtain the second parameter corresponding to each relevant first parameter.
[0181] In some embodiments, (102.B1) to (102.B3) can be executed before (102.A1) to (102.A3). Specifically, it can be directly determined based on the access code value whether the processor core and the memory of each relevant first parameter are under the same non-consistent memory access node. If the processor core and the memory are under the same non-consistent memory access node, the access code value does not need to be adjusted; if the processor core and the memory are not under the same non-consistent memory access node, the access code value needs to be adjusted so that the processor core and the memory are under the same non-consistent memory access node, thereby obtaining a first code of the modified access code value, and then, based on each relevant first parameter, determining at least one relevant first parameter item to be adjusted, and determining the relevant code value corresponding to the relevant first parameter item from the first code; and obtaining a preset adjustment step size, and adjusting the relevant code value according to the adjustment step size; decoding the first code of the adjusted relevant code value to obtain the second parameter corresponding to each relevant first parameter.
[0182] In some embodiments, (102.B1) to (102.B3) may be performed after (102.A1) to (102.A3). Specifically, a first code of the relevant first parameter may be obtained; for each relevant first parameter, at least one relevant first parameter item to be adjusted is determined, and a relevant code value corresponding to the relevant first parameter item is determined from the first code; a preset adjustment step is obtained, and the relevant code value is adjusted according to the adjustment step; at least one access code value is obtained for the first code of the adjusted relevant code value; when the access code value indicates that the processor core within the relevant first parameter accesses the corresponding memory and needs to cross non-uniform memory access nodes, the access code value is modified; and the first code of the modified access code value is decoded to obtain the second parameter corresponding to each relevant first parameter.
[0183] In some embodiments, when the processor core and the memory are not in the same non-consistent memory access node and the access coding value cannot be adjusted, the optimization process of the relevant first parameter can be terminated and the current relevant first parameter is not output as the second parameter, thereby avoiding obtaining parameters that are not well configured.
[0184] After adjusting each relevant first parameter to obtain the second parameter corresponding to each relevant first parameter, determine whether the processor core and memory of each second parameter are in the same non-consistent memory access node through the access code value of the first code corresponding to the second parameter. If the processor core and the memory are in the same non-consistent memory access node, there is no need to adjust the access code value; if the processor core and the memory are not in the same non-consistent memory access node, it is necessary to adjust the access code value of the second parameter so that the processor core and the memory are in the same non-consistent memory access node, thereby obtaining the first code of the adjusted access code value, and then decoding the first code to obtain the adjusted second parameter.
[0185] In the above method, by using the access code value to characterize whether the processor core needs to cross the non-uniform memory access node when accessing the memory, and modifying the access code value when the processor core and the memory are not in the same non-uniform memory access node, the memory access strategy can be adjusted in a targeted manner to reduce cross-node access, thereby improving memory access performance and reducing access latency.
[0186] Step 103: Allocate each second parameter to a corresponding virtual machine, perform a performance test on the tested computing server corresponding to each virtual machine, and obtain a second fitness value corresponding to each tested computing server.
[0187] It can be understood that in order to evaluate the performance of each tested computing server after the corresponding second parameters are assigned, the corresponding second fitness value can be calculated for each second parameter, so as to obtain the evaluation result of the virtual machine of the tested computing server when the performance test is performed according to the second parameters based on the second fitness value.
[0188] It can be understood that the method for calculating the second fitness value is the same as the method for calculating the first fitness value, which has been explained above and will not be repeated here.
[0189] The second fitness value calculated in the above manner can facilitate determining whether the second parameter needs to be further adjusted subsequently.
[0190] Step 104: When each second fitness value is greater than a preset fitness threshold, each second parameter is adjusted, and the adjusted parameter is determined as the second parameter.
[0191] It can be understood that, in order to further optimize the second parameter, a preset fitness threshold can be set. When the second fitness values corresponding to the second parameter are all greater than the preset fitness threshold, it indicates that the adjustment effect is good this time, and the second parameter can be continuously adjusted to obtain a higher fitness value.
[0192] Among them, the preset fitness threshold can be a standard threshold for judging whether the second parameter meets the expected effect. The preset fitness threshold can be a specific fitness value. For example, if the set fitness value is 95, when the second fitness value is greater than 95, it indicates that the adjustment effect is good this time, and the second parameter can be continuously adjusted, and the adjusted parameter is determined as the second parameter.
[0193] In some embodiments, instead of judging whether the second parameter adjusted by the algorithm is standard through the preset fitness threshold, it can be judged through parameter indicators, that is, whether the second parameter adjusted by the algorithm meets the requirements is judged by the number of parameter indicators satisfied by the second parameter. The preset item value can be set flexibly, for example, it can be 3, etc. For example, the reference indicators of the second parameter can be set as follows: QoS (Quality of Service)>95%, that is, the probability that the quality of service of the system reaches more than 95%; the number of CPU cores * the number of virtual machines < the number of CPU cores of the measured computing server; the memory of the virtual machine * the number of virtual machines < the total memory of the measured computing server, that is, the total memory of all virtual machines on a certain measured computing server needs to be less than the total memory of the measured computing server; the storage of the virtual machine * the number of virtual machines < the total storage of the measured computing server, that is, the total storage of all virtual machines on a certain measured computing server needs to be less than the total storage of the measured computing server; the network bandwidth of the virtual machine * the number of virtual machines < the total network card bandwidth of the measured computing server, that is, the sum of the network bandwidth requirements of all virtual machines on the measured computing server needs to be less than the total network card bandwidth of the measured computing server; the number of virtual machines < the number of virtual network cards allowed by DPDK, etc.
[0194] Among them, the calculation method of QoS (Quality of Service) has been elaborated above and will not be repeated here. It should be noted that the above reference indicators can be increased or decreased according to the actual situation. For example, when the second parameter satisfies 3 items (this number of items can be adjusted according to the actual situation) of parameter indicators, the second parameter that satisfies the parameter indicators is adjusted, and the adjusted parameter is determined as the second parameter.
[0195] In some embodiments, a preset adjustment number of times for the second parameter can also be set. When the adjustment number of times for the second parameter does not exceed the preset adjustment number of times, the second parameter that satisfies the parameter indicators is continuously adjusted, and the adjusted parameter is determined as the second parameter.
[0196] Step 105 : Repeat the process of allocating each second parameter to the corresponding virtual machine to perform a performance test on the tested computing server corresponding to each virtual machine, and obtain a second fitness value corresponding to each tested computing server.
[0197] It can be understood that in order to compare different second parameters, the second parameters after each adjustment can be repeatedly assigned to the corresponding virtual machines to perform performance tests on the tested computing servers corresponding to each virtual machine, and the second fitness values corresponding to each tested computing server can be obtained, so as to determine the second parameters with better performance and the corresponding second fitness values.
[0198] Step 106 : until any second fitness value is less than a preset fitness threshold, a maximum target fitness value is determined among the second fitness values as a performance evaluation result of each tested computing server.
[0199] The target fitness value can be the maximum fitness value determined from all the second fitness values, or it can be the maximum fitness value determined by summarizing the first fitness value and the second fitness value. It is understandable that since the target fitness value represents the best performance of the tested computing server, the target fitness value can be used as the performance evaluation result of each tested computing server. Since the hardware configuration of all tested computing servers is the same, as long as the target fitness value is selected from one tested computing server, this target fitness value can represent the performance evaluation results of all tested computing servers.
[0200] Among them, the performance evaluation results can be the results of quantifying and analyzing the performance of the tested computing server under the second parameter, that is, under a specific workload. The performance evaluation results may include but are not limited to comprehensive evaluation scores in terms of processor performance, memory usage, storage speed, network throughput, etc.
[0201] In some embodiments, a simulated annealing algorithm may be used to adjust the second parameter. Specifically, when each second fitness value is greater than a preset fitness threshold, the second parameter may be randomly adjusted to the corresponding encoding value according to a preset adjustment step size. The specific adjustment method has been discussed above and is not further described here. The adjustment operation may be terminated until any second fitness value is less than the preset fitness threshold, and the second parameter being adjusted may be restored to the second parameter corresponding to the previous moment.
[0202] In some embodiments, when the second fitness values calculated by all the tested computing servers during the simulated annealing algorithm are less than the preset fitness threshold, the second fitness values and the first fitness values can be aggregated, and the largest fitness value among all the first fitness values and the second fitness values can be selected as the target fitness value, and the largest target fitness value can be used as the performance evaluation result of each tested computing server. In some embodiments, the embodiments of the present application obtain a first parameter corresponding to each virtual machine in each tested computing server, and perform a performance test on the virtual machine of each tested computing server according to the first parameter to obtain a first fitness value corresponding to each tested computing server, wherein each tested computing server is configured with the same hardware parameters; determine at least one related first parameter in the first parameter according to the first fitness value, and adjust each related first parameter to obtain a second parameter corresponding to each related first parameter; assign each second parameter to the corresponding virtual machine to perform a performance test on the tested computing server corresponding to each virtual machine to obtain a second fitness value corresponding to each tested computing server; when each second fitness value is greater than a preset fitness threshold, adjust each second parameter and determine the adjusted parameter as the second parameter; repeatedly assign each second parameter to the corresponding virtual machine to perform a performance test on the tested computing server corresponding to each virtual machine to obtain a second fitness value corresponding to each tested computing server; until any second fitness value is less than the preset fitness threshold, determine the maximum target fitness value in the second fitness value as the performance evaluation result of each tested computing server. In this way, it is possible to simultaneously conduct performance tests on different parameters through multiple tested computing servers configured with the same hardware parameters. The fitness value of each tested computing server can represent the fitness value of all tested computing servers, which greatly improves the efficiency of network performance evaluation. At the same time, the present application can determine the parameters of the better configuration through the fitness value of each tested computing server, thereby screening out the parameters with poor configuration; for the parameters of the better configuration obtained by screening, adjustments are made under the condition that they are greater than the preset fitness threshold, thereby gradually optimizing the performance of the parameters, trying to obtain a parameter combination with a higher advantage, and automatically calculating the fitness value after each adjustment, so that the final fitness value can more accurately reflect the performance of the tested computing server. In summary, the present application can improve the efficiency and accuracy of network performance evaluation.
[0203] Please refer to Figure 3 , Figure 3 This is an embodiment of the overall implementation of the network performance evaluation method. In some implementations, the network performance evaluation method includes the following steps:
[0204] Step 301: Obtain initial parameters corresponding to each virtual machine in each tested computing server, and perform performance testing on the virtual machine of each tested computing server based on the initial parameters to obtain an initial fitness value corresponding to each tested computing server;
[0205] Step 302: determining a plurality of target initial parameters from the initial parameters based on the initial fitness value, and configuring the plurality of target initial parameters to obtain candidate parameters corresponding to each virtual machine in each tested computing server;
[0206] Step 303: Perform a performance test on the virtual machine of each of the tested computing servers according to the candidate parameters to obtain a reference fitness value corresponding to each of the tested computing servers;
[0207] Step 304: determining a plurality of target candidate parameters from the candidate parameters based on the reference fitness value, configuring the plurality of target candidate parameters, and determining the configured parameters as the candidate parameters;
[0208] Step 305: Repeat the performance test of the virtual machine of each of the tested computing servers according to the candidate parameters to obtain a reference fitness value corresponding to each of the tested computing servers;
[0209] Step 306: When the number of iterations of the parameter input by the virtual machine reaches a first preset number, or when the number of times the reference fitness value no longer changes exceeds a second preset number, the candidate parameter of the last iteration is determined as the first parameter corresponding to each virtual machine in each of the tested computing servers;
[0210] Step 307: Perform a performance test on the virtual machine of each of the tested computing servers according to the first parameters to obtain a first fitness value corresponding to each of the tested computing servers, wherein each of the tested computing servers is configured with the same hardware parameters.
[0211] Step 308: determining at least one related first parameter from the first parameters according to the first fitness value, and adjusting each of the related first parameters to obtain a second parameter corresponding to each of the related first parameters;
[0212] Step 309: Allocate each second parameter to the corresponding virtual machine, perform a performance test on the tested computing server corresponding to each virtual machine, and obtain a second fitness value corresponding to each tested computing server;
[0213] Step 310: When each of the second fitness values is greater than a preset fitness threshold, each of the second parameters is adjusted, and the adjusted parameters are determined as the second parameters;
[0214] Step 311: Repeat the process of assigning each second parameter to the corresponding virtual machine to perform a performance test on the tested computing server corresponding to each virtual machine to obtain a second fitness value corresponding to each tested computing server.
[0215] Step 312: until any of the second fitness values is less than the preset fitness threshold, determine the maximum target fitness value among the second fitness values as the performance evaluation result of each of the tested computing servers.
[0216] The initial parameters may be the default configuration parameters of each virtual machine in each tested computing server before the performance test. It is understood that in order to quickly test the performance of the tested computing server, the initial parameters of the virtual machines in each tested computing server are different to obtain the initial fitness values of the tested computing server under different initial parameters.
[0217] The initial fitness value may be calculated by SPECVirt when the virtual machine of the tested computing server is running with the initial parameters. The specific method for calculating the fitness value corresponding to the parameters based on SPECVirt has been described above and will not be repeated here.
[0218] Among them, the target initial parameters are selected from the initial parameters based on the size of the initial fitness values. For example, the initial fitness values can be sorted to obtain sorting results, and the initial parameters with higher initial fitness values can be selected from the sorting results according to a preset selection range as the target initial parameters. For example, when the initial fitness values are sorted in reverse order, the initial parameters corresponding to the first 50% of the initial fitness values can be selected as the target initial parameters, or the first 16 initial parameters can be selected as the target initial parameters. Without departing from the concept of the present application, the specific number of selections can be determined according to the actual situation, as long as it is ensured that the selected target initial parameters have higher initial fitness values than the initial parameters that have not been selected.
[0219] The candidate parameters may be configured using the target initial parameters. Specifically, the target initial parameters selected based on the initial fitness values may have good performance during actual performance testing. However, in order to maximize the performance evaluation results of the compute server under test, so that the final performance evaluation results can best reflect the performance of the compute server under test, the target initial parameters may be configured to attempt to obtain more optimally configured candidate parameters from the more optimal target initial parameters.
[0220] The reference fitness value may be calculated by SPECVirt when the virtual machine of the compute server under test runs the candidate parameters. The specific method for calculating the fitness value corresponding to the parameter based on SPECVirt has been described above and will not be repeated here.
[0221] Among them, the target candidate parameters are selected from the candidate parameters based on the size of the reference fitness value. For example, the reference fitness values can be sorted to obtain a sorting result, and the candidate parameters with higher reference fitness values can be selected from the sorting result according to a preset selection range as the target candidate parameters. For example, when the reference fitness values are sorted in reverse order, the candidate parameters corresponding to the top 40% of the reference fitness values can be selected as the target candidate parameters, or the top 10 candidate parameters can be selected as the target candidate parameters. Without departing from the concept of the present application, the specific number of selections can be determined according to the actual situation, as long as it is ensured that the selected target candidate parameters have a higher reference fitness value than the candidate parameters that have not been selected.
[0222] Among them, the first preset number of times can be the iteration number threshold set when iterating the candidate parameters input by the virtual machine. The first preset number of times can be determined based on the complexity of the parameters. For example, if the complexity of the candidate parameters used to test the virtual machine is high, such as if there are many parameter items of the candidate parameters, the first preset number of times can be appropriately increased to cover the range of candidate parameters of different configurations through iteration as much as possible, and to maximize the attempt to obtain the first parameter with higher adaptability; and if there are fewer parameter items of the candidate parameters, the first preset number of times can be appropriately reduced, as long as it is ensured that the first parameter obtained by the final iteration can reflect a better parameter configuration scheme. Exemplarily, the first preset number of times can be 60 times, 80 times, etc., and can be adjusted according to actual conditions without departing from the concept of this application.
[0223] The second preset number of times refers to the threshold number of times the reference fitness value no longer changes during performance testing and fitness evaluation. It is understood that when the reference fitness value no longer changes, it indicates that the genetic algorithm has achieved the same reference fitness value while optimizing the configured parameters as much as possible. At this point, if the parameters are further iterated, the same reference fitness value will still be achieved, so the iteration can be stopped. The second preset number of times can be determined based on actual conditions. For example, the second preset number of times can be determined to be 5, 6, or the like.
[0224] In some embodiments, when configuring multiple target initial parameters to obtain candidate parameters corresponding to each virtual machine in each tested computing server, or configuring multiple target candidate parameters and determining the configured parameters as candidate parameters, a genetic algorithm can be used to update the configuration. Taking configuring multiple target initial parameters to obtain candidate parameters corresponding to each virtual machine in each tested computing server as an example, when configuring the target initial parameters, the target initial parameters can be encoded, for example, each target initial parameter is binary-encoded to obtain a first encoding corresponding to each target initial parameter. Afterwards, the first encoding can be selected, mutated, and crossover-operated to generate candidate parameters of different configurations to explore more possible parameter combinations, and based on the different candidate parameters obtained, the corresponding reference fitness value is recalculated.
[0225] It can be understood that when configuring multiple target initial parameters to obtain candidate parameters corresponding to each virtual machine in each tested computing server, or configuring multiple target candidate parameters and determining the configured parameters as candidate parameters, parameters with higher fitness values are selected as candidate parameters. Therefore, each time the tested computing server iterates, the fitness value obtained by the final calculation can be used to reflect the imperfection of the candidate parameters of this configuration, thereby guiding the genetic algorithm to optimize in a better direction. That is to say, the genetic algorithm is guided to select, cross, and mutate in the direction that may obtain a higher fitness value to obtain candidate parameters, thereby improving the efficiency and accuracy of the evaluation.
[0226] In some embodiments, the genetic algorithm continuously calculates reference fitness values based on the candidate parameters obtained from the new configuration, selects new target candidate parameters for configuration, and iterates until the number of iterations reaches a first preset number, at which point the iteration stops, and the candidate parameters of the last iteration are determined as the first parameters corresponding to each virtual machine in each tested computing server. Alternatively, when the number of times the reference fitness value no longer changes exceeds a second preset number, the candidate parameters of the last iteration are determined as the first parameters corresponding to each virtual machine in each tested computing server. It is understandable that stopping the iteration when the iteration condition is met can obtain excellent first parameters without wasting computing resources.
[0227] In some embodiments, it may be configured that when the number of iterations of the parameters input by the virtual machine of each tested computing server reaches a first preset number, or when the number of times the reference fitness value no longer changes exceeds a second preset number, the candidate parameters of the last iteration are determined as the first parameters corresponding to each virtual machine in each tested computing server. Alternatively, when the number of iterations of the parameters input by the virtual machine reaches a first preset number, and when the number of times the reference fitness value no longer changes exceeds a second preset number, the candidate parameters of the last iteration are determined as the first parameters corresponding to each virtual machine in each tested computing server.
[0228] It can be understood that in order to improve the efficiency of the performance test of the tested computing server, different first parameters can be run simultaneously by multiple tested computing servers configured with the same hardware parameters to obtain the first fitness value of each tested computing server when the performance test is performed using the first parameters. This eliminates the need to run the first parameters in turn when there is only one tested computing server, thereby saving time for performance testing of the tested computing server and improving the efficiency of performance testing of the tested computing server.
[0229] The computing server under test may be a computing server whose performance is to be evaluated. The computing server may be used to execute computing tasks, has a high-performance processor and memory, and may be used to process a large amount of computing-intensive workloads.
[0230] A virtual machine can be a software implementation of a computer environment. Using virtualization technology, the compute server under test can partition its hardware resources into multiple virtualized containers, each of which can independently run a virtual machine. Each virtual machine is considered an independent computing environment with its own operating system, applications, and resources, allowing different operating systems and applications to run on the compute server under test.
[0231] The first parameter may be a numerical value of a performance parameter or indicator configured for each virtual machine in each tested computing server. For example, the first parameter may include CPU core allocation, memory usage, hard disk storage capacity, and the like. After configuring the first parameter, the virtual machine of the tested computing server may obtain a first fitness value. It is understood that each first parameter may be different to test the performance of the virtual machine of the tested computing server under different parameters.
[0232] The first fitness value can be obtained after the virtual machine of each tested computing server runs the corresponding first parameter. The first fitness value can be a comprehensive indicator used to measure the performance and efficiency level of the virtual machine in a given scenario. Specifically, since the performance of the virtual machine is affected by the hardware and virtualization software of the tested computing server, the first fitness value calculated after the virtual machine runs the first parameter can reflect the performance level of the tested computing server. In other words, the first fitness value can be used as a performance test result of the tested computing server under the first parameter. The higher the first fitness value, the better the performance of the tested computing server.
[0233] In some embodiments, each tested computing server is configured with identical hardware parameters. That is, each tested computing server utilizes hardware components such as the same processor model, the same memory capacity, and the same hard disk type and capacity. By running different first parameters on virtual machines within the tested computing servers with identical hardware parameters, first fitness values for all tested computing servers under different first parameters can be obtained. This enables parallel execution of different first parameters, thereby improving the efficiency of performance testing of the tested computing servers.
[0234] In some embodiments, the computing server under test can be tested based on the SPECVirt test suite. Specifically, SPECVirt is a virtualization performance benchmark suite that can be used to evaluate server performance in a virtualized environment. SPECVirt provides a series of load workloads that simulate real scenarios, such as virtual desktops, databases, Web servers, etc., to evaluate the performance and efficiency of the computing server under test in the virtualized environment. Furthermore, for each virtual machine of the computing server under test, after the virtual machine is configured with the first parameters and running, SPECVirt can be used to regularly monitor the performance indicators of the computing server under test and the running virtual machines, such as CPU utilization, memory usage, disk I / O throughput, network bandwidth, etc. Afterwards, based on the performance indicators obtained from the detection, SPECVirt can calculate the first fitness value of each virtual machine according to a predefined calculation method, such as weighted summation or weighted average. The appropriate calculation method can be selected according to specific business needs and performance indicators.
[0235] In some embodiments, the first fitness value of each tested computing server can be obtained by comprehensively considering various performance indicators and weighting them. For example, the SPECVirt test suite is run on the tested computing server 1, and the following test result data is obtained: CPU performance index: 200; memory performance index: 150; hard disk performance index: 180. If the first fitness value is calculated by weighted average, where the CPU weight is 40%, the memory weight is 30%, and the hard disk weight is 30%. Then the first fitness value can be calculated by the following formula: first fitness value = (200*0.4) + (150*0.3) + (180*0.3) = 80 + 45 + 54 = 179. It is understandable that other algorithms can also be used to calculate the first fitness value, or when the first fitness value is calculated by weighted average, the weight can be appropriately adjusted. The embodiment of the present application does not impose specific restrictions on this.
[0236] By calculating the first fitness value corresponding to each tested computing server in the above manner, the first fitness value of the tested computing server with the same hardware parameters under different first parameters can be obtained at the same time, thereby improving the efficiency of detecting the tested computing server and facilitating the subsequent selection of the first parameter with a high first fitness value for iteration to further test the performance of the tested computing server.
[0237] It can be understood that in order to achieve the effect of optimizing the best, the first parameters can be sorted according to the first fitness values corresponding to the first parameters, and at least one relevant first parameter can be selected based on the results of the sorting, and then the relevant first parameters can be fine-tuned to further determine whether there is a more optimal parameter configuration.
[0238] The relevant first parameter is at least one first parameter with the highest first fitness value. For example, after sorting the first parameters according to their first fitness values, the sorting results are: first parameter 1, first fitness value: 98; first parameter 2, first fitness value: 97; first parameter 3, first fitness value: 97; first parameter 4, first fitness value: 95; ... first parameter n, first fitness value: 83. Then, the first parameters with the top three first fitness values can be selected as the relevant first parameters, i.e., first parameter 1, first parameter 2, and first parameter 3. The specific number or range of the selected relevant first parameters can be determined flexibly.
[0239] The second parameter is obtained by adjusting each related first parameter. Specifically, the related first parameter may include a related first parameter item and a related first parameter value. The related first parameter is adjusted, that is, the related first parameter value is adjusted to obtain the second parameter corresponding to each related first parameter, so that the virtual machine of the computing server under test can subsequently run the second parameter to determine whether the second parameter has a higher fitness value than the related first parameter, thereby continuously trying to obtain the second parameter with a higher fitness value to improve the accuracy of the network performance evaluation.
[0240] It can be understood that in order to evaluate the performance of each tested computing server after the corresponding second parameters are assigned, the corresponding second fitness value can be calculated for each second parameter, so as to obtain the evaluation result of the virtual machine of the tested computing server when the performance test is performed according to the second parameters based on the second fitness value.
[0241] It can be understood that the method for calculating the second fitness value is the same as the method for calculating the first fitness value, which has been explained above and will not be repeated here.
[0242] The second fitness value calculated in the above manner can facilitate determining whether the second parameter needs to be further adjusted subsequently.
[0243] It can be understood that in order to further optimize the second parameter, a preset fitness threshold can be set. When the second fitness values corresponding to the second parameters are greater than the preset fitness threshold, it means that the adjustment effect is good, and you can continue to try to adjust the second parameter in order to obtain a higher fitness value.
[0244] Among them, the preset fitness threshold can be a standard threshold for judging whether the second parameter meets the expected effect. The preset fitness threshold can be a specific fitness value. For example, the fitness value is set to 95. When the second fitness value is greater than 95, it means that the adjustment effect is good, and you can continue to try to adjust the second parameter, and determine the adjusted parameter as the second parameter.
[0245] In some embodiments, instead of judging whether the second parameter adjusted by the algorithm is standard through a preset fitness threshold, it can be judged through a parameter index, that is, whether the second parameter adjusted by the algorithm meets the requirements is judged by the number of items that the second parameter meets the parameter index. The preset item value can be set flexibly, for example, it can be 3, etc. For example, the reference index of the second parameter can be set as follows: QoS (Quality of Service) > 95%, that is, the probability that the system's quality of service reaches more than 95%; the number of CPU cores * the number of virtual machines < the number of CPU cores of the measured computing server; the virtual machine memory * the number of virtual machines < the total memory of the measured computing server, that is, the total memory of all virtual machines on a certain measured computing server needs to be less than the total memory of the measured computing server; the virtual machine storage * the number of virtual machines < the total storage of the measured computing server, that is, the total storage of all virtual machines on a certain measured computing server needs to be less than the total storage of the measured computing server; the virtual machine network bandwidth * the number of virtual machines < the total network card bandwidth of the measured computing server, that is, the sum of the network bandwidth requirements of all virtual machines on the measured computing server needs to be less than the total network card bandwidth of the measured computing server; the number of virtual machines < the number of virtual network cards allowed by DPDK, etc.
[0246] Among them, the calculation method of QoS (Quality of Service) has been elaborated above and will not be repeated here. It should be noted that the above reference indicators can be increased or decreased according to the actual situation. For example, it can be set that when the second parameter meets 3 items (this number of items can be adjusted according to the actual situation) of the parameter indicators, the second parameter that meets the parameter indicators is adjusted, and the adjusted parameter is determined as the second parameter.
[0247] In some embodiments, the preset adjustment times of the second parameter can also be set. When the adjustment times of the second parameter do not exceed the preset adjustment times, the second parameter that meets the parameter indicators is continuously adjusted, and the adjusted parameter is determined as the second parameter.
[0248] It can be understood that in order to compare different second parameters, the second parameter after each adjustment can be repeatedly allocated to the corresponding virtual machine to perform performance testing on the measured computing server corresponding to each virtual machine, and the second fitness value corresponding to each measured computing server can be obtained, so as to determine the second parameter with better performance and the corresponding second fitness value.
[0249] The target fitness value can be the maximum fitness value determined from all the second fitness values, or it can be the maximum fitness value determined by summarizing the first fitness value and the second fitness value. It is understandable that since the target fitness value represents the best performance of the tested computing server, the target fitness value can be used as the performance evaluation result of each tested computing server. Since the hardware configuration of all tested computing servers is the same, as long as the target fitness value is selected from one tested computing server, this target fitness value can represent the performance evaluation results of all tested computing servers.
[0250] Among them, the performance evaluation results can be the results of quantifying and analyzing the performance of the tested computing server under the second parameter, that is, under a specific workload. The performance evaluation results may include but are not limited to comprehensive evaluation scores in terms of processor performance, memory usage, storage speed, network throughput, etc.
[0251] In some embodiments, a simulated annealing algorithm may be used to adjust the second parameter. Specifically, when each second fitness value is greater than a preset fitness threshold, the second parameter may be randomly adjusted to the corresponding encoding value according to a preset adjustment step size. The specific adjustment method has been discussed above and is not further described here. The adjustment operation may be terminated until any second fitness value is less than the preset fitness threshold, and the second parameter being adjusted may be restored to the second parameter corresponding to the previous moment.
[0252] In some embodiments, when the second fitness values calculated by all the tested computing servers during the simulated annealing algorithm are less than the preset fitness threshold, the second fitness values and the first fitness values can be aggregated, and the largest fitness value among all the first fitness values and the second fitness values can be selected as the target fitness value, and the largest target fitness value can be used as the performance evaluation result of each tested computing server. In some embodiments, the embodiments of the present application obtain a first parameter corresponding to each virtual machine in each tested computing server, and perform a performance test on the virtual machine of each tested computing server according to the first parameter to obtain a first fitness value corresponding to each tested computing server, wherein each tested computing server is configured with the same hardware parameters; determine at least one related first parameter in the first parameter according to the first fitness value, and adjust each related first parameter to obtain a second parameter corresponding to each related first parameter; assign each second parameter to the corresponding virtual machine to perform a performance test on the tested computing server corresponding to each virtual machine to obtain a second fitness value corresponding to each tested computing server; when each second fitness value is greater than a preset fitness threshold, adjust each second parameter and determine the adjusted parameter as the second parameter; repeatedly assign each second parameter to the corresponding virtual machine to perform a performance test on the tested computing server corresponding to each virtual machine to obtain a second fitness value corresponding to each tested computing server; until any second fitness value is less than the preset fitness threshold, determine the maximum target fitness value in the second fitness value as the performance evaluation result of each tested computing server. In this way, it is possible to simultaneously conduct performance tests on different parameters through multiple tested computing servers configured with the same hardware parameters. The fitness value of each tested computing server can represent the fitness value of all tested computing servers, which greatly improves the efficiency of network performance evaluation. At the same time, the present application can determine the parameters of the better configuration through the fitness value of each tested computing server, thereby screening out the parameters with poor configuration; for the parameters of the better configuration obtained by screening, adjustments are made under the condition that they are greater than the preset fitness threshold, thereby gradually optimizing the performance of the parameters, trying to obtain a parameter combination with a higher advantage, and automatically calculating the fitness value after each adjustment, so that the final fitness value can more accurately reflect the performance of the tested computing server. In summary, the present application can improve the efficiency and accuracy of network performance evaluation.
[0253] See also Figure 4 The embodiment of the present application further provides a network performance evaluation device that can implement the above-mentioned network performance evaluation method. The network performance evaluation device includes:
[0254] an acquisition module 41 configured to acquire first parameters corresponding to each virtual machine in each tested computing server, and perform a performance test on the virtual machine of each tested computing server based on the first parameters to obtain a first fitness value corresponding to each tested computing server, wherein each tested computing server is configured with the same hardware parameters;
[0255] an adjustment module 42, configured to determine at least one related first parameter from the first parameters according to the first fitness value, and adjust each related first parameter to obtain a second parameter corresponding to each related first parameter;
[0256] An allocating module 43 is configured to allocate each second parameter to a corresponding virtual machine, perform a performance test on a tested computing server corresponding to each virtual machine, and obtain a second fitness value corresponding to each tested computing server;
[0257] a comparison module 44, configured to adjust each second parameter when each second fitness value is greater than a preset fitness threshold, and determine the adjusted parameter as the second parameter;
[0258] A testing module 45 is configured to repeatedly assign each second parameter to a corresponding virtual machine and perform a performance test on a tested computing server corresponding to each virtual machine to obtain a second fitness value corresponding to each tested computing server;
[0259] The determination module 46 is configured to determine the maximum target fitness value among the second fitness values as the performance evaluation result of each tested computing server until any second fitness value is less than a preset fitness threshold.
[0260] In some embodiments, the acquisition module is further configured to:
[0261] Obtaining initial parameters corresponding to each virtual machine in each tested computing server, and performing performance testing on the virtual machine of each tested computing server based on the initial parameters to obtain an initial fitness value corresponding to each tested computing server;
[0262] Determining a plurality of target initial parameters from the initial parameters based on the initial fitness value, and configuring the plurality of target initial parameters to obtain candidate parameters corresponding to each virtual machine in each tested computing server;
[0263] Perform performance testing on the virtual machine of each tested computing server according to the candidate parameters to obtain a reference fitness value corresponding to each tested computing server;
[0264] Determining a plurality of target candidate parameters from the candidate parameters based on the reference fitness value, configuring the plurality of target candidate parameters, and determining the configured parameters as candidate parameters;
[0265] Repeatedly perform performance tests on the virtual machines of each tested computing server based on the candidate parameters to obtain a reference fitness value corresponding to each tested computing server;
[0266] When the number of iterations of the parameters input by the virtual machine reaches a first preset number, or when the reference fitness value no longer changes for more than a second preset number of times, the candidate parameters of the last iteration are determined as the first parameters corresponding to each virtual machine in each tested computing server.
[0267] In some embodiments, the acquisition module is further configured to:
[0268] Sort the initial parameters according to their initial fitness values to obtain a sorting result;
[0269] Selecting a plurality of target initial parameters from the initial parameters based on the sorting result, and encoding all the target initial parameters to obtain a first code for representing each target initial parameter;
[0270] Selecting a first candidate code from the first code based on the first selection range, and selecting a second candidate code from the first code based on the second selection range;
[0271] Select at least one second candidate code to perform code adjustment to obtain a third candidate code;
[0272] The first candidate code and the third candidate code are decoded to obtain candidate parameters corresponding to each virtual machine in each tested computing server.
[0273] In some embodiments, the target initial parameter includes a target initial parameter item and a target initial parameter value, and the acquisition module is further configured to:
[0274] Obtaining the total number of virtual machines in all the tested computing servers, and determining the encoding length corresponding to each target initial parameter item in the target initial parameter based on the total number of virtual machines;
[0275] Based on the coding length, each target initial parameter value is binary-coded to obtain the coding value corresponding to each target initial parameter value;
[0276] For each target initial parameter, the code values corresponding to the corresponding target initial parameter values are sequentially concatenated to obtain a first code for representing the target initial parameter.
[0277] In some embodiments, the acquisition module is further configured to:
[0278] Taking each second candidate code as a matrix row, a configuration matrix corresponding to the second candidate code is generated;
[0279] Randomly select at least one matrix row, and for each matrix row, perform a negation operation on the code value in the matrix row to obtain a variant code;
[0280] Randomly selecting at least one matrix row pair therefrom, and for each matrix row pair, exchanging the code values of the first matrix row and the second matrix row to obtain a cross code, wherein each matrix row pair includes a first matrix row and a second matrix row;
[0281] The variation coding and cross coding are taken as the third candidate coding.
[0282] In some embodiments, the detection device of the network performance evaluation device further includes a reduction module, which is configured to:
[0283] Get the preset fitness reduction ratio;
[0284] When a reference fitness value is less than a preset fitness threshold, the fitness value less than the preset fitness value is multiplied by the fitness reduction ratio to obtain an adjusted reference fitness value.
[0285] In some embodiments, the adjustment module is further configured to:
[0286] Obtaining a first code of a related first parameter;
[0287] For each relevant first parameter, determining at least one relevant first parameter item to be adjusted, and determining a relevant code value corresponding to the relevant first parameter item from the first code;
[0288] Obtaining a preset adjustment step size and adjusting the relevant coding value according to the adjustment step size;
[0289] The first code whose relevant code value has been adjusted is decoded to obtain a second parameter corresponding to each relevant first parameter.
[0290] In some embodiments, the adjustment module is further configured to:
[0291] Obtaining at least one access code value from the first code corresponding to each relevant first parameter; wherein the access code value indicates whether the processor core within the relevant first parameter needs to access the corresponding memory across non-uniform memory access nodes;
[0292] When the processor core within the first parameter representing the access code value accesses the corresponding memory, it is necessary to cross the non-uniform memory access node, then the access code value is modified;
[0293] The first code of the modified access code value is decoded to obtain a second parameter corresponding to each related first parameter.
[0294] In some embodiments, the third aspect of the embodiments of the present application proposes a computer device, which includes a memory and a processor, the memory stores a computer program, and when the processor executes the computer program, it implements the network performance evaluation method of any one of the embodiments of the first aspect of the present application.
[0295] In some embodiments, the fourth aspect of the embodiments of the present application proposes a computer-readable storage medium, which stores a computer program. When the computer program is executed by a processor, it implements the network performance evaluation method of any one of the embodiments of the first aspect of the present application.
[0296] The specific implementation of the network performance evaluation device is basically the same as the specific embodiment of the network performance evaluation method described above, and will not be repeated here. Under the premise of meeting the requirements of the embodiment of this application, the network performance evaluation device can also be provided with other functional modules to implement the network performance evaluation method described in the above embodiment.
[0297] The present application also provides a computer device comprising a memory and a processor, wherein the memory stores a computer program, and the processor implements the above-mentioned network performance evaluation method when executing the computer program. The computer device can be any intelligent terminal including a tablet computer, an in-vehicle computer, or the like.
[0298] See also Figure 5 , Figure 5 The hardware structure of a computer device according to another embodiment is shown. The computer device includes:
[0299] The processor 51 may be implemented as a general-purpose CPU (Central Processing Unit), a microprocessor, an application-specific integrated circuit (ASIC), or one or more integrated circuits, and is used to execute relevant programs to implement the technical solutions provided in the embodiments of the present application.
[0300] The memory 52 can be implemented in the form of a read-only memory (ROM), a static storage device, a dynamic storage device, or a random access memory (RAM). The memory 52 can store an operating system and other application programs. When the technical solutions provided in the embodiments of this specification are implemented through software or firmware, the relevant program codes are stored in the memory 52 and are called by the processor 51 to execute the network performance evaluation method of the embodiments of this application.
[0301] Input / output interface 53, used to implement information input and output;
[0302] Communication interface 54, used to implement communication interaction between this device and other devices, which can be achieved through wired means (such as USB, network cable, etc.) or wireless means (such as mobile network, WiFi, Bluetooth, etc.);
[0303] bus 55 , which transmits information between the various components of the device (e.g., processor 51 , memory 52 , input / output interface 53 , and communication interface 54 );
[0304] The processor 51 , the memory 52 , the input / output interface 53 and the communication interface 54 are connected to each other in communication within the device via a bus 55 .
[0305] An embodiment of the present application further provides a computer-readable storage medium, which stores a computer program. When the computer program is executed by a processor, the above-mentioned network performance evaluation method is implemented.
[0306] The memory, as a non-transient computer-readable storage medium, can be used to store non-transient software programs and non-transient computer executable programs. In addition, the memory may include a high-speed random access memory and may also include a non-transient memory, such as at least one disk storage device, a flash memory device, or other non-transient solid-state storage device. In some embodiments, the memory may optionally include a memory remotely arranged relative to the processor, and these remote memories may be connected to the processor via a network. Examples of the above-mentioned network include, but are not limited to, the Internet, an intranet, a local area network, a mobile communication network, and combinations thereof.
[0307] The embodiments described in the embodiments of this application are intended to more clearly illustrate the technical solutions of the embodiments of this application and do not constitute a limitation on the technical solutions provided by the embodiments of this application. Those skilled in the art will appreciate that with the evolution of technology and the emergence of new application scenarios, the technical solutions provided in the embodiments of this application are also applicable to similar technical problems.
[0308] Those skilled in the art will understand that the technical solutions shown in the figures do not constitute a limitation on the embodiments of the present application, and may include more or fewer steps than shown in the figures, or a combination of certain steps, or different steps.
[0309] The device embodiments described above are merely illustrative. The units described as separate components may or may not be physically separate, i.e., they may be located in one place or distributed across multiple network units. Some or all of the modules may be selected based on actual needs to achieve the objectives of this embodiment.
[0310] Those skilled in the art will appreciate that all or some of the steps in the methods, systems, and functional modules / units in the devices disclosed above may be implemented as software, firmware, hardware, or appropriate combinations thereof.
[0311] The terms "first", "second", "third", "fourth", etc. (if any) in the specification of the present application and the above-mentioned drawings are used to distinguish similar objects and are not necessarily used to describe a specific order or sequential order. It should be understood that the data used in this way can be interchangeable where appropriate, so that the embodiments of the present application described herein can be implemented in an order other than those illustrated or described herein. In addition, the terms "including" and "having" and any variations thereof are intended to cover non-exclusive inclusions, for example, a process, method, system, product or device that includes a series of steps or units is not necessarily limited to those steps or units clearly listed, but may include other steps or units that are not clearly listed or inherent to these processes, methods, products or devices.
[0312] It should be understood that in this application, "at least one (item)" and "several" refer to one or more, and "plurality" refers to two or more. "And / or" is used to describe the association relationship of associated objects, indicating that three relationships may exist. For example, "A and / or B" can mean: only A exists, only B exists, and A and B exist at the same time, where A and B can be singular or plural. The character " / " generally indicates that the previous and next associated objects are in an "or" relationship. "At least one of the following items" or similar expressions refers to any combination of these items, including any combination of single items or plural items. For example, at least one of a, b or c can mean: a, b, c, "a and b", "a and c", "b and c", or "a and b and c", where a, b, c can be single or multiple.
[0313] In the several embodiments provided in this application, it should be understood that the disclosed systems and methods can be implemented in other ways. For example, the system embodiments described above are merely illustrative. For example, the division of the above units is merely a logical function division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be an indirect coupling or communication connection through some interfaces, devices or units, which can be electrical, mechanical or other forms.
[0314] The units described above as separate components may or may not be physically separate, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of these units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
[0315] In addition, the functional units in the various embodiments of the present application may be integrated into a single processing unit, or each unit may exist physically separately, or two or more units may be integrated into a single unit. The aforementioned integrated units may be implemented in the form of hardware or software functional units.
[0316] If the integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of the present application, or the part that contributes to the prior art, or all or part of the technical solution can be embodied in the form of a software product, which is stored in a storage medium and includes multiple instructions for enabling a computer device (which can be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods of various embodiments of the present application. The aforementioned storage medium includes: various media that can store programs, such as a USB flash drive, a mobile hard disk, a read-only memory (ROM), a random access memory (RAM), a magnetic disk or an optical disk.
[0317] The preferred embodiments of the present invention are described above with reference to the accompanying drawings, but are not intended to limit the scope of the present invention. Any modifications, equivalent substitutions, and improvements made by those skilled in the art without departing from the scope and essence of the present invention should be within the scope of the present invention.
Claims
1. A network performance evaluation method, characterized in that: The method comprises: Obtaining first parameters corresponding to each virtual machine in each tested computing server, and performing a performance test on the virtual machine of each tested computing server based on the first parameters to obtain a first fitness value corresponding to each tested computing server, wherein each tested computing server is configured with the same hardware parameters, and the first fitness value is a comprehensive indicator used to measure the performance and efficiency level of the virtual machine in a given scenario; Determining at least one related first parameter from the first parameters according to the first fitness value, and adjusting each of the related first parameters to obtain a second parameter corresponding to each of the related first parameters; Allocating each of the second parameters to the corresponding virtual machine, performing a performance test on the tested computing server corresponding to each of the virtual machines, and obtaining a second fitness value corresponding to each of the tested computing servers, wherein the second fitness value is calculated in the same manner as the first fitness value; When each of the second fitness values is greater than a preset fitness threshold, adjusting each of the second parameters, and determining the adjusted parameters as the second parameters; Repeating the allocation of each second parameter to the corresponding virtual machine to perform a performance test on the tested computing server corresponding to each virtual machine to obtain a second fitness value corresponding to each tested computing server; Until any of the second fitness values is less than the preset fitness threshold, a maximum target fitness value is determined among the second fitness values as the performance evaluation result of each of the tested computing servers.
2. The network performance evaluation method according to claim 1, wherein: The obtaining of the first parameter corresponding to each virtual machine in each tested computing server includes: Obtaining initial parameters corresponding to each virtual machine in each tested computing server, and performing a performance test on the virtual machine of each tested computing server according to the initial parameters to obtain an initial fitness value corresponding to each tested computing server; Determining a plurality of target initial parameters from the initial parameters based on the initial fitness value, and configuring the plurality of target initial parameters to obtain candidate parameters corresponding to each virtual machine in each tested computing server; Performing a performance test on the virtual machine of each of the tested computing servers according to the candidate parameters to obtain a reference fitness value corresponding to each of the tested computing servers; Determining a plurality of target candidate parameters from the candidate parameters based on the reference fitness value, configuring the plurality of target candidate parameters, and determining the configured parameters as the candidate parameters; Repeating the performance test on the virtual machine of each of the tested computing servers according to the candidate parameters to obtain a reference fitness value corresponding to each of the tested computing servers; When the number of iterations of the parameters input by the virtual machine reaches a first preset number, or when the reference fitness value no longer changes for more than a second preset number of times, the candidate parameters of the last iteration are determined as the first parameters corresponding to each of the virtual machines in each of the tested computing servers.
3. The network performance evaluation method according to claim 2, characterized in that: The determining of a plurality of target initial parameters from the initial parameters based on the initial fitness value, and configuring the plurality of target initial parameters to obtain candidate parameters corresponding to each virtual machine in each tested computing server, includes: Sorting the initial parameters according to the initial fitness values of the initial parameters to obtain a sorting result; Selecting a plurality of target initial parameters from the initial parameters based on the sorting result, and encoding all the target initial parameters to obtain a first code for representing each of the target initial parameters; Selecting a first candidate code from the first code based on a first selection range, and selecting a second candidate code from the first code based on a second selection range; selecting at least one of the second candidate codes for code adjustment to obtain a third candidate code; The first candidate code and the third candidate code are decoded to obtain candidate parameters corresponding to each virtual machine in each tested computing server.
4. The network performance evaluation method according to claim 3, characterized in that: The target initial parameters include target initial parameter items and target initial parameter values; The step of encoding all the target initial parameters to obtain a first code for representing each of the target initial parameters includes: Obtaining the total number of virtual machines in all the tested computing servers, and determining the encoding length corresponding to each target initial parameter item in the target initial parameter based on the total number of virtual machines; Based on the encoding length, binary encoding is performed on each of the target initial parameter values to obtain an encoding value corresponding to each of the target initial parameter values; For each of the target initial parameters, the code values corresponding to the corresponding target initial parameter values are sequentially concatenated to obtain a first code for representing the target initial parameter.
5. The network performance evaluation method according to claim 4, characterized in that: The selecting at least one of the second candidate codes to perform code adjustment to obtain a third candidate code includes: Taking each of the second candidate codes as a matrix row, generating a configuration matrix corresponding to the second candidate codes; Randomly selecting at least one matrix row, and for each matrix row, performing a negation operation on the code value in the matrix row to obtain a variant code; arbitrarily selecting at least one matrix row pair from the above, and for each matrix row pair, exchanging the code values of the first matrix row and the second matrix row to obtain a cross code, wherein each matrix row pair includes one first matrix row and one second matrix row; The variant code and the cross code are used as the third candidate code.
6. The network performance evaluation method according to claim 2, characterized in that: The method further comprises: Get the preset fitness reduction ratio; When the reference fitness value is less than the preset fitness threshold, the fitness value less than the preset fitness value is multiplied by the fitness reduction ratio to obtain an adjusted reference fitness value.
7. The network performance evaluation method according to claim 1, wherein: The adjusting each of the related first parameters to obtain a second parameter corresponding to each of the related first parameters includes: Obtaining a first code of the relevant first parameter; For each of the relevant first parameters, determining at least one relevant first parameter item to be adjusted, and determining a relevant code value corresponding to the relevant first parameter item from the first code; Obtaining a preset adjustment step size, and adjusting the relevant code value according to the adjustment step size; The first code whose relevant code value has been adjusted is decoded to obtain a second parameter corresponding to each of the relevant first parameters.
8. The network performance evaluation method according to claim 7, characterized in that: The adjusting each of the related first parameters to obtain a second parameter corresponding to each of the related first parameters further includes: Obtaining at least one access code value from the first code corresponding to each of the related first parameters; wherein the access code value indicates whether the processor core within the related first parameter needs to access the corresponding memory across non-uniform memory access nodes; When the access code value represents that the processor core within the relevant first parameter accesses the corresponding memory and needs to cross the non-uniform memory access node, the access code value is modified; The first code whose access code value has been modified is decoded to obtain a second parameter corresponding to each of the related first parameters.
9. A network performance evaluation device, characterized in that: The device comprises: an acquisition module, configured to acquire first parameters corresponding to each virtual machine in each tested computing server, and perform a performance test on the virtual machine of each tested computing server based on the first parameters to obtain a first fitness value corresponding to each tested computing server, wherein each tested computing server is configured with the same hardware parameters, and the first fitness value is a comprehensive indicator used to measure the performance and efficiency level of the virtual machine in a given scenario; an adjustment module, configured to determine at least one related first parameter from the first parameters according to the first fitness value, and adjust each of the related first parameters to obtain a second parameter corresponding to each of the related first parameters; an allocation module, configured to allocate each second parameter to the corresponding virtual machine, perform a performance test on the tested computing server corresponding to each virtual machine, and obtain a second fitness value corresponding to each tested computing server, wherein the second fitness value is calculated in the same manner as the first fitness value; a comparing module, configured to adjust each of the second parameters when each of the second fitness values is greater than a preset fitness threshold, and determine the adjusted parameters as the second parameters; a testing module, configured to repeatedly assign each of the second parameters to the corresponding virtual machine to perform a performance test on the tested computing server corresponding to each of the virtual machines, and obtain a second fitness value corresponding to each of the tested computing servers; The determination module is configured to determine the maximum target fitness value among the second fitness values as the performance evaluation result of each of the tested computing servers until any of the second fitness values is less than the preset fitness threshold.
10. A computer device, characterized in that: The computer device includes a memory and a processor, the memory stores a computer program, and the processor implements the network performance evaluation method according to any one of claims 1 to 8 when executing the computer program.
11. A computer-readable storage medium storing a computer program, characterized in that: When the computer program is executed by a processor, the network performance evaluation method according to any one of claims 1 to 8 is implemented.
Citation Information
Patent Citations
Test method and device, computer equipment, storage medium and program product
CN115964240A
Multi-dimensional resource joint allocation method and device based on power local convergence network
CN116542482A