A data processing method and related apparatus

By optimizing stress testing through reinforcement learning models, the system automatically adjusts the number of concurrent requests and identifies the optimal and maximum inflection points of the application system. This solves the problems of high testing costs and low efficiency in existing technologies and achieves efficient and accurate determination of the limit capacity.

CN122173342APending Publication Date: 2026-06-09HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD +1
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD
Filing Date
2024-12-06
Publication Date
2026-06-09

Smart Images

  • Figure CN122173342A_ABST
    Figure CN122173342A_ABST
Patent Text Reader

Abstract

This application discloses a data processing method, which includes: performing a stress test on a first application based on a first request volume to obtain a first test result, wherein the first request volume is the concurrent request volume in each time unit of the stress test; determining a first increment based on the first test result; and performing a stress test on the first application based on a second request volume to obtain a second test result, wherein the second request volume is the sum of the first request volume and the first increment. In this way, by determining the concurrent request volume for the next stress test based on the test result of the previous stress test, the problem of inaccurate judgment of the stress test inflection point caused by excessive pressure increase can be effectively avoided, while also solving the problem of excessively long measurement time caused by insufficient pressure increase, thereby improving the efficiency of stress testing.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of computers, and more particularly to a data processing method and related apparatus. Background Technology

[0002] The application system's maximum capacity metrics can intuitively demonstrate its maximum processing capacity under extreme load conditions. Understanding performance bottlenecks under specific conditions helps in targeted optimization and improvement. Currently, a common approach is to perform multiple rounds of stepped stress tests, gradually increasing the load intensity based on a pre-set pressure gradient, and analyzing the test results at each stage to determine whether the application system has reached its performance limits.

[0003] However, since the performance bottlenecks of the application system are unknown before stress testing, how to reduce the testing cost of stress testing has become a key issue that urgently needs to be addressed. Summary of the Invention

[0004] This application provides a data processing method and related apparatus to improve the efficiency of stress testing and reduce testing costs.

[0005] In a first aspect, embodiments of this application provide a data processing method. This method is executed by a data processing device, or by some components (e.g., a processor, chip, or chip system) within the data processing device, or it can be implemented by a logic module or software capable of performing all or part of the functions of the data processing device. In this first aspect and its possible implementations, the method is described as being executed by a data processing device. The method includes:

[0006] A stress test is performed on the first application based on the first request volume to obtain a first test result. The first request volume is the concurrent request volume in each time unit of the stress test. A first increment is determined based on the first test result. A stress test is performed on the first application based on the second request volume to obtain a second test result. The second request volume is the sum of the first request volume and the first increment.

[0007] In this application, the first application needs to be executed repeatedly for stress testing until the target task of the stress test is found, that is, the optimal inflection point and the maximum inflection point of the first application are found. The optimal inflection point refers to the number of concurrent requests that the application system can withstand when it is in its optimal operating state, and the maximum inflection point refers to the maximum number of concurrent requests that the application system can withstand. The initial request volume can be an initial value input by the user, a system default value, or a request volume dynamically adjusted based on the steady-state situation of the previous stage of stress testing.

[0008] Using the above method, the first test result can reflect the running status of the first application under the first request volume. Based on the analysis of the first test result, the increment of concurrent requests in the next stress test can be determined. This can effectively avoid the problem of inaccurate judgment of the stress test inflection point due to excessive pressure increase, or excessive measurement time due to insufficient pressure increase, thereby improving the overall efficiency of stress testing and reducing the cost required to perform stress testing.

[0009] In one possible implementation, a stress test is performed on the first application based on the first request volume to obtain a first test result, including:

[0010] At each of the X time units, stress test the first application based on the first request volume, where X is a positive integer greater than 1;

[0011] When the first application is in a steady state, the first test result is obtained. The first test result includes business performance indicators and system resource indicators for each time unit. This information is usually collected and output on a per-second basis.

[0012] This application reproduces the actual load environment by simulating concurrent requests from users corresponding to a first request volume within the same time period. Specifically, based on X pre-set time units (representing the duration of the load test) and the first request volume, the tested interface of the first application is continuously accessed concurrently. During this process, the system outputs the data stream generated during the load test and records business performance indicators and system resource indicators every second in real time or periodically.

[0013] Regarding the running status of the first application, if it fails to reach a steady state throughout the entire load test, one of the following two situations may occur: First, the system reaches the inflection point of maximum processing capacity and the load test stops; second, the load test running time exceeds the preset upper limit value. In this case, the load test should also be stopped, and the collected data should be analyzed and evaluated.

[0014] In one possible implementation, the running state of the first application is determined based on business performance metrics information over Y consecutive time units, where Y is a positive integer less than or equal to X and greater than 1.

[0015] In this application, business performance metrics (e.g., throughput) are acquired for Y consecutive time units within the duration of a single stress test, and then the data within that interval is subjected to a stationarity test.

[0016] In one possible implementation, determining the first increment based on the first test result includes:

[0017] Based on the business performance metrics and system resource metrics for each time unit, the first increment is obtained through a reinforcement learning model. The reward of the reinforcement learning model is determined based on one or more of the following:

[0018] Business performance metrics information

[0019] System resource indicator information, or,

[0020] The first request quantity adjustment number.

[0021] The adjustment number of the first request volume refers to the stress adjustment during multiple rounds of stress testing. This application uses a reinforcement learning model to process the business performance indicators and system resource indicators at each time point in the first test results, and calculates the additional concurrent requests that should be added in the next stress test phase, i.e., determining the first increment. The stress testing tool is used as the agent of the reinforcement learning model, and the interface of the system under test is used as the environment. The business performance indicators and system resource indicators of the first application are used as the state; each ramp-up pressure gradient is used as the action, and the value range of each generated pressure gradient does not exceed the set maximum gradient per step; the reward of the reinforcement learning model comprehensively considers the business performance indicators, system resource indicators, and the number of stress adjustments of the first application.

[0022] In one possible implementation, the method further includes:

[0023] Obtain first indication information, which is used to indicate that the first increment is less than the first threshold.

[0024] Based on the first instruction, reduce the proportion of adjustment times in the reward of the reinforcement learning model.

[0025] In this application, users can provide feedback on the stress test reports generated by the reinforcement learning model. The model can be fine-tuned based on this user feedback data. For example, if users feel that the stress adjustment gradient is too conservative, resulting in the overall stress test time being too long, the proportion of stress adjustment times in the reward will be reduced to adjust the stress adjustment strategy.

[0026] In one possible implementation, the method also includes:

[0027] Obtain second indication information, which is used to indicate that the first increment is greater than the second threshold.

[0028] Based on the second instruction, the maximum threshold value of the reinforcement learning model's output is reduced.

[0029] In this application, if the user feels that the voltage regulation gradient is too aggressive, resulting in an inaccurate maximum inflection point, the maximum threshold value of the output result is reduced to stabilize the voltage regulation process.

[0030] In one possible implementation, the business performance metrics information includes one or more of the following:

[0031] Number of transactions

[0032] Response time (RT)

[0033] Request success rate, or

[0034] Request error rate.

