Communication delay percentile data determination method and device, electronic equipment and medium
By adopting an adaptive dynamic bucketing strategy, the communication latency data bucketing is dynamically adjusted, which solves the problem of resource consumption and computing performance imbalance in the existing technology. It realizes efficient and accurate communication latency percentile data statistics and supports real-time communication quality analysis in scenarios such as intelligent driving systems.
Patent Information
- Application Number
- CN202511130765.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-08-13
- Publication Date
- 2025-11-28
AI Technical Summary
Existing methods for statistical analysis of communication latency struggle to achieve an optimal balance between statistical accuracy, resource consumption, and computational performance. Static bucketing cannot adapt to the dynamic range of latency, leading to resource exhaustion and performance bottlenecks.
An adaptive dynamic bucketing strategy is adopted. By dividing the initial latency data into buckets, an initial latency histogram model is established, and the bucket range is updated when the update condition is met. The buckets are dynamically adjusted to adapt to changes in communication latency data, thereby reducing memory usage and computational overhead.
It achieves real-time bucketing of communication latency data, reduces memory usage, improves computing efficiency, and can efficiently count communication latency percentile data. It supports efficient statistics and accuracy in long-term stress testing scenarios, helping to locate problems and optimize performance.
Smart Images

Figure CN121037262A_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of delay data statistics, and particularly relates to a communication delay percentile data determination method and device, electronic equipment and a medium. BACKGROUND
[0002] The current communication middleware delay statistics method can be divided into offline and online two ways:
[0003] 1. Offline method: the communication receiving side records each communication delay, writes into a file through shared memory or log output, and analyzes offline through a script to output the statistical result.
[0004] 2. Online method: a fixed-length histogram array is created by estimating the delay range, the delay distribution is statically binned, and the percentile is calculated online through cumulative counting. Or, the Digest is to cluster discrete data into multiple centroids, then approximately sort the centroids, and finally obtain the quantile number through interpolation method.
[0005] The existing scheme is difficult to achieve optimal balance among the statistical accuracy, resource occupation (such as CPU (Central Processing Unit, Central Processor) / memory), and real-time performance, and the specific performance is that the static binning cannot adapt to the dynamic range of the delay, the full storage leads to resource exhaustion, and the high-frequency calculation causes performance bottleneck. SUMMARY
[0006] The embodiments of the present application provide a communication delay percentile data determination method, device, electronic equipment and medium to solve the imbalance among the statistical accuracy, memory efficiency and calculation performance of the prior art.
[0007] In order to solve the above technical problems, the embodiments of the present application are implemented as follows:
[0008] In a first aspect, the embodiments of the present application provide a communication delay percentile data determination method, which comprises:
[0009] According to the first communication delay data collected in the specified time window, the initial delay data bin is divided;
[0010] The first communication delay data is classified into the initial delay data bin, and an initial delay histogram model is established according to the communication delay data in the initial delay data bin;
[0011] In a case where it is determined that a histogram model updating condition is reached, according to the collected second communication delay data and the first communication delay data, a bucket range of the initial delay data bucket is updated to obtain a target delay data bucket; the second communication delay data refers to communication delay data collected after the first communication delay data;
[0012] The first communication delay data and the second communication delay data are classified into the target delay data bucket;
[0013] According to the communication delay data in the target delay data bucket, the initial delay histogram model is updated to obtain a target delay histogram model;
[0014] Based on the target delay histogram model, communication delay percentile data is determined.
[0015] Optionally, the initial delay data bucket is divided according to the first communication delay data collected in a specified time window, including:
[0016] Timing is started from a time point of collecting communication delay data, and when the communication delay data collected reaches the specified time window, the first communication delay data collected from the timing time point is obtained;
[0017] A first delay average of the first communication delay data is calculated, and a first delay maximum value in the first communication delay data is obtained;
[0018] According to the first delay average and the first delay maximum value, the initial delay data bucket is divided.
[0019] Optionally, the initial delay data bucket is divided according to the first delay average and the first delay maximum value, including:
[0020] A set multiple of the first delay maximum value is calculated to obtain a first delay target value;
[0021] According to a preset number N of buckets, the first delay average and the first delay target value are divided into N delay data buckets as intervals, and N is a positive integer;
[0022] According to the N delay data buckets and two extreme value overflow buckets, the initial delay data bucket is obtained, and the two extreme value overflow buckets include a bucket less than the first delay average and a bucket greater than the first delay target value.
[0023] Optionally, the determination that the histogram model updating condition is reached includes:
[0024] In a case where a collection duration of communication delay data reaches a set duration period, it is determined that the histogram model updating condition is reached.
[0025] In a case where the data quantity of the communication latency data in the extreme value overflow bucket reaches a data quantity threshold, it is determined that the histogram model update condition is reached.
[0026] Optionally, the updating of the bucket range of the initial latency data bucket according to the collected second communication latency data and the first communication latency data to obtain the target latency data bucket comprises:
[0027] The first latency mean value calculated based on the first communication latency data and the first latency maximum value in the first communication latency data are obtained;
[0028] The first latency mean value and a second latency mean value of the second communication latency data are calculated, and the first latency maximum value and a second latency maximum value in the second communication latency data are obtained;
[0029] The bucket range of the initial latency data bucket is updated according to the second latency mean value and the second latency maximum value to obtain the target latency data bucket.
[0030] Optionally, the updating of the bucket range of the initial latency data bucket according to the second latency mean value and the second latency maximum value to obtain the target latency data bucket comprises:
[0031] A second latency target value is obtained by calculating a set multiple of the second latency maximum value;
[0032] N target latency data buckets are divided according to the second latency mean value and the second latency target value as an interval according to a preset bucket quantity N, and N is a positive integer;
[0033] The target latency data bucket is obtained according to the N target latency data buckets and two extreme value overflow buckets, so as to update the initial latency data bucket to the target latency data bucket, and the two extreme value overflow buckets comprise a bucket smaller than the second latency mean value and a bucket greater than the second latency target value.
[0034] In a second aspect, an embodiment of the present application provides a communication latency percentile data determination apparatus, and the apparatus comprises:
[0035] An initial bucket division module is configured to divide an initial latency data bucket according to first communication latency data collected in a specified time window.
[0036] An initial model establishment module is configured to classify the first communication latency data into the initial latency data bucket, and establish an initial latency histogram model according to communication latency data in the initial latency data bucket.
[0037] a target bucket obtaining module, configured to, in a case where it is determined that the histogram model updating condition is reached, update a bucket range of the initial time delay data bucket according to the collected second communication time delay data and the first communication time delay data, to obtain a target time delay data bucket; the second communication time delay data refers to communication time delay data collected after the first communication time delay data;
[0038] a time delay data categorizing module, configured to categorize the first communication time delay data and the second communication time delay data into the target time delay data bucket;
[0039] a target model obtaining module, configured to update the initial time delay histogram model according to communication time delay data in the target time delay data bucket, to obtain a target time delay histogram model;
[0040] a percentile data determining module, configured to determine communication time delay percentile data based on the target time delay histogram model.
[0041] Optionally, the initial bucket dividing module comprises:
[0042] a first data obtaining unit, configured to start timing from a time point of collecting communication time delay data, and obtain the first communication time delay data collected from the timing time point when the collected communication time delay data reaches the specified time window;
[0043] a time delay value obtaining unit, configured to calculate a first time delay mean value of the first communication time delay data, and obtain a first time delay maximum value in the first communication time delay data;
[0044] an initial bucket dividing unit, configured to divide the initial time delay data bucket according to the first time delay mean value and the first time delay maximum value.
[0045] Optionally, the initial bucket dividing unit comprises:
[0046] a first target value obtaining sub-unit, configured to calculate a set multiple of the first time delay maximum value, to obtain a first time delay target value;
[0047] a first bucket dividing sub-unit, configured to divide, according to a preset number N of buckets, an interval with the first time delay mean value and the first time delay target value into N time delay data buckets, N being a positive integer;
[0048] an initial bucket obtaining sub-unit, configured to obtain the initial time delay data bucket according to the N time delay data buckets and two extreme value overflow buckets, the two extreme value overflow buckets comprising a bucket smaller than the first time delay mean value and a bucket greater than the first time delay target value.
[0049] Optionally, the target bucket obtaining module comprises:
[0050] The first condition determination unit is used to determine the condition for updating the histogram model when the collection duration of communication delay data reaches a set duration period.
[0051] The second condition determination unit is used to determine the condition for updating the histogram model when the amount of communication delay data in the extreme value overflow bucket reaches the data amount threshold.
[0052] Optionally, the target bucket acquisition module includes:
[0053] The first delay value acquisition unit is used to acquire the first delay average value calculated based on the first communication delay data, and the first delay maximum value in the first communication delay data;
[0054] The second delay value acquisition unit is used to calculate the first delay average value and the second delay average value of the second communication delay data, and to acquire the first delay maximum value and the second delay maximum value in the second communication delay data;
[0055] The target bucket acquisition unit is used to update the bucket range of the initial latency data bucket based on the second latency average and the second latency maximum, so as to obtain the target latency data bucket.
[0056] Optionally, the target bucket acquisition unit includes:
[0057] The second target value acquisition subunit is used to calculate a set multiple of the second maximum delay value to obtain the second delay target value;
[0058] The second bucketing subunit is used to divide the target delay data into N buckets based on the second delay average and the second delay target value, where N is a positive integer, according to the preset number of buckets N.
[0059] The target bucket acquisition subunit is used to obtain the target delay data bucket based on N target delay data buckets and two extreme value overflow buckets, so as to update the initial delay data buckets to the target delay data buckets. The two extreme value overflow buckets include: a bucket that is less than the second delay average value and a bucket that is greater than the second delay target value.
[0060] Thirdly, embodiments of this application provide an electronic device, including:
[0061] A memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the computer program, when executed by the processor, implements the communication delay percentile data determination method described in any of the preceding claims.
[0062] Fourthly, embodiments of this application provide a readable storage medium that, when the instructions in the storage medium are executed by the processor of an electronic device, enables the electronic device to execute the communication delay percentile data determination method described in any of the preceding claims.
[0063] In this embodiment, an adaptive dynamic bucketing strategy enables real-time bucketing of communication latency data, eliminating the need for long-term storage and reducing memory consumption. Furthermore, the dynamic bucketing strategy avoids computation on large amounts of communication latency data, improving computational efficiency and achieving efficient and accurate statistics of communication latency percentiles in long-term stress testing scenarios. In actual software iterations and testing, it allows for efficient acquisition of communication latency data between nodes with minimal impact on the system. Moreover, effective communication data aids in problem localization, enabling targeted load and performance optimization, thus improving software development efficiency and quality.
[0064] The above description is merely an overview of the technical solution of this application. In order to better understand the technical means of this application and to implement it in accordance with the contents of the specification, and to make the above and other objects, features and advantages of this application more obvious and understandable, specific embodiments of this application are given below. Attached Figure Description
[0065] To more clearly illustrate the technical solutions of the embodiments of this application, the drawings used in the description of the embodiments of this application will be briefly introduced below. Obviously, the 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.
[0066] Figure 1 A flowchart illustrating the steps of a method for determining communication delay percentile data provided in this application embodiment;
[0067] Figure 2 A schematic diagram of node communication provided in an embodiment of this application;
[0068] Figure 3 A flowchart illustrating the steps of an initial bucket acquisition method provided in this application embodiment;
[0069] Figure 4 A flowchart illustrating the steps of another initial bucket acquisition method provided in this application embodiment;
[0070] Figure 5 A flowchart illustrating the steps of a target bucket acquisition method provided in this application embodiment;
[0071] Figure 6A flowchart illustrating the steps of another target bucket acquisition method provided in this application embodiment;
[0072] Figure 7 A schematic diagram of a middleware latency percentile statistics process based on a dynamic histogram provided in this application embodiment;
[0073] Figure 8 A schematic diagram of a communication delay percentile data determination device provided in an embodiment of this application;
[0074] Figure 9 This is a schematic diagram of the structure of an electronic device provided in an embodiment of this application. Detailed Implementation
[0075] 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, 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.
[0076] Reference Figure 1 The diagram illustrates a flowchart of a method for determining communication delay percentile data according to an embodiment of this application. Figure 1 As shown, the method for determining the percentile data of communication delay may include steps 101, 102, 103, 104, 105 and 106.
[0077] Step 101: Based on the first communication delay data collected within the specified time window, the initial delay data is divided into buckets.
[0078] The embodiments of this application can be applied to scenarios where the delay histogram model is dynamically updated to realize the dynamic calculation of communication delay percentile data.
[0079] Communication latency data refers to the time delay that data takes to travel from the sending end to the receiving end during communication, and it is an important indicator for measuring communication quality.
[0080] A specified time window refers to a pre-defined specific time period used to limit the time range for collecting communication latency data, so as to analyze the communication latency within a specific time period.
[0081] Initial delay data binning refers to dividing the entire delay data range into several consecutive intervals based on the first collected communication delay data. Each interval is called a bin, which is used to initially group and classify the delay data.
[0082] This embodiment can be applied to intelligent driving systems. In intelligent driving systems, algorithm nodes (such as perception, planning, and control modules) interact with each other through middleware (such as communication frameworks like ROS (Robot Operating System) and DDS (Data Distribution Service)). Middleware communication latency refers to the time delay of data transmission between these nodes. Figure 2 As shown, the nodes involved in the intelligent driving system include: perception nodes, fusion nodes, and planning and control nodes. These nodes can communicate using a unified middleware. Latency data is recorded at the communication layer of the middleware, and the middleware at the communication receiving end will uniformly hand over the statistical data to the percentile statistics module for processing. Here, "topic" refers to the channel identifier for data transmission between nodes, and P99 represents the "stability quantification index" of communication latency, meaning that "99% of the communication data latency is less than or equal to this value."
[0083] It is understood that the above examples are merely examples listed to better understand the technical solutions of the embodiments of this application, and are not intended to be the only limitation on the embodiments.
[0084] In this embodiment, communication latency data can be continuously collected until a specified time window closes, to obtain the first communication latency data within the specified time window (e.g., continuously collecting latency data until the 3-minute time window closes, etc.). This data reflects the communication transmission delay within that time period. Initial latency data buckets are then obtained based on the first communication latency data. This implementation process can be combined with... Figure 3 Provide a detailed description.
[0085] Reference Figure 3 The diagram illustrates a flowchart of an initial bucket acquisition method provided in an embodiment of this application. Figure 3 As shown, the initial bucket acquisition method may include steps 301, 302 and 303.
[0086] Step 301: Start timing from the moment when the communication delay data is collected. When the collected communication delay data reaches the specified time window, obtain the first communication delay data collected from the timing moment.
[0087] In this embodiment, timing can begin from the moment when communication delay data is collected (e.g., when node A and node B start communicating and collect communication delay data, this is taken as the start time). When the collected communication delay data reaches a specified time window (i.e., the timing duration reaches the preset "specified time window" duration), the first communication delay data collected from the timing moment is obtained, that is, all communication delay data collected from the timing start time to the window end time is obtained, i.e., the "first communication delay data".
[0088] After obtaining the first communication delay data, proceed to step 302.
[0089] Step 302: Calculate the first average delay value of the first communication delay data and obtain the first maximum delay value in the first communication delay data.
[0090] After obtaining the first communication delay data, the first delay mean of the first communication delay data can be calculated, that is, the arithmetic mean of the "first communication delay data" is obtained, which reflects the overall central tendency of the data. For example, if the first communication delay data is [5ms, 8ms, 10ms], then the mean is (5+8+10) / 3 = 7.67ms.
[0091] Simultaneously, the maximum first delay value can be obtained from the first communication delay data. That is, the largest delay value, or "maximum first delay value," is selected from the "first communication delay data" to determine the extreme boundaries of the data. For example, if the maximum delay in the data is 50ms, then the maximum first delay value is 50ms, etc.
[0092] It is understood that the above examples are merely examples listed to better understand the technical solutions of the embodiments of this application, and are not intended to be the only limitation on the embodiments.
[0093] After obtaining the first average delay and the first maximum delay, proceed to step 303.
[0094] Step 303: Based on the first average delay and the first maximum delay, the initial delay data is divided into buckets.
[0095] After obtaining the first average delay and the first maximum delay, the initial delay data can be divided into buckets based on these values. Specifically, the starting and ending ranges for bucketing can be determined using the "first average delay" and the "first maximum delay". Then, intervals are divided according to the set number of buckets. This implementation process will be illustrated in the following embodiments. Figure 4 A detailed description will not be repeated here.
[0096] The embodiments of this application use bucketing based on the mean and maximum values, which can more reasonably group the first communication delay data, making the initial delay histogram model closer to the actual data distribution.
[0097] Next, combined Figure 4 The method for dividing the initial delay data into buckets is described in detail.
[0098] Reference Figure 4 The diagram illustrates a flowchart of an initial bucket acquisition method provided in an embodiment of this application. Figure 4 As shown, the initial bucket acquisition method includes steps 401, 402 and 403.
[0099] Step 401: Calculate the set multiple of the first maximum delay value to obtain the first delay target value.
[0100] In this embodiment, the set multiplier refers to a pre-set multiplier used to amplify the maximum value of the first delay, which is used to expand the upper limit of the bucket interval and reserve space for high-latency data that may occur later.
[0101] After obtaining the first maximum delay value, a set multiple of the first maximum delay value can be calculated to obtain the first target delay value. That is, the first target delay value = the first maximum delay value × the set multiple.
[0102] After calculating the first delay target value by a set multiple of the first delay maximum value, step 402 is executed.
[0103] Step 402: Based on the preset number of buckets N, divide the latency data into N buckets based on the first latency average and the first latency target value, where N is a positive integer.
[0104] The number of buckets, N, is a pre-defined positive integer used to specify the number of buckets to be divided within the interval from the "first delay mean" to the "first delay target value". It determines the granularity of the bucketing in the core interval (from mean to target value). The larger N is, the smaller the bucket interval and the higher the statistical accuracy, but the greater the computational cost.
[0105] After obtaining the first latency target value, the latency data can be divided into N buckets based on the first latency average and the first latency target value, according to the pre-set number of buckets N. Specifically, the core interval can be determined as [first latency average, first latency target value], and this interval can be divided into N buckets at equal intervals. The width of each bucket is: (target value - average) / N. The bucket boundaries start from the average value and the width is added sequentially. For example: the first bucket: [average, average + width); the second bucket: [average + width, average + 2 × width); ...; the Nth bucket: [average + (N-1) × width, target value]. For example, if the average is 10ms, the target value is 20ms, and N = 5, then the bucket width is (20-10) / 5 = 2ms, and the buckets are [10,12), [12,14), [14,16), [16,18], [18,20], etc.
[0106] It is understood that the above examples are merely examples listed to better understand the technical solutions of the embodiments of this application, and are not intended to be the only limitation on the embodiments.
[0107] After dividing the latency data into N buckets based on the first latency average and the first latency target value according to the pre-set number of buckets N, step 403 is executed.
[0108] Step 403: Based on N delay data buckets and two extreme value overflow buckets, the initial delay data buckets are obtained. The two extreme value overflow buckets include: buckets with delay values less than the first delay average and buckets with delay values greater than the first delay target value.
[0109] Extreme value overflow buckets are special buckets used to contain data that exceeds the core bucket range. They include two types: buckets with latency less than the first average latency: capturing data with latency less than the average latency, and buckets with latency greater than the first target latency: capturing data with latency greater than the target latency.
[0110] After dividing the latency data into N latency data buckets based on the first latency average and the first latency target value, according to the pre-set number of buckets N, the initial latency data buckets can be obtained based on the N latency data buckets and two extreme value overflow buckets. The two extreme value overflow buckets include: buckets with latency values less than the first latency average and buckets with latency values greater than the first latency target value.
[0111] This application's embodiments expand the target value by "setting a multiple," so that the upper limit of the buckets does not depend on the current maximum value of the data, but is based on the amplification of the mean, which can cover higher latency that may occur in the future (such as sudden delays during network congestion). The design of the extreme value overflow bucket allows data to be correctly classified even when it exceeds the core range. For example, when the latency of new data is 30ms (exceeding the target value of 20ms), it will be classified into the right overflow bucket instead of being ignored. Dividing into N buckets with the mean as the core, priority is given to the most likely latency range (near the mean). For example, in real-time communication, most latency is concentrated near the mean. Fine-grained bucketing can accurately capture the latency distribution of normal business scenarios.
[0112] After dividing the initial delay data into buckets based on the first communication delay data collected within the specified time window, step 102 is executed.
[0113] Step 102: Classify the first communication delay data into the initial delay data bucket, and establish an initial delay histogram model based on the communication delay data in the initial delay data bucket.
[0114] The delay histogram model is a mathematical model used to visualize and statistically analyze the distribution of communication delay data. It divides continuous delay data into several discrete "buckets" and counts the frequency of data occurrence in each bucket, thereby presenting the distribution characteristics of delay (such as central tendency, dispersion, and proportion of extreme values).
[0115] After dividing the initial latency data into buckets based on the first communication latency data collected within a specified time window, the first communication latency data can be categorized into the initial latency data buckets, and an initial latency histogram model can be built based on the communication latency data within the initial latency data buckets. Specifically, each latency data point can be traversed: each latency value (e.g., d1, d2, ..., dn) in the "first communication latency data" can be read sequentially. Bucket matching rules: If the latency value d < the first latency mean: it can be assigned to the left extreme value overflow bucket (-∞, mean). If the first latency mean ≤ d ≤ the first latency target value: calculate the position of d in the core bucket and assign it to one of the corresponding N buckets (e.g., if the bucket width is w, then the bucket index is floor((d - mean) / w)). If d > the first latency target value: it can be assigned to the right extreme value overflow bucket (first latency target value, +∞).
[0116] The initial delay histogram model can be established as follows: 1. Initialize the bucket frequency statistics structure: Create a dictionary or array where the key is the bucket interval description (e.g., "[10,15)") and the value is a frequency counter (initially 0). 2. Count the frequency of each bucket: Increment the frequency of each bucket by 1 for each delay data point assigned to it. 3. Generate the model data structure: Integrate the interval ranges and frequencies of all buckets to form a complete statistical result.
[0117] After establishing the initial time delay histogram model, proceed to step 103.
[0118] Step 103: If the conditions for updating the histogram model are met, update the bucket range of the initial delay data bucket based on the collected second communication delay data and the first communication delay data to obtain the target delay data bucket; the second communication delay data refers to the communication delay data collected after the first communication delay data.
[0119] The histogram model update condition can be a pre-defined condition that triggers the histogram model update. When the condition is met, the initial delay histogram model needs to be updated.
[0120] In this example, determining whether the histogram model update condition has been met can include at least one of the following two methods:
[0121] 1. When the collection period of communication latency data reaches the set duration, determine if the histogram model update condition has been met. For example, if the set duration is 4 hours, then an update will be performed every 4 hours.
[0122] 2. When the amount of communication delay data in the extreme value overflow bucket reaches the data volume threshold, the histogram model update condition is determined. That is, if the amount of communication delay data in either of the two extreme value overflow buckets (one less than the mean and one greater than the delay target value) reaches the data volume threshold, the update condition is met.
[0123] The second communication delay data refers to the communication delay data collected after the first communication delay data. That is, the communication delay data collected after the first communication delay data is collected, and it is used to update the initial delay data bucketing and histogram model.
[0124] Target latency data binning refers to the new latency data binning obtained by updating the binning range of the initial latency data bin based on the first and second communication latency data, which can more accurately reflect the distribution of the current communication latency data.
[0125] When the histogram model update condition is met, the bucketing range of the initial latency data buckets is updated based on the collected second and first communication latency data to obtain the target latency data buckets. The second communication latency data refers to the communication latency data collected after the first communication latency data. Specifically, the bucketing range of the initial latency data buckets can be adjusted and updated by combining the first and second communication latency data to obtain the target latency data buckets. This process may involve redetermining the number of buckets, the start and end latency values of each bucket, etc., so that the new buckets can better adapt to the distribution of all data, including new data. The process for obtaining the target latency data buckets can be combined with... Figure 5 The following is a detailed description.
[0126] Reference Figure 5 The diagram illustrates a flowchart of a target bucket acquisition method provided in an embodiment of this application. Figure 5 As shown, the target bucket acquisition method may include steps 501, 502 and 503.
[0127] Step 501: Obtain the first average delay calculated based on the first communication delay data, and the first maximum delay in the first communication delay data.
[0128] In this embodiment, the first average delay calculated based on the first communication delay data and the first maximum delay value in the first communication delay data can be obtained.
[0129] Step 502: Calculate the first average delay value and the second average delay value of the second communication delay data, and obtain the first maximum delay value and the second maximum delay value in the second communication delay data.
[0130] Then, the first average delay and the second average delay of the second communication delay data can be calculated. That is, the average of the first average delay and the second communication delay data is calculated to obtain the second average delay. The maximum value of the first delay and the maximum value of the second delay in the second communication delay data are then obtained.
[0131] Step 503: Update the bucket range of the initial delay data bucket based on the second average delay and the second maximum delay to obtain the target delay data bucket.
[0132] After obtaining the second average delay and the second maximum delay, the initial delay data bucketing range can be updated based on the second average delay and the second maximum delay to obtain the target delay data bucketing. This implementation process can be combined with... Figure 6 The following is a detailed description.
[0133] ReferenceFigure 6 The diagram illustrates a flowchart of another target bucket acquisition method provided in an embodiment of this application. Figure 6 As shown, the target bucket acquisition method may include steps 601, 602 and 603.
[0134] Step 601: Calculate the set multiple of the second maximum delay value to obtain the second delay target value.
[0135] In this embodiment, after obtaining the second maximum delay value, a set multiple of the second maximum delay value can be calculated to obtain the second target delay value. That is, the second target delay value = the second maximum delay value × the set multiple.
[0136] Understandably, the setting factor here is the same as the setting factor mentioned in the above embodiments.
[0137] After obtaining the second time delay target value, proceed to step 602.
[0138] Step 602: Based on the preset number of buckets N, divide the target delay data into N buckets based on the second delay average and the second delay target value, where N is a positive integer.
[0139] After obtaining the second delay target value, the data can be divided into N target delay data buckets based on the second delay average and the second delay target value, according to the pre-set number of buckets N, where N is a positive integer.
[0140] Step 603: Based on the N target latency data buckets and two extreme value overflow buckets, obtain the target latency data buckets, and update the initial latency data buckets to the target latency data buckets. The two extreme value overflow buckets include: buckets less than the second latency average and buckets greater than the second latency target value.
[0141] After obtaining N target latency data buckets, the target latency data buckets can be obtained based on the N target latency data buckets and two extreme value overflow buckets, so as to update the initial latency data buckets to target latency data buckets. The two extreme value overflow buckets include: buckets that are less than the second latency average and buckets that are greater than the second latency target value.
[0142] Understandably, the method of dividing the target latency data into buckets is similar to the method of dividing the initial latency data into buckets in the above embodiment, and will not be described again in this embodiment.
[0143] This application embodiment dynamically updates the bucket range based on the mean and maximum value to ensure that the bucket interval can follow the changes in data distribution and avoid statistical bias caused by fixed buckets.
[0144] After obtaining the target latency data buckets, proceed to step 104.
[0145] Step 104: Classify the first communication delay data and the second communication delay data into the target delay data bucket.
[0146] After obtaining the target latency data buckets, the first communication latency data and the second communication latency data can be classified into the target latency data buckets.
[0147] Step 105: Update the initial delay histogram model based on the communication delay data in the target delay data bucket to obtain the target delay histogram model.
[0148] Furthermore, the initial latency histogram model can be updated based on the communication latency data within the target latency data bucket to obtain the target latency histogram model. The update logic can be as follows: when the bucket range is updated from the initial bucket (based on the first set of data) to the target bucket (integrating the second set of data), all historical data (first + second communication latency data) need to be reclassified into the new bucket, and the count of each bucket needs to be recalculated to form a new histogram model, i.e., the target latency histogram model.
[0149] After obtaining the target time delay histogram model, proceed to step 106.
[0150] Step 106: Determine the communication delay percentile data based on the target delay histogram model.
[0151] After obtaining the target latency histogram model, the communication latency percentile data can be determined based on the target latency histogram model. Specifically, at the end of the node process, the latest dynamic histogram model can be obtained, and the required percentile data or complete histogram model data can be calculated and written to a file for further data processing and analysis or rendering and visualizing the communication health status between nodes.
[0152] In a practical implementation, the calculation process for the percentile data of communication delay can be as follows:
[0153] I. Prerequisites and Data Preparation.
[0154] 1. Target delay histogram model structure.
[0155] The target delay histogram model includes: several target delay data buckets and two extreme value overflow buckets.
[0156] 2. Percentile target value setting: Determine the percentile to be calculated (such as p50, p90, etc.), and denot it as percentile (value range 0 to 100).
[0157] II. Implementation Steps: Calculation Process of Percentile Data
[0158] 1. Calculate the total data volume and the target cumulative count
[0159] Total data volume: Sum up the counts of all buckets (including N target buckets and two overflow buckets), denoted as total_count
[0160] Target cumulative count: Calculate the target quantity to be accumulated according to the percentile. The formula is: target_count = total_count × (percentile / 100). For example, when calculating P90, target_count = total_count × 0.9
[0161] 2. Accumulate the count in the order of buckets and locate the percentile interval
[0162] Bucket sorting: Sort all buckets in ascending order of intervals. The order is: lower - bound overflow bucket → target bucket 1 (the smallest interval) → target bucket 2 → … → target bucket N → upper - bound overflow bucket
[0163] Initialization of cumulative count: Start from the smallest bucket and initialize the current cumulative count current_count = 0
[0164] Traverse the buckets to accumulate the count: Traverse each bucket in turn<所给内容中此标签在原文重复,推测有误,若按规则保留原文则为 <所给内容中此标签在原文重复,推测有误,若按规则保留原文则为
[0165] 3. Handle boundary cases
[0166] Case 1: The percentile is in the lower - bound overflow bucket
[0167] If current_count ≥ target_count when traversing to the lower - bound overflow bucket, the percentile value is the upper limit of the lower - bound overflow bucket (i.e., the second delay mean value)
[0168] Case 2: The percentile is in the upper - bound overflow bucket
[0169] If current_count < target_count after traversing all buckets (only possible when the data is extremely concentrated in the upper - bound overflow bucket), the percentile value is the lower limit of the upper - bound overflow bucket (i.e., the second delay target value)
[0170] Case 3: The percentile is in a certain target bucket
[0171] If the target bucket is a middle target bucket, proceed to the next interpolation calculation
[0172] 4. Linear interpolation to calculate the exact percentile value
[0173] Target bucket interval parameters
[0174] Let the target bucket range be [low, high), the count of this bucket be bucket_count, and the cumulative count of the previous bucket be prev_count.
[0175] Interpolation formula: The percentile value is calculated as follows:
[0176] The cumulative count within each bucket = target_count - prev_count.
[0177] Percentile value within a bucket = (Total count within the bucket) / bucket_count percentile_value = low + (high - low) × Percentile value within the bucket
[0178] The embodiments of this application efficiently and accurately calculate various communication latency percentile data based on the target latency histogram model, providing quantitative indicators for scenarios such as network performance evaluation and service quality monitoring.
[0179] Next, combined Figure 7 The implementation process of the above scheme is described as follows. For example... Figure 7 As shown, the above process can be divided into three stages:
[0180] Phase 1: Initial Feature Extraction (Pre-record). The goal is to collect initial time-delay data and calculate core statistics (mean, maximum value) to prepare for subsequent histogram initialization.
[0181] 1. Continuously collect latency data.
[0182] The latency value of a single communication session can be collected in real time or periodically from network communication links, devices, or systems to obtain the raw latency data sequence.
[0183] 2. Waiting for data input.
[0184] The system continuously checks for new delay data (or for reaching the acquisition conditions).
[0185] Branch: "Yes": Proceed to the next step (check if 3 minutes have elapsed). "No": Continue waiting.
[0186] 3. Has 3 minutes elapsed?: Calculate the time window from the start of data collection to the current moment to determine if 3 minutes have elapsed. If yes, calculate the mean (mean_latency) and maximum (max_latency) within the window. If not, return to the "Waiting for data input" step and continue accumulating data.
[0187] 4. Calculate mean_latency and maximum_latency. That is, calculate the mean and maximum latency data within a 3-minute window.
[0188] Phase 2: Dynamic Histogram Initialization (Reset). Objective: Based on the initial statistics, define the core interval of the histogram and create the first time-delay distribution histogram.
[0189] 1. Scope of division: The core interval is [mean_latency, 4×max_latency].
[0190] Logical approach: Left boundary of the core interval: take the initial mean (mean_latency). Right boundary of the core interval: take 4 × max_latency.
[0191] 2. Create a histogram: Subdivide the core interval into several buckets, implicitly including two overflow buckets. Specifically, using [mean_latency, 4×max_latency] as the core interval, divide it into num+2 buckets (including the extreme value overflow bucket). Classify the initial window data according to the bucket intervals to establish an initial statistical model.
[0192] Phase 3: Bucket Adaptive Update. Objective: As the system runs, continuously collect new data and periodically and trigger-based adjust the histogram bucket range to ensure that the statistical model adapts to long-term changes in time delay distribution.
[0193] 1. Continuously record new data.
[0194] 2. Two-condition triggered update (periodic, overflow triggered).
[0195] (1) Condition A: 4-hour cycle trigger: Determine whether the 4-hour cycle trigger has been reached, that is, count the time from "historical initialization completed" to the current time and determine whether 4 hours have been reached.
[0196] If so, proceed to "Calculate new range → Map old data → Shift coordinate axis to the right".
[0197] If not, then check condition B.
[0198] (2) Condition B: Data exceeds max_latency. That is, whether the amount of data in the extreme value bucket exceeds the extreme value bucket data size threshold. If yes, proceed to trigger right shift remapping. If no, return to the "continuously record new data" step.
[0199] 3. Periodically triggered bucket adjustment.
[0200] Calculate the new range: new max = 4 * prev4_max. That is, calculate the maximum delay within the "first 4 periods (or first 4 hours)", denoted as: prev4_max.
[0201] At the same time, calculate the new mean (i.e., the new left boundary) and the new right boundary = 4 × prev4_max.
[0202] Map the old data to the new buckets and perform a rightward shift of the coordinate axes.
[0203] In practice, mean_latency and max_latency can be recalculated based on the latest 12-hour data; the bucket range can be expanded by [new mean, 4 × new maximum value], and the coordinate axis can be shifted to the right (old data is migrated to the new bucket proportionally).
[0204] 4. Bucket adjustment triggered by overflow.
[0205] Triggering a right shift and remapping: Similar to step 3 above, this involves mapping old data to the new bucket and performing a right shift of the coordinate axis. Remapping recent data (or all data) to the new bucket and updating the count.
[0206] The term "proportional migration" means that when the bucket range expands from [old mean, 4 × old maximum value] to [new mean, 4 × new maximum value], the latency value of the old data will be remapped to the new bucket according to the proportional relationship between the old and new bucket intervals. For example, if the old bucket interval length is L1 and the new bucket interval length is L2, and the position of the old data value x in the old bucket is p, then its position in the new bucket will be p × (L2 / L1), thus determining its corresponding new bucket.
[0207] 5. System in operation (cyclic steady state).
[0208] After the bucketing adjustment is completed, the system returns to "continuously recording new data" and enters the next round of "condition judgment → update (or not update)" loop to ensure that the histogram dynamically adapts to latency changes.
[0209] This application's embodiments achieve efficient reuse of historical data and low resource consumption through interval proportional mapping. In actual software iteration and testing, it can efficiently obtain communication latency data between nodes with minimal impact on the system. Effective communication data can help in problem localization, targeted load and performance optimization, and improve software development efficiency and quality.
[0210] The communication latency percentile data determination method provided in this application, through an adaptive dynamic bucketing strategy, enables real-time bucketing of communication latency data, eliminating the need for long-term storage and reducing memory consumption. Simultaneously, the dynamic bucketing strategy avoids computation on large amounts of communication latency data, improving computational efficiency and achieving efficient and accurate statistics of communication latency percentiles in long-term stress testing scenarios. In actual software iteration and testing, it can efficiently obtain communication latency data between nodes with minimal impact on the system. Furthermore, effective communication data can aid in problem localization, enabling targeted load and performance optimization, thereby improving software development efficiency and quality.
[0211] Reference Figure 8 The diagram shows a schematic representation of a communication delay percentile data determination device provided in an embodiment of this application. Figure 8 As shown, the communication delay percentile data determination device 800 may include the following modules:
[0212] The initial bucketing module 810 is used to divide the initial delay data into buckets based on the first communication delay data within the specified time window.
[0213] The initial model building module 820 is used to classify the first communication delay data into the initial delay data bucket and build an initial delay histogram model based on the communication delay data in the initial delay data bucket.
[0214] The target bucket acquisition module 830 is used to update the bucket range of the initial latency data bucket based on the collected second communication latency data and the first communication latency data when it is determined that the histogram model update condition has been met, so as to obtain the target latency data bucket; the second communication latency data refers to the communication latency data collected after the first communication latency data;
[0215] The latency data classification module 840 is used to classify the first communication latency data and the second communication latency data into the target latency data bucket;
[0216] The target model acquisition module 850 is used to update the initial delay histogram model based on the communication delay data in the target delay data bucket to obtain the target delay histogram model.
[0217] The percentile data determination module 860 is used to determine the communication delay percentile data based on the target delay histogram model.
[0218] Optionally, the initial bucketing module includes:
[0219] The first data acquisition unit is used to start timing from the moment when the communication delay data is collected, and to acquire the first communication delay data collected from the timing moment when the collected communication delay data reaches the specified time window.
[0220] The delay value acquisition unit is used to calculate the first delay average value of the first communication delay data and to acquire the first delay maximum value in the first communication delay data;
[0221] The initial bucketing unit is used to divide the initial delay data into buckets based on the first delay average and the first delay maximum.
[0222] Optionally, the initial bucketing unit includes:
[0223] The first target value acquisition subunit is used to calculate a set multiple of the first maximum delay value to obtain the first delay target value;
[0224] The first bucketing subunit is used to divide the time delay data into N buckets based on the first time delay average and the first time delay target value, where N is a positive integer, according to the preset number of buckets N.
[0225] The initial bucketing acquisition subunit is used to obtain the initial delay data buckets based on N delay data buckets and two extreme value overflow buckets. The two extreme value overflow buckets include: a bucket with a delay value less than the first delay average value and a bucket with a delay value greater than the first delay target value.
[0226] Optionally, the target bucket acquisition module includes:
[0227] The first condition determination unit is used to determine the condition for updating the histogram model when the collection duration of communication delay data reaches a set duration period.
[0228] The second condition determination unit is used to determine the condition for updating the histogram model when the amount of communication delay data in the extreme value overflow bucket reaches the data amount threshold.
[0229] Optionally, the target bucket acquisition module includes:
[0230] The first delay value acquisition unit is used to acquire the first delay average value calculated based on the first communication delay data, and the first delay maximum value in the first communication delay data;
[0231] The second delay value acquisition unit is used to calculate the first delay average value and the second delay average value of the second communication delay data, and to acquire the first delay maximum value and the second delay maximum value in the second communication delay data;
[0232] The target bucket acquisition unit is used to update the bucket range of the initial latency data bucket based on the second latency average and the second latency maximum, so as to obtain the target latency data bucket.
[0233] Optionally, the target bucket acquisition unit includes:
[0234] The second target value acquisition subunit is used to calculate a set multiple of the second maximum delay value to obtain the second delay target value;
[0235] The second bucketing subunit is used to divide the target delay data into N buckets based on the second delay average and the second delay target value, where N is a positive integer, according to the preset number of buckets N.
[0236] The target bucket acquisition subunit is used to obtain the target delay data bucket based on N target delay data buckets and two extreme value overflow buckets, so as to update the initial delay data buckets to the target delay data buckets. The two extreme value overflow buckets include: a bucket that is less than the second delay average value and a bucket that is greater than the second delay target value.
[0237] The communication latency percentile data determination device provided in this application embodiment, through an adaptive dynamic bucketing strategy, can achieve real-time bucketing of communication latency data, eliminating the need for long-term storage of communication latency data and reducing its memory footprint. Simultaneously, the dynamic bucketing strategy avoids computation on large amounts of communication latency data, improving computational efficiency and achieving efficient and accurate statistics of communication latency percentiles in long-term stress testing scenarios. In actual software iteration and testing, it can efficiently obtain communication latency data between nodes with minimal impact on the system. Furthermore, effective communication data can aid in problem localization, enabling targeted load and performance optimization, thereby improving software development efficiency and quality.
[0238] This application provides an electronic device, including: a memory, a processor, and a computer program stored in the memory and executable on the processor. When the computer program is executed by the processor, it implements the above-described method for determining communication delay percentile data.
[0239] Figure 9 A schematic diagram of the structure of an electronic device 900 according to an embodiment of the present invention is shown. Figure 9As shown, the electronic device 900 includes a central processing unit (CPU) 901, which can perform various appropriate actions and processes according to computer program instructions stored in read-only memory (ROM) 902 or loaded from storage unit 908 into random access memory (RAM) 903. The RAM 903 can also store various programs and data required for the operation of the electronic device 900. The CPU 901, ROM 902, and RAM 903 are interconnected via bus 904. An input / output (I / O) interface 905 is also connected to bus 904.
[0240] Multiple components in electronic device 900 are connected to I / O interface 905, including: input unit 906, such as keyboard, mouse, microphone, etc.; output unit 907, such as various types of monitors, speakers, etc.; storage unit 908, such as disk, optical disk, etc.; and communication unit 909, such as network card, modem, wireless transceiver, etc. Communication unit 909 allows electronic device 900 to exchange information / data with other devices through computer networks such as the Internet and / or various telecommunications networks.
[0241] The various processes and handling described above can be executed by processing unit 901. For example, the methods of any of the above embodiments can be implemented as computer software programs, which are tangibly contained in a computer-readable medium, such as storage unit 908. In some embodiments, part or all of the computer program can be loaded and / or installed on electronic device 900 via ROM 902 and / or communication unit 909. When the computer program is loaded into RAM 903 and executed by CPU 901, one or more actions of the methods described above can be performed.
[0242] This application provides a computer-readable storage medium storing a computer program. When executed by a processor, the computer program implements the various processes of the above-described communication delay percentile data determination method embodiment and achieves the same technical effect. To avoid repetition, it will not be described again here. The computer-readable storage medium may be a read-only memory (ROM), a random access memory (RAM), a magnetic disk, or an optical disk, etc.
[0243] It should be noted that, in this document, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Unless otherwise specified, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes that element.
[0244] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods of the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better 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 storage medium (such as ROM / RAM, magnetic disk, optical disk) and includes several instructions to cause a terminal (which may be a mobile phone, computer, server, air conditioner, or network device, etc.) to execute the methods described in the various embodiments of this application.
[0245] The embodiments of this application have been described above with reference to the accompanying drawings. However, this application is not limited to the specific embodiments described above. The specific embodiments described above are merely illustrative and not restrictive. Those skilled in the art can make many other forms under the guidance of this application without departing from the spirit and scope of the claims, and all of these forms are within the protection scope of this application.
[0246] Those skilled in the art will recognize that the units and algorithm steps of the various examples described in conjunction with the embodiments disclosed in this application can be implemented in electronic hardware, or a combination of computer software and electronic hardware. Whether these functions are implemented in hardware or software depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered beyond the scope of this application.
[0247] Those skilled in the art will understand that, for the sake of convenience and brevity, the specific working processes of the systems, devices, and units described above can be referred to the corresponding processes in the foregoing method embodiments, and will not be repeated here.
[0248] In the embodiments provided in this application, it should be understood that the disclosed apparatus and methods can be implemented in other ways. For example, the apparatus embodiments described above are merely illustrative. For instance, the division of units is only a logical functional division, and in actual implementation, there may be other division methods. For example, multiple units or components may be combined or integrated into another system, or some features may be ignored or not executed. Furthermore, the coupling or direct coupling or communication connection shown or discussed may be through some interfaces; the indirect coupling or communication connection between apparatuses or units may be electrical, mechanical, or other forms.
[0249] The units described as separate components may or may not be physically separate. 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 units can be selected to achieve the purpose of this embodiment according to actual needs.
[0250] In addition, the functional units in the various embodiments of this application can be integrated into one processing unit, or each unit can exist physically separately, or two or more units can be integrated into one unit.
[0251] If the aforementioned functions are implemented as software functional units and sold or used as independent products, they can be stored in a computer-readable storage medium. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, or a portion of the technical solution, can be embodied in the form of a software product. This computer software product is stored in a storage medium and includes several instructions to cause a computer device (which may be a personal computer, server, or network device, etc.) to execute all or part of the steps of the methods described in the various embodiments of this application. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, ROM, RAM, magnetic disks, or optical disks.
[0252] The above description is merely a specific embodiment of this application, but the scope of protection of this application is not limited thereto. Any variations or substitutions that can be easily conceived by those skilled in the art within the technical scope disclosed in this application should be included within the scope of protection of this application. Therefore, the scope of protection of this application should be determined by the scope of the claims.
Claims
1. A method for determining percentile data of communication delay, characterized in that, The method includes: Based on the first communication delay data collected within the specified time window, the initial delay data is divided into buckets. The first communication delay data is categorized into the initial delay data bucket, and an initial delay histogram model is established based on the communication delay data in the initial delay data bucket. Once the conditions for updating the histogram model are met, the bucket range of the initial latency data bucket is updated based on the collected second communication latency data and the first communication latency data to obtain the target latency data bucket; the second communication latency data refers to the communication latency data collected after the first communication latency data. The first communication delay data and the second communication delay data are categorized into the target delay data bucket; Based on the communication latency data within the target latency data bucket, update the initial latency histogram model to obtain the target latency histogram model; The communication delay percentile data is determined based on the target delay histogram model.
2. The method according to claim 1, characterized in that, The initial delay data bucketing is obtained based on the first communication delay data collected within a specified time window, including: The timing starts from the moment when the communication delay data is collected, and when the collected communication delay data reaches the specified time window, the first communication delay data collected from the timing moment is obtained. The first average delay value of the first communication delay data is calculated, and the first maximum delay value in the first communication delay data is obtained; The initial delay data is divided into buckets based on the first average delay and the first maximum delay.
3. The method according to claim 2, characterized in that, The step of dividing the initial delay data into buckets based on the first delay average and the first delay maximum includes: Calculate a set multiple of the first maximum delay value to obtain the first delay target value; Based on the pre-set number of buckets N, the latency data is divided into N buckets based on the first latency average and the first latency target value, where N is a positive integer; The initial delay data buckets are obtained based on N delay data buckets and two extreme value overflow buckets. The two extreme value overflow buckets include: a bucket with a delay value less than the first delay average and a bucket with a delay value greater than the first delay target value.
4. The method according to claim 1, characterized in that, The determination of the conditions for updating the histogram model includes: When the collection duration of communication delay data reaches the set duration period, it is determined that the histogram model update condition has been met. When the amount of communication delay data in the extreme value overflow bucket reaches the data amount threshold, it is determined that the histogram model update condition has been met.
5. The method according to claim 1, characterized in that, The step of updating the bucket range of the initial latency data bucket based on the collected second communication latency data and the first communication latency data to obtain the target latency data bucket includes: Obtain the first average latency calculated based on the first communication latency data, and the first maximum latency value in the first communication latency data; The first average delay value and the second average delay value of the second communication delay data are calculated, and the first maximum delay value and the second maximum delay value in the second communication delay data are obtained; Based on the second average delay and the second maximum delay, the bucket range of the initial delay data bucket is updated to obtain the target delay data bucket.
6. The method according to claim 5, characterized in that, The step of updating the bucket range of the initial latency data bucket based on the second latency average and the second latency maximum to obtain the target latency data bucket includes: The target value of the second delay is obtained by calculating a set multiple of the maximum value of the second delay. Based on the pre-set number of buckets N, the target latency data is divided into N buckets based on the second latency average and the second latency target value, where N is a positive integer; The target latency data buckets are obtained based on N target latency data buckets and two extreme value overflow buckets, so as to update the initial latency data buckets to the target latency data buckets. The two extreme value overflow buckets include: buckets that are less than the second latency average value and buckets that are greater than the second latency target value.
7. A device for determining communication delay percentile data, characterized in that, The device includes: The initial bucketing module is used to divide the initial delay data into buckets based on the first communication delay data within the specified time window. The initial model building module is used to classify the first communication delay data into the initial delay data bucket and build an initial delay histogram model based on the communication delay data in the initial delay data bucket. The target bucket acquisition module is used to update the bucket range of the initial latency data bucket based on the collected second communication latency data and the first communication latency data when the histogram model update condition is met, so as to obtain the target latency data bucket; the second communication latency data refers to the communication latency data collected after the first communication latency data; The latency data classification module is used to classify the first communication latency data and the second communication latency data into the target latency data bucket; The target model acquisition module is used to update the initial delay histogram model based on the communication delay data in the target delay data bucket to obtain the target delay histogram model. The percentile data determination module is used to determine the communication delay percentile data based on the target delay histogram model.
8. The apparatus according to claim 7, characterized in that, The initial bucketing module includes: The first data acquisition unit is used to start timing from the moment when the communication delay data is collected, and to acquire the first communication delay data collected from the timing moment when the collected communication delay data reaches the specified time window. The delay value acquisition unit is used to calculate the first delay average value of the first communication delay data and to acquire the first delay maximum value in the first communication delay data; The initial bucketing unit is used to divide the initial delay data into buckets based on the first delay average and the first delay maximum.
9. An electronic device, characterized in that, include: A memory, a processor, and a computer program stored in the memory and executable on the processor, wherein the computer program, when executed by the processor, implements the communication delay percentile data determination method according to any one of claims 1 to 6.
10. A readable storage medium, characterized in that, When the instructions in the storage medium are executed by the processor of the electronic device, the electronic device is able to perform the communication delay percentile data determination method according to any one of claims 1 to 6.