A method and system for determining performance bottlenecks
Patent Information
- Application Number
- CN202611150090.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2026-07-31
- Publication Date
- 2026-10-09
- Estimated Expiration
- 2046-07-31
AI Technical Summary
[0005]有鉴于此,本发明的目的在于提供一种性能瓶颈确定方法及系统,改善现有技术方案无法对各协同子模块间的性能数据进行关联及缺乏各层级间详细瓶颈分析的问题,以提高瓶颈识别的精确性
本申请中性能瓶颈确定方法通过获取每个协同子模块在目标测试业务场景下的硬件性能参数,并确定各硬件性能参数对应的评估状态参数,得到多维性能指标集合。其中,多维性能指标集合至少包括IO性能指标、表征协议/缓存效率的目标性能指标以及表征基础资源的基础性能指标。然后基于IO性能指标对应的评估值判断目标测试业务场景是否存在系统瓶颈;并在存在系统瓶颈时,基于各目标性能指标、各基础性能指标对应的评估值判定当前系统瓶颈的类别,输出目标测试业务场景对应的瓶颈报告。基于此,本申请能够改善现有技术方案无法对各协同子模块间的性能数据进行关联及缺乏各层级间详细瓶颈分析的问题,达到提高瓶颈识别精确性的目的。
Smart Images