[0035] For example, each time unit is one second, the number of transactions per time unit is the number of transactions per second (TPS), the response time is the average response time of all concurrent requests within one second, the request success rate is the ratio of the number of requests successfully completed by the first application within a given time period to the total number of requests, and the request error rate is the ratio of the number of requests that the first application failed to complete within a given time period to the total number of requests.

[0036] In one possible implementation, the system resource metrics information includes one or more of the following:

[0037] Central processing unit utilization

[0038] Memory utilization

[0039] Network bandwidth utilization, or

[0040] Disk bandwidth utilization.

[0041] In one possible implementation, the second test result includes the maximum throughput, which is determined based on the fact that the throughput in multiple consecutive test results does not show an upward trend.

[0042] In this application, the optimal inflection point refers to the amount of concurrent requests (i.e., load) that the application system can withstand when it is in its optimal operating state, at which point the application system's throughput reaches its peak. This application determines the system's maximum throughput by detecting the changing trend of throughput (average transactions per second, TPS) in multiple consecutive test results. When the maximum throughput is found, the corresponding number of concurrent requests is the optimal inflection point for the first application.

[0043] In one possible implementation, the second test result also includes the abnormal response time, which is obtained by processing the response time over multiple time units using an anomaly detection algorithm.

[0044] In this application, the maximum inflection point refers to the maximum number of concurrent requests that the application system can handle. When the system approaches its performance limit, the response time for processing requests will increase exponentially due to resource saturation. When an abnormal response time is found, the corresponding number of concurrent requests is the maximum inflection point of the first application.

[0045] Secondly, embodiments of this application provide a data processing apparatus, the apparatus comprising:

[0046] The testing module is used to perform stress testing on the first application based on the first request volume and obtain the first test result. The first request volume is the concurrent request volume in each time unit of the stress test.

[0047] The processing module is used to determine the first increment based on the first test result;

[0048] The testing module is also used to perform stress tests on the first application based on the second request volume to obtain a second test result. The second request volume is the sum of the first request volume and the first increment.

[0049] In one possible implementation, the test module is specifically used for:

[0050] At each of the X time units, stress test the first application based on the first request volume, where X is a positive integer greater than 1;

[0051] When the first application is in a steady state, the first test result is obtained. The first test result includes business performance index information and system resource index information for each time unit.

[0052] In one possible implementation, the running state of the first application is determined based on business performance metrics information over Y consecutive time units, where Y is a positive integer less than or equal to X and greater than 1.

[0053] In one possible implementation, the processing module is specifically used for:

[0054] Based on the business performance metrics and system resource metrics for each time unit, the first increment is obtained through a reinforcement learning model. The reward of the reinforcement learning model is determined based on one or more of the following:

[0055] Business performance metrics information

[0056] System resource indicator information, or,

[0057] The first request quantity adjustment number.

[0058] In one possible implementation, the device further includes:

[0059] The acquisition module is used to acquire first indication information, which indicates that the first increment is less than a first threshold.

[0060] The processing module is also used to reduce the proportion of adjustment times in the reward of the reinforcement learning model based on the first instruction information.

[0061] In one possible implementation, the device further includes:

[0062] The acquisition module is used to acquire second indication information, which indicates that the first increment is greater than the second threshold.

[0063] The processing module is also used to reduce the maximum threshold value of the reinforcement learning model output based on the second instruction information.

[0064] In one possible implementation, the business performance metrics information includes one or more of the following:

[0065] Number of transactions

[0066] Response time

[0067] Request success rate, or

[0068] Request error rate.

[0069] In one possible implementation, the system resource metrics information includes one or more of the following:

[0070] Central processing unit utilization

[0071] Memory utilization

[0072] Network bandwidth utilization, or

[0073] Disk bandwidth utilization.

[0074] In one possible implementation, the second test result includes the maximum throughput, which is determined based on the fact that the throughput in multiple consecutive test results does not show an upward trend.

[0075] In one possible implementation, the second test result also includes the abnormal response time, which is obtained by processing the response time over multiple time units using an anomaly detection algorithm.

[0076] Thirdly, embodiments of this application provide a computing device, including: a processor, a memory, and a transceiver. The memory stores computer programs or computer instructions, and the processor is used to call and run the computer programs or computer instructions stored in the memory, causing the processor to perform processing operations as described in the first aspect and any implementation thereof. The transceiver is used to transmit and receive signals, such as implementing the receiving and sending operations as described in the first aspect and any implementation thereof.

[0077] Fourthly, embodiments of this application provide a computing device cluster, including at least one computing device, each computing device including a processor and a memory, the memory storing computer programs or computer instructions, the processor being used to call and run the computer programs or computer instructions stored in the memory, so that the computing device cluster performs the first aspect and any of its optional methods described above.

[0078] Fifthly, embodiments of this application provide a computer-readable storage medium storing a computer program that, when run on a computer, causes the computer to perform the methods described in the first aspect and any of its optional methods.

[0079] Sixthly, embodiments of this application provide a computer program that, when run on a computer, causes the computer to perform the first aspect and any of its optional methods described above.

[0080] In a seventh aspect, this application provides a chip system including a processor for supporting an execution device or training device in implementing the functions involved in the foregoing aspects, such as transmitting or processing data involved in the foregoing methods; or, information. In one possible design, the chip system further includes a memory for storing program instructions and data necessary for the execution device or training device. This chip system may be composed of chips or may include chips and other discrete devices.

[0081] The technical effects of the second, third, fourth, fifth, and sixth aspects of this application can be understood in conjunction with the technical effects of the first aspect and any implementation thereof. Attached Figure Description

[0082] To more clearly illustrate the technical solutions in the embodiments of this application, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the accompanying drawings described below are only some embodiments of this application. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.

[0083] Figure 1A schematic diagram of a data processing apparatus provided in an embodiment of this application;

[0084] Figure 2 A stress testing system architecture diagram provided in this application embodiment;

[0085] Figure 3 A schematic diagram of a stress test process provided in an embodiment of this application;

[0086] Figure 4 This is a schematic flowchart of a data processing method provided in an embodiment of this application;

[0087] Figure 5 This is a schematic diagram of the optimal inflection point identification process provided in the embodiments of this application;

[0088] Figure 6 This is a schematic diagram of the maximum inflection point identification process provided in an embodiment of this application;

[0089] Figure 7 This is a schematic diagram of the SPOT algorithm flow.

[0090] Figure 8 This is a schematic diagram of the steady-state determination process provided in the embodiments of this application;

[0091] Figure 9 This is a schematic diagram of the adaptive gradient process provided in an embodiment of this application;

[0092] Figure 10 A schematic diagram of the evaluation results output by an embodiment of this application;

[0093] Figure 11 This is a schematic diagram of the structure of a data processing device provided in an embodiment of this application;

[0094] Figure 12 A schematic diagram of the structure of a computing device provided in an embodiment of this application;

[0095] Figure 13 This is a schematic diagram of the structure of a computing device cluster provided in an embodiment of this application;

[0096] Figure 14 This is another schematic diagram of the structure of a computing device cluster provided in an embodiment of this application;

[0097] Figure 15 This is a schematic diagram of the structure of a chip provided in an embodiment of this application. Detailed Implementation

[0098] The technical solutions of the embodiments of this application will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of this application, and not all embodiments. Based on the embodiments of this application, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of this application.

[0099] The terms “first,” “second,” “third,” “fourth,” etc. (if present) in the specification, claims, and accompanying drawings of this application are used to distinguish similar objects and are not necessarily used to describe a particular order or sequence. It should be understood that such data can be interchanged where appropriate so that embodiments of the application described herein can be implemented, for example, in orders other than those illustrated or described herein. Furthermore, the terms “comprising” and “having,” and any variations thereof, are intended to cover a non-exclusive inclusion; for example, a process, method, system, product, or apparatus that comprises a series of steps or units is not necessarily limited to those steps or units explicitly listed, but may include other steps or units not explicitly listed or inherent to such processes, methods, products, or apparatus.

[0100] First, some terms used in the embodiments of this application will be explained to facilitate understanding by those skilled in the art.

[0101] (1) Reinforcement learning (RL)

[0102] Reinforcement learning is a machine learning method that focuses on how an agent learns through trial and error to take optimal actions in its interactions with the environment, aiming to maximize cumulative rewards. However, because the label of the "correct action" cannot be obtained beforehand, the network cannot be optimized by calculating the error between actions and the "correct action." Training in reinforcement learning is achieved through iterative interaction with the environment.

[0103] (2) Limit capacity index

[0104] Testing the limit capacity metrics of an application system typically requires obtaining the system's optimal inflection point and maximum inflection point.

[0105] The optimal inflection point refers to the maximum number of concurrent requests (i.e., load) that an application system can handle when it is in its optimal operating state, at which point the system's throughput reaches its peak. This application determines the system's maximum throughput by detecting the changing trend of the application system's transactions per second (TPS). When the throughput reaches its maximum value, the corresponding number of concurrent requests is the system's optimal inflection point. Therefore, once the throughput stops increasing, the first point where it no longer rises is the optimal inflection point, thus transforming the problem of identifying the optimal inflection point into the problem of analyzing the throughput trend of time-series data.

[0106] The maximum inflection point refers to the maximum number of concurrent requests an application system can handle. When the system approaches its performance limit, the response time (RT) increases exponentially due to resource saturation. This application identifies the maximum inflection point by detecting response time anomalies and identifying the presence of a significant number of RT outliers. This transforms the detection of the maximum inflection point into the problem of detecting response time anomalies in time-series data.

[0107] Please see Figure 1 , Figure 1 This is a schematic diagram of the structure of a data processing device, such as... Figure 1 As shown, the data processing device 100 includes a testing module 101 and a processing module 102. Furthermore, the data processing device 100 can also provide a client 201 to enable interaction with a user 200 (such as a designer).

[0108] In this embodiment, client 201 can be, for example, a web browser provided by data processing device 100; or, client 201 can be an application running on a user terminal. User 200 can use client 201 to request stress testing of an object to be tested from data processing device 100. The object to be tested can be, for example, a software application or service deployed on a network, or an object such as a system, device, or component connected to the network. In this embodiment, the specific implementation of the object to be tested is not limited. Specifically, user 200 can use client 201 to generate a stress test request for the object to be tested. The stress test request includes indication information of the object to be tested, such as the application programming interface (API) and Internet protocol (IP) address of the object to be tested. Then, client 201 can send the stress test request to data processing device 100. Test module 101 performs stress testing on the object to be tested by simulating a load environment (e.g., including concurrent requests per second and duration). Processing module 102 is responsible for obtaining and analyzing the test results generated by test module 101, and then generating an evaluation report. Ultimately, the evaluation report was presented to user 200 via client 201.

[0109] In one possible implementation, the data processing device 100 further includes an acquisition module (not shown in the figure), which is used to acquire parameters such as initial concurrency, risk probability, and success rate threshold set by the user, as well as the user 200's feedback on the final evaluation report.

[0110] It is worth noting that, Figure 1 The specific structure of the data processing device 100 shown is only one implementation example. In other possible implementations, the data processing device 100 may include more functional modules to support the data processing device in performing more other functions; or, the functional division of the various modules in the data processing device 100 is not limited to Figure 1 As shown in the example, multiple modules of the data processing device 100 can be merged into one module, or some modules in the data processing device 100 can be split into multiple modules. This embodiment does not limit the specific structure of the data processing device to... Figure 1 Example shown.

[0111] As examples, the data processing device 100 can be deployed in the cloud to provide users with cloud services for stress testing. In this case, the data processing device 100 can be implemented, for example, by a computing device or cluster of computing devices in the cloud. Alternatively, the data processing device 100 can be deployed locally to provide users with local stress testing services.

[0112] In practical applications, the aforementioned data processing device 100 can be implemented through software or through hardware.

[0113] Data processing device 100, as an example of a software functional unit, may include code running on a computing instance. The computing instance may include at least one of a host, a virtual machine, and a container. Further, the aforementioned computing instance may be one or more. For example, data processing device 100 may include code running on multiple hosts / virtual machines / containers. It should be noted that the multiple hosts / virtual machines / containers used to run the code may be distributed in the same region or in different regions. Further, the multiple hosts / virtual machines / containers used to run the code may be distributed in the same availability zone (AZ) or in different AZs, each AZ including one or more geographically proximate data centers. Typically, a region may include multiple AZs.

[0114] Similarly, multiple hosts / virtual machines / containers used to run this code can be distributed within the same Virtual Private Cloud (VPC) or across multiple VPCs. Typically, a VPC is set up within a region. Communication between two VPCs within the same region, as well as between VPCs in different regions, requires a communication gateway to be set up within each VPC to enable interconnection between VPCs.

[0115] As an example of a hardware functional unit, the data processing device 100 may include at least one computing device, such as a server. Alternatively, the data processing device 100 may be implemented using a central processing unit (CPU), an application-specific integrated circuit (ASIC), or a programmable logic device (PLD). The PLD may be a complex programmable logical device (CPLD), a field-programmable gate array (FPGA), a generic array logic (GAL), a data processing unit (DPU), a neural network processing unit (NPU), a system-on-chip (SoC), an offload card, an accelerator card, or any combination thereof.

[0116] The data processing device 100 includes multiple computing devices that can be distributed within the same region or in different regions. Similarly, the multiple computing devices included in the data processing device 100 can be distributed within the same Availability Zone (AZ) or in different AZs. Likewise, the multiple computing devices included in the data processing device 100 can be distributed within the same Virtual Private Cloud (VPC) or in multiple VPCs. These multiple computing devices can be any combination of computing devices such as servers, ASICs, PLDs, CPLDs, FPGAs, GALs, DPUs, NPUs, SoCs, offloading cards, and accelerator cards.

[0117] Current stress testing processes typically employ multi-round, tiered stress testing. Testers need to pre-set the stress gradient for each stage, concurrently access the tested interfaces of the target application, and preset maximum concurrency to prevent resource overload. However, since the performance bottlenecks of the tested interfaces are unknown, multiple trials and adjustments may be required during testing, leading to high resource consumption, long testing times, and consequently, high costs per test. Furthermore, if the target application contains multiple tested interfaces, testers need to set the stress gradient and maximum concurrency for each interface separately. This not only increases manpower costs but also, due to a lack of accurate performance data, may result in inaccurate parameters, affecting the reliability of test results and subsequent optimization decisions.