Figure CN122673069B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of bottleneck analysis technology, and more specifically, to a method and system for determining performance bottlenecks. Background Technology
[0002] With the widespread adoption of high-performance computing and heterogeneous computing architectures, the performance monitoring and optimization of on-chip interconnect networks (CMNs), as a critical communication infrastructure within multi-core processors, has become particularly important. The perf subsystem in the Linux kernel provides a standardized access interface for the CMN performance monitoring unit (PMU), enabling user-space tools to collect and analyze the operational status of the CMN interconnect network.
[0003] In the existing implementation, the kernel registers each node in the on-chip interconnect network (CMN) as an uncore PMU device and exposes event configuration capabilities through the perf_event interface. Users can poll and collect performance counter data from multiple nodes at fixed time intervals, and calculate aggregate metrics such as bandwidth per second, transaction processing rate, or link utilization based on these raw counter data to monitor the operating status of the Mesh network.
[0004] However, the current solution has obvious limitations: on the one hand, it lacks performance data correlation analysis among the various collaborative sub-modules within the on-chip data path collaborative subsystem. Taking the on-chip interconnect network (CMN), memory controller (DDRC), CXL gateway unit, and peripheral interface (PCIe) as examples, the above collaborative sub-modules all adopt independent monitoring mechanisms, making it impossible to draw overall performance evaluation conclusions through a unified statistical model. On the other hand, the existing monitoring granularity can only provide link utilization percentage and basic rate information, lacking fine-grained indicators such as cache access behavior and packet retransmission status, making it difficult to accurately identify the specific causes of system-level performance bottlenecks. Summary of the Invention
[0005] In view of this, the purpose of the present invention is to provide a performance bottleneck determination method and system, which improves the problems of existing technical solutions that cannot correlate performance data between collaborative sub-modules and lack detailed bottleneck analysis between different levels, so as to improve the accuracy of bottleneck identification.
[0006] To achieve the above objectives, the technical solutions adopted in the embodiments of the present invention are as follows: In a first aspect, the present invention provides a method for determining performance bottlenecks, applied to a server, the server including an on-chip data path coordination system, the on-chip data path coordination system including at least a plurality of coordination sub-modules, the method for determining performance bottlenecks including: For any test business scenario, obtain the hardware performance parameters of each collaborative sub-module under the target test business scenario, and determine the evaluation status parameters corresponding to each hardware performance parameter to obtain a multi-dimensional performance indicator set; the evaluation status parameters include the indicator attributes corresponding to the current hardware performance parameters and their evaluation values; the multi-dimensional performance indicator set includes at least IO performance indicators, target performance indicators representing protocol / caching efficiency, and basic performance indicators representing basic resources; Determine whether there are system bottlenecks in the target test business scenario based on the evaluation values corresponding to the IO performance metrics; When system bottlenecks exist, the system determines the type of bottleneck based on the evaluation values of each target performance indicator and each basic performance indicator, and outputs a bottleneck report corresponding to the target test business scenario.
[0007] Optionally, the on-chip data path collaboration system also includes multiple performance monitoring units, each corresponding to a collaboration sub-module. The steps for acquiring the hardware performance parameters of each collaboration sub-module under the target test service scenario and constructing a multi-dimensional performance index set include: For any given test cycle, multiple performance monitoring units are used to obtain the hardware performance parameters of the corresponding collaborative sub-modules in real time under the target test business scenario.
[0008] Optionally, the evaluation values include health and bottleneck contribution. The steps for determining the evaluation values corresponding to each hardware performance parameter include: Calculate the health status corresponding to each hardware performance parameter; Based on the health status corresponding to each target hardware performance parameter, the bottleneck contribution of each target hardware performance parameter is calculated. The target hardware performance parameters are used to characterize the other hardware performance parameters except for the IO performance indicators.
[0009] Optionally, the steps for calculating the health status of each hardware performance parameter include: Based on parameter attributes, each hardware performance parameter is divided into a set of rate indicators and a set of percentage indicators. The health values of each hardware performance parameter under the set of rate indicators are calculated based on the first normalization function. The health values of each hardware performance parameter under the percentage index set are calculated based on the second normalization function.
[0010] Optionally, the formula for calculating the health value of each hardware performance parameter under the set of rate indicators based on the first normalization function is expressed as follows: ; In the formula, The health status corresponding to any hardware performance parameter; These are the measured values corresponding to the current hardware performance parameters; This represents the theoretical upper limit of the current hardware performance parameters. The formula for calculating the health value of each hardware performance parameter under the set of percentage indicators based on the second normalization function is expressed as follows: ; In the formula, The health status of any hardware performance parameter under the set of percentage indicators; These are the measured values corresponding to the current hardware performance parameters.
[0011] Optionally, the steps of calculating the bottleneck contribution of each target hardware performance parameter based on the health status corresponding to each target hardware performance parameter include: ; In the formula, B j For the first j The bottleneck contribution of each target hardware performance parameter; max(.) This is the symbol for the extreme value function; H j For the first j The health status corresponding to each target hardware performance parameter; H i For the first i The health status corresponding to each target hardware performance parameter i The total number of target hardware performance parameters; This is the symbol for the summation function.
[0012] Optionally, when the IO performance metrics include IO rate and the evaluation value includes health, the steps to determine whether there is a system bottleneck in the target test business scenario based on the evaluation value corresponding to the IO performance metrics include: Determine if the health of the IO rate itself is less than the preset achievement rate. If so, determine that there is a system bottleneck in the target test business scenario.
[0013] Optionally, each performance metric corresponds to a preset bottleneck rule. When the evaluation value includes health and bottleneck contribution, the steps for determining the category of the current system bottleneck based on the evaluation values corresponding to each target performance metric and each basic performance metric include: For any target performance metric, determine whether it meets the corresponding preset bottleneck rules based on its own bottleneck contribution. If not, output the bottleneck type corresponding to the current target performance metric. The target performance metric includes at least the cache miss rate, HN-F message retry rate, MC message retry rate, SF hit rate, and send and receive snooping rate. For any basic performance indicator, determine whether it meets the corresponding preset bottleneck rules based on its own health status. If it does not meet the rules, output the bottleneck type corresponding to the current basic performance indicator. Filter out the indicators that do not meet their own preset bottleneck rules from each target performance indicator and each basic performance indicator, and construct a bottleneck type set; Filter the target metric corresponding to the largest bottleneck contribution from the bottleneck type set, and output the bottleneck report corresponding to the target test business scenario based on the bottleneck type of the target metric.
[0014] Optionally, for any target performance indicator, the steps for determining whether it meets its corresponding preset bottleneck rules based on its own bottleneck contribution include: Determine whether the bottleneck contribution corresponding to the cache miss rate is greater than the preset bottleneck contribution. If yes, then a memory access bottleneck exists; otherwise, there is no memory access bottleneck. Determine if the bottleneck contribution corresponding to the HN-F message retry rate is greater than the preset bottleneck contribution. If yes, then a mesh structure bottleneck exists; otherwise, a mesh structure bottleneck does not exist. Determine whether the bottleneck contribution corresponding to the MC message retry rate is greater than the preset bottleneck contribution. If yes, then it is determined that there is a memory controller congestion bottleneck; otherwise, there is no memory controller congestion bottleneck. Determine whether the bottleneck contribution corresponding to the SF hit rate is greater than the preset bottleneck contribution. If so, it is determined that there is a consistency efficiency bottleneck; otherwise, there is no consistency efficiency bottleneck. Determine whether the bottleneck contribution corresponding to the sending and receiving listening rates is greater than the preset bottleneck contribution. If so, it is determined that there is a consistent communication bottleneck; otherwise, there is no consistent communication bottleneck.
[0015] In a second aspect, the present invention provides a performance bottleneck determination system, which is used to implement the performance bottleneck determination method provided in any of the first aspects above, and the performance bottleneck determination system includes: For any test scenario, the parameter acquisition module is used to acquire the hardware performance parameters of each collaborative sub-module under the target test scenario, and determine the evaluation status parameters corresponding to each hardware performance parameter to obtain a multi-dimensional performance indicator set. The evaluation status parameters include the indicator attributes corresponding to the current hardware performance parameters and their evaluation values. The multi-dimensional performance indicator set includes at least IO performance indicators, target performance indicators representing protocol / caching efficiency, and basic performance indicators representing basic resources. The system bottleneck identification module is used to determine whether there is a system bottleneck in the on-chip data path collaborative system based on the evaluation value corresponding to the IO performance index. The bottleneck report output module is used to determine the category of the current system bottleneck based on the evaluation values of each target performance indicator and each basic performance indicator when a system bottleneck exists, and output a bottleneck report corresponding to the target test business scenario.
[0016] The performance bottleneck determination method and system provided in this invention have the following beneficial effects: The performance bottleneck determination method in this application obtains the hardware performance parameters of each collaborative submodule under the target test business scenario and determines the evaluation status parameters corresponding to each hardware performance parameter, thus obtaining a multi-dimensional performance indicator set. This multi-dimensional performance indicator set includes at least IO performance indicators, target performance indicators representing protocol / caching efficiency, and basic performance indicators representing basic resources. Then, based on the evaluation values corresponding to the IO performance indicators, it determines whether a system bottleneck exists in the target test business scenario; and if a system bottleneck exists, it determines the category of the current system bottleneck based on the evaluation values corresponding to each target performance indicator and each basic performance indicator, and outputs a bottleneck report corresponding to the target test business scenario. Based on this, this application can improve the existing technical solutions' inability to correlate performance data between collaborative submodules and the lack of detailed bottleneck analysis between different levels, thereby improving the accuracy of bottleneck identification.
[0017] To make the above-mentioned objects, features and advantages of the present invention more apparent and understandable, preferred embodiments are described below in detail with reference to the accompanying drawings. Attached Figure Description
[0018] To more clearly illustrate the technical solutions of the embodiments of the present invention, the accompanying drawings used in the embodiments will be briefly introduced below. It should be understood that the following drawings only show some embodiments of the present invention and should not be regarded as a limitation on the scope. For those skilled in the art, other related drawings can be obtained based on these drawings without creative effort.
[0019] Figure 1 A flowchart illustrating the steps of the performance bottleneck determination method provided in an embodiment of the present invention is shown. Figure 2 A step-by-step flowchart of step 100 provided in an embodiment of the present invention is shown; Figure 3 A step-by-step flowchart of step 101 provided in an embodiment of the present invention is shown; Figure 4 A step-by-step flowchart of step 300 provided in an embodiment of the present invention is shown; Figure 5 A schematic diagram of the performance bottleneck determination system provided in an embodiment of the present invention is shown; Figure 6 A block diagram of a server provided in an embodiment of the present invention is shown.
[0020] Icons: 10-Performance bottleneck identification system; 11-Parameter acquisition module; 12-System bottleneck identification module; 13-Bottleneck report output module; 20-Server; 21-Memory; 22-Processor; 23-Communication module. Detailed Implementation
[0021] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. The components of the embodiments of the present invention described and shown in the accompanying drawings can generally be arranged and designed in various different configurations.
[0022] Therefore, the following detailed description of the embodiments of the invention provided in the accompanying drawings is not intended to limit the scope of the claimed invention, but merely to illustrate selected embodiments of the invention. All other embodiments obtained by those skilled in the art based on the embodiments of the invention without inventive effort are within the scope of protection of the invention.
[0023] It should be noted that relational terms such as "first" and "second" are used merely to distinguish one entity or operation from another, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Furthermore, 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. Without further limitations, 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 said element.
[0024] It should be noted that in the following specific embodiments of this application, issues and sampling parameters are involved. When the various embodiments of this application are applied to specific products or technologies, relevant licenses or consents need to be obtained, and the collection, use and processing of relevant data need to comply with the relevant laws, regulations and standards of the relevant countries and regions.
[0025] Furthermore, the "on-chip data path coordination system" mentioned in this embodiment specifically refers to the hardware subsystem in the target SoC that undertakes core data transmission and consistency guarantee functions. This hardware subsystem includes, but is not limited to, an on-chip consistency interconnect subsystem, a memory access control subsystem, an inter-chip interconnect subsystem, and a high-speed peripheral interconnect subsystem. Specifically, the on-chip consistency interconnect subsystem is used to implement cache consistency transactions and memory access transactions between the CPU core, cache, memory controller, and I / O controller. The memory access control subsystem is used to manage the scheduling and bandwidth allocation of read / write requests to main memory (DRAM). The inter-chip interconnect subsystem is used to implement cross-chip data transmission in multi-die / multi-socket architectures. The high-speed peripheral interconnect subsystem is used to implement data exchange between the SoC and high-speed peripherals such as PCIe / NVMe / CXL.
[0026] As described in the background section, existing bottleneck analysis schemes often analyze each level independently, and multiple levels cannot provide an overall analytical conclusion. At the same time, the node performance between each level usually only includes percentages or rates, lacking fine-grained indicators such as access status, packet blocking and retransmission.
[0027] Based on this, we propose a method and system for determining performance bottlenecks, applicable to servers. The server includes an on-chip data path coordination system, which includes at least multiple coordination sub-modules. This method and system can improve the existing technical solutions' inability to correlate performance data between coordination sub-modules and the lack of detailed bottleneck analysis between different levels, thereby improving the accuracy of bottleneck identification.
[0028] The technical solution will be described in detail below with reference to the accompanying drawings.
[0029] Please refer to Figure 1 , Figure 1 A flowchart of the performance bottleneck determination method provided by an embodiment of the present invention is shown, which includes steps 100 to 300.
[0030] Step 100: For any test business scenario, obtain the hardware performance parameters of each collaborative sub-module under the target test business scenario, and determine the evaluation status parameters corresponding to each hardware performance parameter to obtain a set of multi-dimensional performance indicators.
[0031] In this embodiment, the evaluation status parameters include the indicator attributes corresponding to the current hardware performance parameters and their evaluation values; wherein, the multi-dimensional performance indicator set includes at least IO performance indicators, target performance indicators characterizing protocol / caching efficiency, and basic performance indicators characterizing basic resources.
[0032] Step 200: Determine whether there is a system bottleneck in the target test business scenario based on the evaluation value corresponding to the IO performance index.
[0033] Step 300: When a system bottleneck exists, determine the category of the current system bottleneck based on the evaluation values corresponding to each target performance indicator and each basic performance indicator, and output a bottleneck report corresponding to the target test business scenario.
[0034] This embodiment obtains the hardware performance parameters of each collaborative sub-module (i.e., the on-chip interconnect network, memory controller, and peripheral interfaces, etc.) in the server under the target test business scenario, forming a multi-dimensional performance index set. Then, based on the evaluation value corresponding to the IO performance index, it determines whether there is a system bottleneck in the target test business scenario. After determining that there is a system bottleneck, it uses the remaining performance indicators (including but not limited to target performance indicators and basic performance indicators) other than the IO performance index to determine the bottleneck type and outputs a bottleneck report corresponding to the current target test business scenario. This improves the problem that the existing technical solution cannot correlate the performance data between each collaborative sub-module and lacks detailed bottleneck analysis between each level, thereby improving the accuracy of bottleneck identification.
[0035] In one possible implementation, step 100 in this embodiment is implemented as follows: In this embodiment, after selecting the target test business scenario, the corresponding workload for the current target test business scenario is started on the server. This workload is used to simulate the CPU, memory, cache and IO pressure under the real business scenario. Subsequently, the hardware performance parameters of each collaborative sub-module can be obtained during the operation of the workload.
[0036] It should be noted that this embodiment does not limit the specific method of obtaining the above parameters.
[0037] In one possible implementation, to reduce system costs, this embodiment can call the performance monitoring unit (PMU) acquisition tool in the server to acquire the corresponding events of the on-chip interconnect network (CMN), memory controller (DDRC), CXL gateway unit, and peripheral interface (PCIe) in real time.
[0038] In addition, to ensure the accuracy and timeliness of sampling, each collaborative submodule in this embodiment corresponds to a performance monitoring unit. For example, CMN events are acquired by the CMN PMU acquisition tool, DDRC events are acquired by the DDRCPMU acquisition tool, CXL gateway unit events are acquired by the DDRC PMU acquisition tool, and PCIe peripheral interface events are acquired by the PCIe PMU acquisition tool.
[0039] Based on this, for any test cycle, this embodiment can utilize multiple performance monitoring units to obtain the hardware performance parameters of the corresponding collaborative sub-module in the target test business scenario in real time.
[0040] It should be noted that this embodiment runs the aforementioned CMN PMU acquisition tool, DDRC PMU acquisition tool, CXL PMU acquisition tool, and PCIe PMU acquisition tool in parallel while starting the workload, to perform real-time performance testing on the on-chip interconnect network (CMN), memory controller (DDRC), CXL gateway unit, and peripheral interface (PCIe). Furthermore, to avoid introducing irrelevant data, this embodiment requires synchronously stopping all the aforementioned acquisition tools when the workload ends.
[0041] In this embodiment, the hardware performance parameters include at least: cache miss rate, HN-F message retry rate, MC message retry rate, SF hit rate, sent and received snoops rate, RNI interface speed, RNI average RRT lifetime, RNI average WRT lifetime, memory bandwidth, cross-path bandwidth, and IO rate.
[0042] Among them, IO performance metrics include IO rate; basic performance metrics include RNI interface operating rate, average lifetime of RNI read request transactions, average lifetime of RNI write request transactions, memory bandwidth, and cross-path bandwidth; target performance metrics include cache miss rate, HN-F message retry rate, MC message retry rate, SF hit rate, and send and receive snooping rate.
[0043] To improve the efficiency and accuracy of bottleneck analysis, this embodiment can prioritize preprocessing the collected hardware performance parameters. For example, the hardware performance parameters can be cleaned, aligned, and formatted to generate analyzable index values, so that performance analysis can be performed based on the processed hardware performance parameters.
[0044] Furthermore, this embodiment can prioritize classifying the aforementioned hardware performance parameters based on parameter attributes, matching them with corresponding normalization functions for data processing, and obtaining evaluation values for each parameter. In this embodiment, the evaluation values include health level and bottleneck contribution level.
[0045] For details, please refer to Figure 2 , Figure 2 The following is a flowchart of the steps of step 100 provided in an embodiment of the present invention. Step 100 includes steps 101 to 102.
[0046] Step 101: Calculate the health status of each hardware performance parameter.
[0047] Step 102: Calculate the bottleneck contribution of each target hardware performance parameter based on the health status corresponding to each target hardware performance parameter.
[0048] In this embodiment, the target hardware performance parameters are used to characterize the hardware performance parameters other than the IO performance metrics.
[0049] In one possible implementation, this embodiment may preferentially classify hardware performance parameters according to parameter attributes, such as rate and percentage.
[0050] For details, please refer to Figure 3 , Figure 3 The following is a flowchart of the steps of step 101 provided in an embodiment of the present invention. In this embodiment, step 101 includes steps 101-1 to 101-3.
[0051] Step 101-1: Divide the hardware performance parameters into a set of rate indicators and a set of percentage indicators according to the parameter attributes.
[0052] Step 101-2: Calculate the health values of each hardware performance parameter under the set of rate indicators based on the first normalization function.
[0053] Step 101-3: Calculate the health value of each hardware performance parameter under the percentage index set based on the second normalization function.
[0054] In this embodiment, hardware performance parameters are divided into a set of rate indicators and a set of percentage indicators based on rate and percentage. Then, calculations are performed according to the health confirmation formulas corresponding to different parameter attributes.
[0055] Specifically, based on rate metrics, the hardware performance parameters under the rate metric set in this embodiment include IO rate, memory bandwidth, cross-path bandwidth, RNI interface operating rate, average lifetime of RNI read request transactions, and average lifetime of RNI write request transactions.
[0056] Taking the hardware performance parameters under the above set of rate indicators as an example, since each rate indicator includes a theoretical upper limit and a measured value, the calculation formula corresponding to the first normalization function can be expressed as: In the formula, The health status of any hardware performance parameter under the set of rate metrics; These are the measured values corresponding to the current hardware performance parameters; This represents the theoretical upper limit of the current hardware performance parameters.
[0057] Correspondingly, based on percentage indicators, the hardware performance parameters under the percentage indicator set in this embodiment include cache miss rate, HN-F message retry rate, MC message retry rate, SF hit rate, and send and receive snooping rate.
[0058] Taking the hardware performance parameters under the percentage indicator set as an example, the calculation formula corresponding to the second normalization function can be expressed as follows: In the formula, The health status of any hardware performance parameter under the set of percentage indicators; These are the measured values corresponding to the current hardware performance parameters.
[0059] Furthermore, since SF hit rate and transmit / receive snoop rate are positive indicators, the original value can be subtracted from the value used in the calculation. However, buffer miss rate, HN-F message retry rate, and MC message retry rate are negative indicators and can be calculated directly using the original value.
[0060] After confirming the health of each hardware performance parameter, this embodiment can calculate the bottleneck contribution of each target hardware performance parameter based on the remaining hardware performance parameters (i.e., the target hardware performance parameters mentioned above) excluding the IO performance metric (i.e., IO rate). That is, this embodiment inputs all hardware performance parameters except for the IO rate into a bottleneck function to obtain the bottleneck contribution of each target hardware performance parameter.
[0061] In this embodiment, the bottleneck function can be expressed as: ; In the formula, B j For the first j The bottleneck contribution of each target hardware performance parameter; max(.) This is the symbol for the extreme value function; H j For the first j The health status corresponding to each target hardware performance parameter; H i For the first i The health status corresponding to each target hardware performance parameter i The total number of target hardware performance parameters; This is the symbol for the summation function.
[0062] After obtaining the evaluation values of each hardware performance parameter, this embodiment can obtain a multi-dimensional performance index set including IO performance index, basic performance index, and target performance index.
[0063] Based on this, this embodiment can further determine the system bottleneck based on the IO performance index (i.e., the IO rate mentioned above), that is, determine whether the current achievement rate is too low by using the IO rate, so as to determine whether there is a system bottleneck.
[0064] In this embodiment, step 200 includes the following steps: Determine if the health of the IO rate itself is less than the preset achievement rate. If so, determine that there is a system bottleneck in the target test business scenario.
[0065] It should be noted that this embodiment does not limit the specific parameters and setting methods of the above-mentioned preset achievement rate, which can be calibrated based on different test business scenarios.
[0066] In one possible implementation, the preset achievement rate can be 0.9. Based on this, this embodiment can determine that the target test business scenario has a system bottleneck when the health of the IO rate itself is less than 0.9, and further bottleneck type determination is required. Conversely, if the health of the IO rate itself is greater than 0.9, it is determined that the target test business scenario does not have a system bottleneck.
[0067] Once it is determined that the current achievement rate is too low and there is a system bottleneck, the category of the current system bottleneck can be determined based on the evaluation values corresponding to each target performance indicator and each basic performance indicator.
[0068] This embodiment does not limit the execution method of determining the current system bottleneck category based on the evaluation values corresponding to the target performance index and the basic performance index. This embodiment can be executed in parallel or in sequence.
[0069] In one possible implementation, to ensure the efficiency of bottleneck analysis, this embodiment preferably performs the analysis in parallel.
[0070] It should be noted that each performance metric in this embodiment corresponds to a preset bottleneck rule.
[0071] Based on this, please refer to Figure 4 , Figure 4 The following is a flowchart of step 300 provided in an embodiment of the present invention. In this embodiment, step 300 includes steps 301 to 304.
[0072] Step 301: For any target performance indicator, determine whether it meets the corresponding preset bottleneck rule based on its own bottleneck contribution. If it does not meet the rule, output the bottleneck type corresponding to the current target performance indicator.
[0073] Step 302: For any basic performance indicator, determine whether it meets the corresponding preset bottleneck rules based on its own health status. If it does not meet the rules, output the bottleneck type corresponding to the current basic performance indicator. Step 303: Filter out the indicators that do not meet their own preset bottleneck rules from each target performance indicator and each basic performance indicator, and construct a bottleneck type set; Step 304: Select the target indicator corresponding to the largest bottleneck contribution from the bottleneck type set, and use the bottleneck type of the target indicator as the target bottleneck to output the bottleneck report corresponding to the target test business scenario.
[0074] Specifically, taking the target performance indicators as an example, this embodiment can determine whether the bottleneck contribution of the cache miss rate, HN-F message retry rate, MC message retry rate, SF hit rate, and the sending and receiving snooping rate themselves meets the corresponding achievement rate, and determine the bottleneck category.
[0075] Taking cache miss rate as an example, this embodiment can determine whether the bottleneck contribution corresponding to the cache miss rate is greater than the preset bottleneck contribution. If so, it is determined that there is a memory access bottleneck; otherwise, there is no memory access bottleneck.
[0076] In one possible implementation, the preset bottleneck contribution value corresponding to the cache miss rate can be 0.15. In this case, if the bottleneck contribution value corresponding to the cache miss rate is greater than 0.15, it can be determined that a memory access bottleneck exists. Otherwise, there is no memory access bottleneck.
[0077] Taking the HN-F message retry rate as an example, this embodiment can determine whether the bottleneck contribution corresponding to the HN-F message retry rate is greater than the preset bottleneck contribution. If so, it is determined that there is a mesh bottleneck; otherwise, there is no mesh bottleneck.
[0078] In one possible implementation, the preset bottleneck contribution corresponding to the HN-F message retry rate can be 0.15. In this case, if the bottleneck contribution corresponding to the HN-F message retry rate is greater than 0.15, it can be determined that a mesh structure bottleneck exists. Otherwise, there is no mesh structure bottleneck.
[0079] Taking the MC message retry rate as an example, this embodiment can determine whether the bottleneck contribution corresponding to the MC message retry rate is greater than the preset bottleneck contribution. If so, it is determined that there is a memory controller congestion bottleneck; otherwise, there is no memory controller congestion bottleneck.
[0080] In one possible implementation, the preset bottleneck contribution value corresponding to the MC message retry rate can be 0.15. In this case, if the bottleneck contribution value corresponding to the MC message retry rate is greater than 0.15, it can be determined that there is a memory controller congestion bottleneck. Otherwise, there is no memory controller congestion bottleneck.
[0081] Taking SF hit rate as an example, this embodiment can determine whether the bottleneck contribution corresponding to SF hit rate is greater than the preset bottleneck contribution. If so, it is determined that there is a consistency efficiency bottleneck; otherwise, there is no consistency efficiency bottleneck.
[0082] In one possible implementation, the preset bottleneck contribution value corresponding to the SF hit rate can be 0.15. In this case, if the bottleneck contribution value corresponding to the SF hit rate is greater than 0.15, it can be determined that a consistency efficiency bottleneck exists. Otherwise, there is no consistency efficiency bottleneck.
[0083] Taking the transmit and receive listening rates as an example, this embodiment can determine whether the bottleneck contribution corresponding to the transmit and receive listening rates is greater than the preset bottleneck contribution. If so, it is determined that there is a consistent communication bottleneck; otherwise, there is no consistent communication bottleneck.
[0084] In one possible implementation, the preset bottleneck contribution value corresponding to the transmit and receive eavesdropping rates can be 0.15. In this case, if the bottleneck contribution value corresponding to the transmit and receive eavesdropping rates is greater than 0.15, it can be determined that a consistent communication bottleneck exists. Otherwise, there is no consistent communication bottleneck.
[0085] Following the same approach as the previous embodiment, this embodiment can determine whether the basic performance indicators, including RNI interface running speed, average lifespan of RNI read request transactions, average lifespan of RNI write request transactions, memory bandwidth, and cross-path bandwidth themselves, meet the corresponding achievement rates, and thus determine the bottleneck category.
[0086] Taking memory bandwidth as an example, this embodiment can determine whether the health level corresponding to the memory bandwidth is less than a preset health level. If so, it is determined that a memory bandwidth bottleneck exists; otherwise, there is no memory bandwidth bottleneck. Based on this, this embodiment can also determine whether a memory bandwidth bottleneck is a major bottleneck based on its bottleneck contribution level when a bottleneck is determined to exist.
[0087] In one possible implementation, the preset health level and preset bottleneck contribution level corresponding to memory bandwidth can be 0.7 and 0.3, respectively. In this case, if the health level corresponding to memory bandwidth is less than 0.7, it is determined that there is a memory bandwidth bottleneck. At the same time, if the bottleneck contribution level corresponding to memory bandwidth is greater than 0.3, it can be determined that the memory bandwidth bottleneck is a major bottleneck, and vice versa.
[0088] Taking cross-path bandwidth as an example, this embodiment can determine whether the health level corresponding to the cross-path bandwidth is less than a preset health level. If so, it is determined that a cross-interconnection bottleneck exists; otherwise, there is no cross-interconnection bottleneck. Based on this, this embodiment can also determine whether it belongs to a major bottleneck based on the bottleneck contribution level corresponding to the cross-path bandwidth when a cross-interconnection bottleneck is determined to exist.
[0089] In one possible implementation, the preset health level and preset bottleneck contribution level corresponding to the cross-path bandwidth can be 0.6 and 0.3, respectively. In this case, if the health level corresponding to the cross-path bandwidth is less than 0.6, it is determined that there is a cross-interconnection bottleneck. At the same time, if the bottleneck contribution level corresponding to the cross-path bandwidth is greater than 0.3, it can be determined that the cross-interconnection bottleneck is a major bottleneck, and vice versa.
[0090] Taking the RNI interface operating speed as an example, this embodiment can determine whether the health level corresponding to the RNI interface operating speed is less than a preset health level. If so, it is determined that there is an RNI interface bottleneck; otherwise, there is no RNI interface bottleneck. Based on this, this embodiment can also determine whether it is a major bottleneck based on the bottleneck contribution level corresponding to the RNI interface operating speed when an RNI interface bottleneck is determined to exist.
[0091] In one possible implementation, the preset health level and preset bottleneck contribution level corresponding to the RNI interface running speed can be 0.6 and 0.3, respectively. In this case, if the health level corresponding to the RNI interface running speed is less than 0.6, it is determined that there is an RNI interface bottleneck. At the same time, if the bottleneck contribution level corresponding to the RNI interface running speed is greater than 0.3, it can be determined that the RNI interface bottleneck is a major bottleneck, and vice versa.
[0092] Since the RNI interface operating speed, the average lifespan of RNI read request transactions, and the average lifespan of RNI write request transactions are all used to assess RNI interface bottlenecks, and the corresponding judgment process is similar, the assessment process of the average lifespan of RNI read request transactions and the average lifespan of RNI write request transactions will not be repeated here. You can refer to the assessment process of the RNI interface operating speed mentioned above.
[0093] It should be noted that this embodiment does not limit the specific parameter values of the preset health level and / or preset bottleneck contribution level. Users can make custom adjustments based on different application scenarios to improve the adaptability of the above-mentioned performance bottleneck determination method.
[0094] After traversing all target performance metrics and basic performance metrics, the evaluation results corresponding to each parameter can be obtained. At this point, metrics that do not meet their own preset bottleneck rules are selected. Based on the corresponding bottleneck structure, a bottleneck type set is constructed. Then, each bottleneck type in the bottleneck type set is sorted according to its bottleneck contribution. At least the target metric corresponding to the largest bottleneck contribution is selected as the main bottleneck corresponding to the target test business scenario, and the bottleneck report corresponding to the current target test business scenario is output.
[0095] It should be noted that the bottleneck report in this embodiment includes, but is not limited to, the main bottlenecks corresponding to the target test business scenario mentioned above. To ensure the completeness of the bottleneck report, it also includes all basic performance indicators, target performance indicators, and IO performance indicator types and their corresponding evaluation values.
[0096] In summary, this embodiment can correlate multiple indicators within a multidimensional performance indicator set through the above steps, that is, by attributing across multiple components, outputting the final bottleneck report and improving the accuracy of bottleneck identification. At the same time, this embodiment also innovatively provides a contribution function to determine the main bottleneck from multiple indicators, improving the problem that existing technical solutions cannot correlate performance data between collaborative sub-modules and lack detailed bottleneck analysis between different levels.
[0097] Following the same approach as the previous embodiment, this embodiment also provides a performance bottleneck determination system. This system is used to implement the performance bottleneck determination method provided in any of the first aspects above. Please refer to [reference needed]. Figure 5 , Figure 5 A schematic diagram of a performance bottleneck determination system provided in an embodiment of the present invention is shown. The performance bottleneck determination system 10 includes: For any test business scenario, the parameter acquisition module 11 is used to acquire the hardware performance parameters of each collaborative sub-module under the target test business scenario, and determine the evaluation status parameters corresponding to each hardware performance parameter to obtain a set of multi-dimensional performance indicators.
[0098] In this embodiment, the evaluation status parameters include the index attributes corresponding to the current hardware performance parameters and their evaluation values.
[0099] The multidimensional performance metric set includes at least IO performance metrics, target performance metrics characterizing protocol / caching efficiency, and basic performance metrics characterizing underlying resources. System bottleneck identification module 12 is used to determine whether there is a system bottleneck in the on-chip data path collaborative system based on the evaluation value corresponding to the IO performance index; The bottleneck report output module 13 is used to determine the category of the current system bottleneck based on the evaluation values corresponding to each target performance indicator and each basic performance indicator when a system bottleneck exists, and output a bottleneck report corresponding to the target test business scenario.
[0100] The specific implementation scheme and technical effects of the performance bottleneck determination system provided in this embodiment can be referred to the performance bottleneck determination method provided in the previous embodiment. Its basic principle and the resulting technical effects are the same as those in the above embodiments. For the sake of brevity, any parts not mentioned in this embodiment can be referred to the corresponding content in the above embodiments.
[0101] In summary, the performance bottleneck identification method and system provided in this application can improve the problems of existing technical solutions that cannot correlate performance data between collaborative sub-modules and lack detailed bottleneck analysis between different levels, thereby improving the accuracy of bottleneck identification.
[0102] Please refer to Figure 6 , Figure 6 The diagram shows a block illustration of a server provided in an embodiment of the present invention. In this embodiment, the server 20 includes a memory 21, a processor 22, and a communication module 23. The memory 21, processor 22, and communication module 23 are electrically connected to each other directly or indirectly to realize data transmission or interaction. For example, these components can be electrically connected to each other through one or more communication buses or signal lines.
[0103] The memory 21 is used to store programs or data. The memory may be, but is not limited to, random access memory (RAM), read-only memory (ROM), programmable read-only memory (PROM), erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), etc.
[0104] The processor 22 is used to read / write data or programs stored in memory and to perform corresponding functions.
[0105] The communication module 23 is used to establish a communication connection between the server and other communication terminals through the network, and to send and receive data through the network.
[0106] It should be understood that, Figure 6 The structure shown is only a schematic diagram of the server structure; the server may also include components such as... Figure 6 The more or fewer components shown, or having the same Figure 6 The different configurations shown include CMN PMU acquisition tools, DDRC PMU acquisition tools, CXL PMU acquisition tools, and PCIe PMU acquisition tools. Figure 6 The components shown can be implemented using hardware, software, or a combination thereof.
[0107] In the several embodiments provided in this application, it should be understood that the disclosed apparatus and methods can also be implemented in other ways. The apparatus embodiments described above are merely illustrative; for example, the flowcharts and block diagrams in the accompanying drawings illustrate the architecture, functionality, and operation of possible implementations of apparatus, methods, and computer program products according to various embodiments of the present invention. In this regard, each block in a flowchart or block diagram may represent a module, segment, or portion of code containing one or more executable instructions for implementing a specified logical function. It should also be noted that in some alternative implementations, the functions marked in the blocks may occur in a different order than those marked in the drawings. For example, two consecutive blocks may actually be executed substantially in parallel, and they may sometimes be executed in reverse order, depending on the functions involved. It should also be noted that each block in a block diagram and / or flowchart, and combinations of blocks in block diagrams and / or flowcharts, can be implemented using a dedicated hardware-based system that performs the specified function or action, or using a combination of dedicated hardware and computer instructions.
[0108] In addition, the functional modules in the various embodiments of the present invention can be integrated together to form an independent part, or each module can exist independently, or two or more modules can be integrated to form an independent part.
[0109] If the aforementioned functions are implemented as software functional modules 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 invention, 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 invention. The aforementioned storage medium includes various media capable of storing program code, such as USB flash drives, portable hard drives, read-only memory (ROM), random access memory (RAM), magnetic disks, or optical disks.
[0110] The above description is merely a preferred embodiment of the present invention and is not intended to limit the invention. Various modifications and variations can be made to the present invention by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of the present invention should be included within the scope of protection of the present invention.
Claims
1. A method for identifying performance bottlenecks, applied to a server, the server including an on-chip data path coordination system, the on-chip data path coordination system including at least multiple coordination sub-modules, characterized in that, The method for determining the performance bottleneck includes: For any test business scenario, the hardware performance parameters of each collaborative submodule under the target test business scenario are obtained, and the evaluation status parameters corresponding to each hardware performance parameter are determined to obtain a multi-dimensional performance indicator set; the evaluation status parameters include the indicator attributes corresponding to the current hardware performance parameters and their evaluation values; wherein, the multi-dimensional performance indicator set includes at least IO performance indicators, target performance indicators characterizing protocol / caching efficiency, and basic performance indicators characterizing basic resources; Based on the evaluation values corresponding to the IO performance metrics, determine whether there is a system bottleneck in the target test business scenario; When the system bottleneck exists, the category of the current system bottleneck is determined based on the evaluation values corresponding to each of the target performance indicators and each of the basic performance indicators, and a bottleneck report corresponding to the target test business scenario is output.
2. The performance bottleneck determination method according to claim 1, characterized in that, The on-chip data path collaboration system also includes multiple performance monitoring units, each corresponding to a collaboration sub-module. The step of obtaining the hardware performance parameters of each collaboration sub-module under the target test service scenario to form a multi-dimensional performance index set includes: For any given test cycle, multiple performance monitoring units are used to obtain the hardware performance parameters of the corresponding collaborative sub-modules in the target test service scenario in real time.
3. The performance bottleneck determination method according to claim 1, characterized in that, The evaluation values include health status and bottleneck contribution. The steps for determining the evaluation values corresponding to each hardware performance parameter include: Calculate the health status corresponding to each hardware performance parameter; Based on the health status corresponding to each target hardware performance parameter, the bottleneck contribution of each target hardware performance parameter is calculated. The target hardware performance parameters are used to characterize the other hardware performance parameters besides the IO performance indicators.
4. The performance bottleneck determination method according to claim 3, characterized in that, The steps for calculating the health status of each hardware performance parameter include: Based on parameter attributes, the hardware performance parameters are divided into a set of rate indicators and a set of percentage indicators. The health value of each hardware performance parameter under the set of rate indicators is calculated based on the first normalization function. The health value of each hardware performance parameter under the set of percentage indicators is calculated based on the second normalization function.
5. The performance bottleneck determination method according to claim 4, characterized in that, The formula for calculating the health value of each hardware performance parameter under the set of rate indicators based on the first normalization function is expressed as follows: ; In the formula, The health status of any hardware performance parameter under the set of rate metrics; These are the measured values corresponding to the current hardware performance parameters; This represents the theoretical upper limit of the current hardware performance parameters; The formula for calculating the health value of each hardware performance parameter under the percentage index set based on the second normalization function is expressed as follows: ; In the formula, The health status of any hardware performance parameter under the set of percentage indicators; These are the measured values corresponding to the current hardware performance parameters.
6. The performance bottleneck determination method according to claim 3, characterized in that, The steps for calculating the bottleneck contribution of each target hardware performance parameter based on its health status include: ; In the formula, B j For the first j The bottleneck contribution of each target hardware performance parameter; max(.) This is the symbol for the extreme value function; H j For the first j The health status corresponding to each target hardware performance parameter; H i For the first i The health status corresponding to each target hardware performance parameter i The total number of target hardware performance parameters; This is the symbol for the summation function.
7. The performance bottleneck determination method according to claim 1, characterized in that, When the IO performance metric includes IO rate and the evaluation value includes health, the steps for determining whether there is a system bottleneck in the target test business scenario based on the evaluation value corresponding to the IO performance metric include: Determine whether the health of the IO rate itself is less than the preset achievement rate. If so, determine that there is a system bottleneck in the target test business scenario.
8. The performance bottleneck determination method according to claim 1, characterized in that, Each performance metric corresponds to a preset bottleneck rule. When the evaluation value includes health and bottleneck contribution, the step of determining the category of the current system bottleneck based on the evaluation values corresponding to each target performance metric and each basic performance metric includes: For any target performance metric, determine whether it meets the corresponding preset bottleneck rule based on its own bottleneck contribution. If it does not meet the rule, output the bottleneck type corresponding to the current target performance metric. The target performance metric includes at least the cache miss rate, HN-F message retry rate, MC message retry rate, SF hit rate, and send and receive snooping rate. For any basic performance indicator, determine whether it meets the corresponding preset bottleneck rules based on its own health status. If it does not meet the rules, output the bottleneck type corresponding to the current basic performance indicator. Filter out the indicators that do not meet their own preset bottleneck rules from each of the target performance indicators and each of the basic performance indicators, and construct a bottleneck type set; Select the target indicator corresponding to the largest bottleneck contribution from the bottleneck type set, and use the bottleneck type of the target indicator as the target bottleneck to output the bottleneck report corresponding to the target test business scenario.
9. The performance bottleneck determination method according to claim 8, characterized in that, For any target performance metric, the steps to determine whether it meets its corresponding preset bottleneck rules based on its own bottleneck contribution include: Determine whether the bottleneck contribution corresponding to the cache miss rate is greater than the preset bottleneck contribution. If yes, then a memory access bottleneck exists; otherwise, there is no memory access bottleneck. Determine whether the bottleneck contribution corresponding to the HN-F message retry rate is greater than a preset bottleneck contribution. If yes, then a mesh structure bottleneck exists; otherwise, the mesh structure bottleneck does not exist. Determine whether the bottleneck contribution corresponding to the MC message retry rate is greater than the preset bottleneck contribution. If yes, then it is determined that there is a memory controller congestion bottleneck; otherwise, there is no memory controller congestion bottleneck. Determine whether the bottleneck contribution corresponding to the SF hit rate is greater than the preset bottleneck contribution. If yes, then it is determined that there is a consistency efficiency bottleneck; otherwise, there is no consistency efficiency bottleneck. Determine whether the bottleneck contribution corresponding to the sending and receiving listening rates is greater than a preset bottleneck contribution. If yes, then a consistent communication bottleneck exists; otherwise, the consistent communication bottleneck does not exist.
10. A performance bottleneck identification system, characterized in that, The performance bottleneck determination system is used to implement the performance bottleneck determination method according to any one of claims 1 to 9, and the performance bottleneck determination system includes: For any test scenario, the parameter acquisition module is used to acquire the hardware performance parameters of each collaborative sub-module under the target test scenario, and determine the evaluation status parameters corresponding to each hardware performance parameter to obtain a multi-dimensional performance indicator set; the evaluation status parameters include the indicator attributes corresponding to the current hardware performance parameters and their evaluation values; wherein, the multi-dimensional performance indicator set includes at least IO performance indicators, target performance indicators characterizing protocol / caching efficiency, and basic performance indicators characterizing basic resources; The system bottleneck identification module is used to determine whether there is a system bottleneck in the on-chip data path collaborative system based on the evaluation value corresponding to the IO performance index. The bottleneck report output module is used to determine the category of the current system bottleneck based on the evaluation values corresponding to each of the target performance indicators and each of the basic performance indicators when the system bottleneck exists, and output a bottleneck report corresponding to the target test business scenario.
Citation Information
Patent Citations
Performance bottleneck determination method and device
CN120950352A
Method and system for automated detection of application performance bottlenecks
US20090177642A1