[0118] Please see Figure 2 , Figure 2 This application provides an architecture diagram for a stress testing system. The system framework includes core functional modules such as the front-end, executor, data service, and algorithm service, all deployed on a server. Specifically:

[0119] Frontend: As the interface through which users interact with the system, the frontend is responsible for receiving user input parameters (such as the initial number of requests, risk probability, and success rate threshold) and displaying the system's output results. Simultaneously, the frontend is also responsible for collecting user feedback on the output results for subsequent optimization and adjustments.

[0120] Executor: This module is responsible for applying stress tests to the application system's request interface (i.e., the interface under test) to simulate concurrent access in real-world scenarios.

[0121] Data Service: The data service module is responsible for receiving response data from the tested interface of the actuator and summarizing and organizing it. It collects business performance metrics (such as TPS, RT, and error rate) and system resource metrics (such as CPU utilization, memory utilization, network bandwidth utilization, and disk utilization). Simultaneously, the data service also calls the algorithm service to conduct in-depth analysis of the tested interface's operational status.

[0122] Algorithm Service: The algorithm service module is responsible for real-time monitoring of the operational status of the interface under test. During stress testing, it determines whether the stress has reached a steady state and decides on the adjustment strategy for the number of concurrent requests in the next stage accordingly. It identifies the optimal inflection point and the concurrent request volume corresponding to the maximum inflection point of the system.

[0123] like Figure 3 As shown, Figure 3 This is a schematic diagram of the process for stress testing the first application in an embodiment of this application.

[0124] The primary purpose of stress testing is to determine the optimal and maximum inflection points of the application system. After initiating stress testing, the system requests the tested interface based on specified concurrent load and reports real-time test data. Analysis of the test data determines the system's operational status under the current load phase, further identifying whether the current load phase represents the optimal or maximum inflection point. If the maximum inflection point has not been reached, the load is gradually increased based on the test results until the system's maximum processing capacity or performance bottleneck is found. Once the maximum inflection point is reached, stress testing is stopped, and corresponding performance tuning and system optimization are performed based on the test results.

[0125] Based on this, this application provides a data processing method, such as... Figure 4 As shown, the data processing method provided in this application embodiment includes the following steps 401-403. This method can be applied to the above... Figure 1 The data processing apparatus 100 shown may also be applied to other suitable apparatuses. The following describes an application... Figure 1 The data processing device 100 shown is used as an example for explanation.

[0126] 401. Perform stress testing on the first application based on the first request volume to obtain the first test result.

[0127] Specifically, the first request volume refers to the number of concurrent requests within each time unit (e.g., 1 second) during a stress test. Figure 2 The executor simulates a real-world load environment by mimicking concurrent user requests within the same timeframe. Based on a pre-set set of X time units (duration) and the initial request volume, it continuously performs concurrent access to the tested interface of the first application. During this process, the executor outputs a load test data stream and collects business performance metrics and system resource metrics per second. These metrics consist of a time series of <timestamp, value> tuples.

[0128] The first application needs to be stress tested multiple times in a loop, and step 401 is one of the stress test processes. The first request volume can be the initial value input by the user, the system default value, or dynamically adjusted according to the steady state of the previous stage of stress testing (if the steady state has not been reached in the previous stage, the stress test will be performed again according to the request volume of the previous stage, and it will be judged whether it is in a steady state in the next time window).

[0129] For example, when the first request volume is 100 and the duration is 60 seconds, the executor simulates 100 concurrent users accessing the tested interface of the first application per second and collects the result data generated after processing these 100 concurrent requests per second. Business performance metrics include transaction throughput per second, response time (used to measure the efficiency of the system in processing requests; the output response time is the average response time of these 100 requests), the number of successful requests and the number of failed requests (or success rate and error rate) within a given time period, etc. System resource metrics include central processing unit (CPU) utilization, memory utilization, network bandwidth utilization, and disk bandwidth utilization, etc.

[0130] In this application, the problem of identifying the optimal inflection point of the first application is transformed into the problem of analyzing the throughput trend of time-series data. Once the maximum throughput is found, the corresponding concurrent request volume is the optimal inflection point of the first application. This application uses the Mann-Kendall test to determine whether the optimal inflection point has occurred.

[0131] like Figure 5 As shown, Figure 5This is a schematic diagram of the optimal inflection point identification process. TPS (throughput) data from multiple recent concurrent phases (e.g., TPS obtained from the previous three rounds of stress testing based on different concurrent request volumes) is obtained. After smoothing the metrics, a Mann-Kendall test is performed. If the test result shows a decreasing or unchanged trend, it indicates that the optimal inflection point has been found.

[0132] Specifically, the Mann-Kendall test is a non-parametric test. Its advantage is that it does not require the samples to follow a certain distribution and is not affected by a few outliers. This project mainly uses the Mann-Kendall method to test the trend of throughput data.

[0133] The Mann-Kendall null hypothesis assumes that the data has no trend, while the alternative hypothesis assumes that the data has a trend—either an upward or downward trend.

[0134] The Mann-Kendall test, applied to time series analysis, identifies potential monotonic trends (rising, falling, or stable) by comparing each data point with its preceding data points. During the test, statistics are compiled for all data points preceding each point in the sequence, counting the number of data points with values ​​smaller and larger than the current point. These statistics are then compared to identify the presence or absence of a trend. The data is listed according to the collection time: x1, x2, ... x n This refers to the data obtained at times 1, 2, ..., n. Each data point (except the first one) is compared to the data points preceding it, and the difference between the two is recorded. A positive difference is recorded as 1, a negative difference as -1, and a difference of 0 as 0. The sum of all differences is recorded using the following formula:

[0135]

[0136] If S is a positive number, it means that the later observations tend to be larger than the previous observations; if S is a negative number, it means that the later observations tend to be smaller than the previous observations.

[0137] For example, when n≥8, the statistic S roughly follows a normal distribution. Without considering the existence of equal data points, its mean E(S)=0 and variance is... Then the statistic S is standardized:

[0138]

[0139] The p-value is calculated by looking up the standard normal distribution table based on the obtained Z-value. The p-value is then compared to a pre-defined significance level α. If the p-value is less than the significance level α, the null hypothesis H0 is rejected, indicating an upward or downward trend in the data. Otherwise, if the p-value is greater than the significance level α, the null hypothesis H0 is accepted, indicating that the data is in a local steady state.

[0140] In practical applications, methods such as the slope method or the Cox-Stuart test can also be used to determine whether the throughput data is in a stable or declining trend; specific methods are not limited here.

[0141] In this application, the problem of identifying the maximum inflection point in the first application is transformed into the problem of detecting response time anomalies in time series data.

[0142] like Figure 6 As shown, Figure 6 This is a schematic diagram of the maximum inflection point identification process. Response times and success rates (or error rates) are obtained at multiple time units. After smoothing the input data, the maximum inflection point can be identified by analyzing either the response time or the success rate (or error rate).

[0143] In existing technologies, if the success rate is lower than a set threshold (or the error rate is higher than a set threshold), the current time point is considered a potentially significant inflection point.

[0144] This application proposes a method to determine the maximum inflection point by combining the SPOT algorithm to detect outliers in response time. Since the maximum inflection point usually refers to the load level at which the system reaches its performance limit, the response time (RT) at this point gradually increases exponentially due to resource consumption. The time point corresponding to the outlier RT is considered a suspicious maximum inflection point.

[0145] Combining the two methods for calculating suspicious inflection points mentioned above, if the number of suspicious maximum inflection points exceeds the set threshold within a recent period (e.g., within 30 seconds), it can be determined that the system has reached its maximum inflection point, and the stress test should be stopped.

[0146] In real-world production environments, system metrics often fluctuate dynamically, potentially rising or falling overall. Therefore, relying on manually setting fixed thresholds is impractical. The SPOT algorithm was proposed to address this issue. It utilizes extreme value theory to dynamically adjust thresholds and detect anomalies at extreme values. Extreme value theory posits that while different things themselves conform to different data distributions, extreme events of different things follow the same distribution, known as the extreme value distribution—the generalized Pareto distribution (GPD). Based on extreme value theory, the SPOT algorithm is applicable to anomaly detection under various data distributions.

[0147] For sequence data X1, … X n , if the data point X i exceeds the initial anomaly threshold z q , X i is called an outlier; if X i exceeds the peak threshold t but does not exceed the initial anomaly threshold z q , X i is called a peak.

[0148] As Figure 7 shown, Figure 7 is a schematic diagram of the SPOT algorithm process. The SPOT algorithm is divided into two stages: initialization calibration and detection.

[0149] In the initialization calibration stage, first calculate the anomaly threshold z q based on the first n values of the entire sequence and preset a peak threshold t according to experience. Values greater than the peak threshold t in the sequence data are called peaks. Among them, the probability of the Pareto distribution P(X > z q ) < q, where q is the risk probability input by the user or the system default. Then use Y i to represent the part of {X1, … X n} that is higher than the peak threshold t, and use Y i to fit the Pareto distribution GPD, thereby updating the anomaly threshold z q .

[0150] In the detection stage, data points greater than z q are considered anomalies and reported; those between z q and t are peaks, used for streaming update of the GPD model and z q , and those less than t are normal data and are not processed.

[0151] In this application, for the test tasks of finding the best inflection point and the maximum inflection point, the tester only needs to configure the success rate threshold (or error rate threshold), risk probability, and initial concurrency, and then can conduct a performance assessment under the relatively safe operation of the application system interface, reducing complex manual operation configurations.

[0152] In one possible implementation, the stress test based on the first request volume did not find the maximum inflection point of the first application.

[0153] In one possible implementation, as Figure 8As shown, during the duration of a single stress test, business performance metrics (e.g., throughput) are acquired for Y consecutive time units. Then, stationarity tests are performed on the data within this interval, such as the ADF (augmented dickey-fuller) stationarity test and the KPSS (kwiatkowski-phillips-schmidt-shin) stationarity test. If both tests pass, it indicates that the throughput data within this interval is stationary, meaning the stress test under the current pressure gradient has reached a stable state. Once the pressure gradient is determined to be stable, the pressure is no longer increased under this gradient; instead, the next pressure gradient is applied. Here, Y is a positive integer less than or equal to X and greater than 1.

[0154] For example, the throughput over the most recent 15 consecutive seconds is used to perform a stability test. If the stability test is passed at the 40th second of the load test, it indicates that the first application is in a stable state. In this case, the current preset 60-second load gradient test can be terminated early, transitioning to the next stage of the load test. The first test result includes the business performance indicators and system resource indicators for each second within those 40 seconds.

[0155] Specifically, the ADF test performs regression analysis on the throughput of time series data, using it as an autoregressive model, and determines whether a unit root exists in the model. If a unit root exists, the series is considered non-stationary; otherwise, it is stationary. The KPSS test, on the other hand, establishes a linear trend model and then performs regression analysis on the throughput of time series data to examine the deviation between the data and the linear model. If the deviation is sufficiently small, the series is considered stationary; otherwise, it is considered non-stationary.

[0156] Regarding the running status of the first application, if it fails to reach a steady state throughout the entire load test, one of the following two situations may occur: First, the system reaches the inflection point of maximum processing capacity and the load test stops; second, the load test running time exceeds the preset upper limit value. In this case, the load test should also be stopped, and the collected data should be analyzed and evaluated.

[0157] In this application, a local steady-state determination algorithm is introduced to optimize the load testing process: the interface pressure is only adjusted when the TPS (transactions per second) of a particular phase reaches a relatively stable state. This mechanism can automatically regulate the load testing duration for specific concurrency phases, thereby ensuring the accuracy and effectiveness of the load testing results.

[0158] 402. Determine the first increment based on the results of the first test.

[0159] In one possible implementation, a reinforcement learning model is used to process the business performance indicators and system resource indicators at each time point in the first test results, and to calculate the amount of concurrent requests that should be increased in the next stress test phase, that is, to determine the first increment.

[0160] like Figure 9 As shown, the modeling of a reinforcement learning model includes an agent, a state, an action, a reward, and an environment. This application uses a stress testing tool as the agent and the interface of the system under test as the environment. The business performance metrics and system resource metrics of the interface under test are used as the state S. t ; Treat each hill climb pressurization gradient as action A t The value range of each generated boost gradient does not exceed the set maximum gradient per step; the reward R is calculated by comprehensively considering the business indicators, system resource indicators, and voltage regulation times of the interface under test. t This allows for the establishment of a reinforcement learning model to achieve adaptive decision-making regarding the ramp-up gradient during stress testing.

[0161] The reinforcement learning model bases its decisions on the current test result (i.e., the current state S). t ) and the reward R obtained from the environment last time t-1 This information is input into the agent. Based on this information, the agent outputs an action A. t (i.e., the pressure gradient). Then, action A... t The action is input into the environment, and the environment provides a reward R for that action. t And the next test result (i.e., the next state S) t+1 ).

[0162] In one possible implementation, the reward R t It conforms to the following formula:

[0163]

[0164] Where t is the number of stress tests, and TPS t RT t and ERR t These represent the average throughput, average response time, and average error rate of multiple time-series data points in this stress test, respectively. b w is a coefficient for business performance indicators. r This is a coefficient representing a system resource metric. TPS Zq and RT Zq These are throughput outliers and response time outliers identified using the SPOT algorithm, respectively. ERR thresholdThe error rate threshold set for the user, where step is the number of voltage regulation cycles and α is the penalty coefficient for the number of voltage regulation cycles step.

[0165] Reward R t The core idea is to maximize throughput (TPS). t Simultaneously control response time (RT) t Error Rate (ERR) t Considering system resources, CPU utilization t Memory utilization (MEM) t Network bandwidth utilization (NET) t Disk bandwidth utilization (IO) t At the same time, minimize the number of voltage regulation cycles.

[0166] 403. Perform stress testing on the first application based on the second request volume to obtain the second test result. The second request volume is the sum of the first request volume and the first increment.

[0167] After obtaining the first increment, the second request volume is determined by combining the first request volume, which is the number of concurrent requests in each time unit of the next stress test.

[0168] In one possible implementation, the second test result includes maximum throughput. Specifically, this is achieved by analyzing multiple consecutive time units to find the critical point where the number of transactions no longer increases significantly. The concurrent request volume corresponding to this critical point is considered the optimal inflection point for the first application.

[0169] In one possible implementation, the second test result includes abnormal response time, which is identified by monitoring multiple time units and finding a significant increase in outlier response times. The corresponding concurrent request volume is considered the maximum inflection point that could lead to a severe deterioration in the performance of the first application.

[0170] like Figure 10 As shown, Figure 10 A schematic diagram of a possible evaluation report output by the data processing device 100. The stress testing process can be divided into three regions as the number of concurrent requests increases:

[0171] Light load zone: As the number of concurrent requests increases, the number of transactions processed per second increases accordingly, and the response time remains relatively stable. When the system load equals the optimal number of concurrent requests ( Figure 10 At 4:00 (in the middle), the number of transactions per second is the most efficient overall with the number of concurrent requests, there is no waste of resources, and requests do not need to wait.

[0172] Medium load zone: When the number of concurrent requests is between the optimal and maximum concurrent requests, the system can continue to work, but the waiting time for requests will be longer.

[0173] Heavy load zone: When the system load exceeds the maximum concurrent request limit ( Figure 10 At 8:00 (midday), the success rate drops rapidly, and the user experience is severely affected.

[0174] Identifying the optimal inflection point helps reduce the waste of computing resources while ensuring that the user experience is not degraded. Identifying the maximum inflection point is of great significance for operations and maintenance personnel to determine system capacity and efficiently configure service guarantee measures such as rate limiting and degradation.

[0175] In one possible implementation, after the adaptive gradient reinforcement learning model is deployed, some users may be dissatisfied with the stress testing results due to differences in user preferences and needs. To address this issue, this application provides a user feedback mechanism. Users can provide feedback on the stress testing reports generated by the system, and the model can then be fine-tuned based on this user feedback data.

[0176] For example, if a user feels that the voltage regulation gradient is too conservative, resulting in an excessively long overall load testing time, they can provide initial feedback. The model can then reduce the proportion of voltage regulation iterations in the reward to adjust the voltage regulation strategy. The updated reward would be:

[0177] R' t =R t –Number of voltage regulation cycles t * Penalty coefficient β

[0178] For example, if a user feels the voltage regulation gradient is too aggressive, leading to inaccurate maximum inflection points, a second indication can be provided, causing the model to lower the maximum threshold value of the output to stabilize the voltage regulation process. The updated reward would be:

[0179] R' t =R t –A t *Penalty coefficient γ

[0180] For example, if a user finds the stress test effective, a third-party instruction can be provided, instructing the model to incorporate the stress test's adjustment decision trajectory into the experience pool for subsequent continuous learning and optimization by the agent.

[0181] This application employs a reinforcement learning model to dynamically determine the adaptive ramp-up gradient. During stress testing, it intelligently decides the ramp-up rate based on the operating status of the interface under test, thereby gradually and accurately approaching the application's performance limits. This effectively avoids problems such as inaccurate judgment of the stress test inflection point due to excessive ramp-up or excessive measurement time due to insufficient ramp-up, effectively improving the efficiency of performance testing and reducing the consumption cost of execution machine resources.

[0182] In addition, the model undergoes continuous online training and optimization based on user feedback to ensure that the adaptive gradient better meets user needs, further enhancing the user experience.

[0183] The methods provided in the embodiments of this application have been described in detail above. Next, the device for performing the above methods provided in the embodiments of this application will be described.

[0184] Please see Figure 11 , Figure 11 This is a schematic diagram of the structure of a data processing device 1100 provided in an embodiment of this application. Figure 11 As shown, the device includes:

[0185] Test module 1101 is used to perform stress testing on the first application based on the first request volume and obtain the first test result. The first request volume is the concurrent request volume in each time unit of the stress test.

[0186] Processing module 1102 is used to determine the first increment based on the first test result;

[0187] The test module 1101 is also used to perform stress testing on the first application based on the second request volume to obtain a second test result. The second request volume is the sum of the first request volume and the first increment.

[0188] In one possible implementation, test module 1101 is specifically used for:

[0189] At each of the X time units, stress test the first application based on the first request volume, where X is a positive integer greater than 1;

[0190] When the first application is in a steady state, the first test result is obtained. The first test result includes business performance index information and system resource index information for each time unit.

[0191] In one possible implementation, the running state of the first application is determined based on business performance metrics information over Y consecutive time units, where Y is a positive integer less than or equal to X and greater than 1.

[0192] In one possible implementation, the processing module 1102 is specifically used for:

[0193] Based on the business performance metrics and system resource metrics for each time unit, the first increment is obtained through a reinforcement learning model. The reward of the reinforcement learning model is determined based on one or more of the following:

[0194] Business performance metrics information

[0195] System resource indicator information, or,

[0196] The first request quantity adjustment number.

[0197] In one possible implementation, the device further includes:

[0198] The acquisition module is used to acquire first indication information, which indicates that the first increment is less than a first threshold.

[0199] The processing module 1102 is also used to reduce the proportion of adjustment times in the reward of the reinforcement learning model according to the first instruction information.

[0200] In one possible implementation, the device further includes:

[0201] The acquisition module is used to acquire second indication information, which indicates that the first increment is greater than the second threshold.

[0202] The processing module 1102 is also used to reduce the maximum threshold value of the output result of the reinforcement learning model according to the second instruction information.

[0203] In one possible implementation, the business performance metrics information includes one or more of the following:

[0204] Number of transactions

[0205] Response time

[0206] Request success rate, or

[0207] Request error rate.

[0208] In one possible implementation, the system resource metrics information includes one or more of the following:

[0209] Central processing unit utilization

[0210] Memory utilization

[0211] Network bandwidth utilization, or

[0212] Disk bandwidth utilization.

[0213] In one possible implementation, the second test result includes the maximum throughput, which is determined based on the fact that the number of transactions over multiple consecutive time units does not show an upward trend.

[0214] In one possible implementation, the second test result also includes the abnormal response time, which is obtained by processing the response time over multiple time units using an anomaly detection algorithm.

[0215] This application also provides a computing device 100. For example... Figure 12As shown, the computing device 100 includes a bus 102, a processor 104, a memory 106, and a communication interface 108. The processor 104, the memory 106, and the communication interface 108 communicate with each other via the bus 102. The computing device 100 can be a server or a terminal device. It should be understood that this application does not limit the number of processors and memories in the computing device 100.

[0216] Bus 102 can be a Peripheral Component Interconnect (PCI) bus or an Extended Industry Standard Architecture (EISA) bus, etc. Buses can be categorized as address buses, data buses, control buses, etc. For ease of representation, Figure 12 The bus 104 may be represented by a single line, but this does not mean that there is only one bus or one type of bus. The bus 104 may include a path for transmitting information between various components of the computing device 100 (e.g., memory 106, processor 104, communication interface 108).

[0217] The processor 104 may include any one or more processors such as a central processing unit (CPU), a graphics processing unit (GPU), a microprocessor (MP), or a digital signal processor (DSP).

[0218] Memory 106 may include volatile memory, such as random access memory (RAM). Processor 104 may also include non-volatile memory, such as read-only memory (ROM), flash memory, hard disk drive (HDD), or solid state drive (SSD).

[0219] The memory 106 stores executable program code, which the processor 104 executes to implement the functions of the aforementioned test module and processing module, thereby realizing the data processing method. In other words, the memory 106 stores instructions for executing the data processing method.

[0220] Alternatively, the memory 106 stores executable code, which the processor 104 executes to implement the functions of the aforementioned path lookup device, thereby implementing the data processing method. That is, the memory 106 stores instructions for executing the data processing method.

[0221] The communication interface 108 uses transceiver modules such as, but not limited to, network interface cards and transceivers to enable communication between the computing device 100 and other devices or communication networks.

[0222] This application also provides a computing device cluster. The computing device cluster includes at least one computing device. The computing device can be a server, such as a central server, an edge server, or a local server in a local data center. In some embodiments, the computing device can also be a terminal device such as a desktop computer, a laptop computer, or a smartphone.

[0223] like Figure 13 As shown, the computing device cluster includes at least one computing device 100. The memory 106 of one or more computing devices 100 in the computing device cluster may store the same instructions for executing data processing methods.

[0224] In some possible implementations, the memory 106 of one or more computing devices 100 in the computing device cluster may also store partial instructions for executing data processing methods. In other words, a combination of one or more computing devices 100 can jointly execute instructions for executing data processing methods.

[0225] It should be noted that the memory 106 in different computing devices 100 within the computing device cluster can store different instructions, each used to execute a portion of the functions of the path query device. That is, the instructions stored in the memory 106 of different computing devices 100 can implement the functions of one or more devices in the test module and processing module.

[0226] In some possible implementations, one or more computing devices in a computing device cluster can be connected via a network. This network can be a wide area network (WAN) or a local area network (LAN), etc. Figure 14 One possible implementation is shown. For example... Figure 14 As shown, two computing devices 100A and 100B are connected via a network. Specifically, they are connected to the network through communication interfaces in each computing device. In this possible implementation, the memory 106 in computing device 100A stores instructions for executing the functions of the test module. Simultaneously, the memory 106 in computing device 100B stores instructions for executing the functions of the processing module.

[0227] It should be understood that Figure 14 The functions of the computing device 100A shown can also be performed by multiple computing devices 100. Similarly, the functions of the computing device 100B can also be performed by multiple computing devices 100.

[0228] This application also relates to a computer storage medium storing a program for signal processing, which, when run on a computer, causes the computer to perform steps as performed by the aforementioned execution device, or causes the computer to perform steps as performed by the aforementioned training device.

[0229] This application also relates to a computer program product that stores instructions that, when executed by a computer, cause the computer to perform steps as performed by the aforementioned execution device, or to perform steps as performed by the aforementioned training device.

[0230] The computing device provided in this application embodiment can specifically be a chip, which includes a processing unit and a communication unit. The processing unit can be, for example, a processor, and the communication unit can be, for example, an input / output interface, pins, or circuits. The processing unit can execute computer execution instructions stored in the storage unit to cause the chip in the execution device to execute the data processing method described in the above embodiments, or to cause the chip in the training device to execute the data processing method described in the above embodiments. Optionally, the storage unit is a storage unit within the chip, such as a register or cache. Alternatively, the storage unit can be a storage unit located outside the chip within the wireless access device, such as a read-only memory (ROM) or other types of static storage devices capable of storing static information and instructions, such as random access memory (RAM).

[0231] For details, please refer to Figure 15 , Figure 15 This is a schematic diagram of the chip provided in an embodiment of this application. The chip can be represented as a neural network processor (NPU) 1500. The NPU 1500 is mounted as a coprocessor on the host CPU, and tasks are assigned by the host CPU. The core part of the NPU is the arithmetic circuit 1503, which is controlled by the controller 1504 to extract matrix data from the memory and perform multiplication operations.

[0232] In some implementations, the arithmetic circuit 1503 internally includes multiple processing engines (PEs). In some implementations, the arithmetic circuit 1503 is a two-dimensional pulsating array. The arithmetic circuit 1503 can also be a one-dimensional pulsating array or other electronic circuitry capable of performing mathematical operations such as multiplication and addition. In some implementations, the arithmetic circuit 1503 is a general-purpose matrix processor.

[0233] For example, suppose we have an input matrix A, a weight matrix B, and an output matrix C. The arithmetic circuit retrieves the corresponding data of matrix B from the weight memory 1502 and caches it in each PE of the arithmetic circuit. The arithmetic circuit retrieves the data of matrix A from the input memory 1501 and performs matrix operations with matrix B. The partial result or the final result of the obtained matrix is ​​stored in the accumulator 1508.

[0234] Unified memory 1506 is used to store input and output data. Weight data is directly transferred to weight memory 1502 via Direct Memory Access Controller (DMAC) 1505. Input data is also transferred to unified memory 1506 via DMAC.

[0235] BIU stands for Bus Interface Unit, which is used for interaction between the AXI bus and the DMAC and the Instruction Fetch Buffer (IFB) 1509.

[0236] The Bus Interface Unit (BIU) 1515 is used by the instruction fetch memory 1509 to fetch instructions from external memory, and also by the memory access controller 1505 to fetch the original data of the input matrix A or the weight matrix B from external memory.

[0237] The DMAC is mainly used to move input data from external memory DDR to unified memory 1506, or to weight data to weight memory 1502, or to input data to input memory 1501.

[0238] The vector computation unit 1507 includes multiple processing units that further process the output of the computation circuit 1503 when necessary, such as vector multiplication, vector addition, exponential operations, logarithmic operations, size comparisons, etc. It is mainly used for computation in non-convolutional / fully connected layers of neural networks, such as Batch Normalization, pixel-level summation, and upsampling of the predicted label plane.

[0239] In some implementations, the vector computation unit 1507 can store the processed output vector in the unified memory 1506. For example, the vector computation unit 1507 can apply a linear function, or a nonlinear function, to the output of the computation circuit 1503, such as linearly interpolating the predicted label plane extracted from the convolutional layer, or, for example, accumulating a vector of values ​​to generate activation values. In some implementations, the vector computation unit 1507 generates normalized values, pixel-level summed values, or both. In some implementations, the processed output vector can be used as an activation input to the computation circuit 1503, for example, for use in subsequent layers of the neural network.

[0240] The instruction fetch buffer 1509 connected to the controller 1504 is used to store the instructions used by the controller 1504;

[0241] Unified memory 1506, input memory 1501, weighted memory 1502, and instruction fetch memory 1509 are all on-chip memories. External memory is proprietary to this NPU hardware architecture.

[0242] The processor mentioned above can be a general-purpose central processing unit, a microprocessor, an ASIC, or one or more integrated circuits used to control the execution of the above program.

[0243] It should also be noted that the device embodiments described above are merely illustrative. The units described 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 the modules can be selected to achieve the purpose of this embodiment according to actual needs. In addition, in the device embodiment drawings provided in this application, the connection relationship between modules indicates that they have a communication connection, which can be implemented as one or more communication buses or signal lines.

[0244] Through the above description of the embodiments, those skilled in the art can clearly understand that this application can be implemented by means of software plus necessary general-purpose hardware, or it can be implemented by special-purpose hardware including application-specific integrated circuits, special-purpose CPUs, special-purpose GPUs, special-purpose memory, special-purpose components, etc. Generally, any function performed by a computer program can be easily implemented by corresponding hardware, and the specific hardware structure used to implement the same function can be diverse, such as analog circuits, digital circuits, or special-purpose circuits. However, for this application, software program implementation is more often the preferred implementation method. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product is stored in a readable storage medium, such as a computer floppy disk, USB flash drive, mobile hard disk, ROM, RAM, magnetic disk, or optical disk, etc., and includes several instructions to cause a computer device (which may be a personal computer, training equipment, or network device, etc.) to execute the methods described in the various embodiments of this application.

[0245] In the above embodiments, implementation can be achieved, in whole or in part, through software, hardware, firmware, or any combination thereof. When implemented in software, it can be implemented, in whole or in part, as a computer program product.

[0246] The computer program product includes one or more computer instructions. When the computer program instructions are loaded and executed on a computer, all or part of the processes or functions described in the embodiments of this application are generated. The computer may be a general-purpose computer, a special-purpose computer, a computer network, or other programmable device. The computer instructions may be stored in a computer-readable storage medium or transmitted from one computer-readable storage medium to another. For example, the computer instructions may be transmitted from one website, computer, training device, or data center to another website, computer, training device, or data center via wired (e.g., coaxial cable, fiber optic, digital subscriber line (DSL)) or wireless (e.g., infrared, wireless, microwave, etc.) means. The computer-readable storage medium may be any available medium that a computer can store or a data storage device such as a training device or data center that integrates one or more available media. The available media may be magnetic media (e.g., floppy disks, hard disks, magnetic tapes), optical media (e.g., DVDs), or semiconductor media (e.g., solid-state drives (SSDs)).

Claims

1. A data processing method, characterized in that, include: A stress test is performed on the first application based on the first request volume to obtain a first test result, wherein the first request volume is the concurrent request volume in each time unit of the stress test; The first increment is determined based on the first test result; The first application is stress-tested based on the second request volume to obtain a second test result, where the second request volume is the sum of the first request volume and the first increment.

2. The method according to claim 1, characterized in that, The stress test performed on the first application based on the first request volume to obtain the first test result includes: In each of the X time units, the first application is stress-tested based on the first request volume, where X is a positive integer greater than 1; When the first application is in a steady state, a first test result is obtained, which includes business performance index information and system resource index information for each time unit.

3. The method according to claim 2, characterized in that, The running status of the first application is determined based on the business performance index information over Y consecutive time units, where Y is a positive integer less than or equal to X and greater than 1.

4. The method according to claim 2 or 3, characterized in that, Determining the first increment based on the first test result includes: Based on the business performance metrics and system resource metrics for each time unit, a first increment is obtained through a reinforcement learning model. The reward of the reinforcement learning model is determined based on one or more of the following: The business performance metrics information, The system resource indicator information, or, The number of times the first request quantity is adjusted.

5. The method according to claim 4, characterized in that, The method further includes: Obtain first indication information, which indicates that the first increment is less than a first threshold. Based on the first instruction, the proportion of the number of adjustments in the reward of the reinforcement learning model is reduced.

6. The method according to claim 4, characterized in that, The method further includes: Obtain second indication information, which is used to indicate that the first increment is greater than the second threshold. Based on the second instruction information, the maximum threshold value of the reinforcement learning model output is reduced.

7. The method according to any one of claims 2-6, characterized in that, The business performance metrics information includes one or more of the following: Number of transactions Response time Request success rate, or Request error rate.

8. The method according to any one of claims 2-7, characterized in that, The system resource indicator information includes one or more of the following: Central processing unit utilization Memory utilization Network bandwidth utilization, or Disk bandwidth utilization.

9. The method according to any one of claims 1-8, characterized in that, The second test result includes the maximum throughput, which is determined based on the fact that the throughput in multiple consecutive test results does not show an upward trend.

10. The method according to any one of claims 1-9, characterized in that, The second test result also includes the abnormal response time, which is obtained by processing the response time of multiple time units using an anomaly detection algorithm.

11. A data processing apparatus, characterized in that, include: The testing module is used to perform stress testing on the first application based on a first request volume and obtain a first test result, wherein the first request volume is the concurrent request volume in each time unit of the stress test; The processing module is used to determine the first increment based on the first test result; The testing module is also used to perform stress testing on the first application based on the second request volume to obtain a second test result, wherein the second request volume is the sum of the first request volume and the first increment.

12. The apparatus according to claim 11, characterized in that, The test module is specifically used for: In each of the X time units, the first application is stress-tested based on the first request volume, where X is a positive integer greater than 1; When the first application is in a steady state, a first test result is obtained, which includes business performance index information and system resource index information for each time unit.

13. The apparatus according to claim 12, characterized in that, The running status of the first application is determined based on the business performance index information over Y consecutive time units, where Y is a positive integer less than or equal to X and greater than 1.

14. The apparatus according to claim 12 or 13, characterized in that, The processing module is specifically used for: Based on the business performance metrics and system resource metrics for each time unit, a first increment is obtained through a reinforcement learning model. The reward of the reinforcement learning model is determined based on one or more of the following: The business performance metrics information, The system resource indicator information, or, The number of times the first request quantity is adjusted.

15. The apparatus according to claim 14, characterized in that, The device further includes: The acquisition module is used to acquire first indication information, which indicates that the first increment is less than a first threshold. The processing module is further configured to reduce the proportion of the number of adjustments in the reward of the reinforcement learning model according to the first indication information.

16. The apparatus according to claim 14, characterized in that, The device further includes: The acquisition module is used to acquire second indication information, which indicates that the first increment is greater than the second threshold. The processing module is further configured to reduce the maximum threshold value of the output result of the reinforcement learning model according to the second instruction information.

17. The apparatus according to any one of claims 12-16, characterized in that, The business performance metrics information includes one or more of the following: Number of transactions Response time Request success rate, or Request error rate.

18. The apparatus according to any one of claims 12-17, characterized in that, The system resource indicator information includes one or more of the following: Central processing unit utilization Memory utilization Network bandwidth utilization, or Disk bandwidth utilization.

19. The apparatus according to any one of claims 11-18, characterized in that, The second test result includes the maximum throughput, which is determined based on the fact that the throughput in multiple consecutive test results does not show an upward trend.

20. The apparatus according to any one of claims 11-19, characterized in that, The second test result also includes the abnormal response time, which is obtained by processing the response time of multiple time units using an anomaly detection algorithm.

21. A computing device, characterized in that, The device includes at least one processor coupled to a memory; The memory is used to store programs or instructions; The at least one processor is used to execute the program or instructions to cause the apparatus to implement the method as described in any one of claims 1 to 10.

22. A computing device cluster, characterized in that, It includes at least one computing device, each computing device including a processor and memory; The processor of the at least one computing device is configured to execute instructions stored in the memory of the at least one computing device to cause the cluster of computing devices to perform the method as described in claims 1-10.

23. A computer storage medium, characterized in that, The computer storage medium stores one or more instructions, which, when executed by one or more computers, cause the one or more computers to perform the operation of the method according to any one of claims 1 to 10.

24. A computer program product, characterized in that, Includes computer-readable instructions that, when executed on a computer device, cause the computer device to perform the method as described in any one of claims 1 to 10.