Data transmission adjustment method, system and device and computer storage medium

By determining the deployment location information of network cards and hard disks in a distributed storage system, calculating the access topology distance and traffic generation overhead, and adjusting the data transmission path, the data transmission delay problem is solved and more efficient data transmission is achieved.

CN120705085APending Publication Date: 2025-09-26JINAN INSPUR DATA TECH CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202510872780.7
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-06-26
Publication Date
2025-09-26

AI Technical Summary

Technical Problem

In a distributed storage system, when data is transferred from the hard disk to the network card through PCIe, if the data is located on different CPU slots, it may increase the data transmission delay.

Method used

By determining the deployment location information of the network card and hard disk on the CPU slot, the access topology distance and traffic are calculated, the access cost is generated, and the data transmission path is adjusted according to the cost so that the path length is inversely proportional to the cost.

Benefits of technology

It reduces data transmission latency and improves data transmission efficiency, especially in cross-CPU socket and cross-CPU situations, with latency reduced by 40-60%, cross-Die access latency reduced by 15-25%, RoCE network throughput increased by 30%, NVMe SSD IOPS increased by 20%, and NUMA load balancing improved by 50%.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120705085A_ABST
    Figure CN120705085A_ABST
Patent Text Reader

Abstract

The invention discloses a data transmission adjustment method, system and device and a computer storage medium, and relates to the technical field of distributed storage, and the method comprises the steps: determining the deployment position information of a network card and a hard disk in a distributed storage cluster on a CPU slot; determining an access topology distance between the network card and the hard disk according to the deployment position information; acquiring access traffic between the network card and the hard disk; based on the access topology distance and the access traffic, generating access overhead between the network card and the hard disk; and according to the access overhead, a data transmission path between the network card and the hard disk is adjusted, so that the length of the data transmission path is inversely proportional to the size of the access overhead. According to the method, the influence of the deployment position on the access overhead is quantified by means of the access topology distance, the actual access overhead is calculated according to the real flow between the network card and the hard disk to adjust the data transmission path, and the length of the data transmission path between the network card with the large actual access overhead and the hard disk can be smaller; the data transmission delay can be reduced.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of distributed storage technology, and more specifically, to a data transmission adjustment method, system, device and computer storage medium. Background Art

[0002] Currently, distributed storage systems can adopt a multi-socket server architecture, using network cards such as RoCE (RDMA over Converged Ethernet) for high-speed network communication and hard drives such as NVMe SSDs as storage media. Multi-socket servers typically have multiple CPU (Central Processing Unit) sockets, each of which may have its own memory controller and PCIe (Peripheral Component Interconnect Express) channel. When data is transferred from a hard drive to a network card via PCIe, if the two devices are located in different slots, the data transfer may require a longer path, such as through the Intel QuickPath Interconnect (QPI) or UPI (Ultra Path Interconnect) bus, resulting in increased data transmission latency.

[0003] In summary, how to reduce data transmission delay is an urgent problem to be solved by those skilled in the art. Summary of the Invention

[0004] The purpose of this application is to provide a data transmission adjustment method, which can solve the technical problem of how to reduce data transmission delay to a certain extent. This application also provides a data transmission adjustment system, an electronic device and a computer-readable storage medium.

[0005] In order to achieve the above objectives, this application provides the following technical solutions:

[0006] A data transmission adjustment method, comprising:

[0007] Determine the deployment location information of network cards and hard disks on CPU slots in a distributed storage cluster;

[0008] Determining an access topology distance between the network card and the hard disk based on the deployment location information;

[0009] Collect access traffic between the network card and the hard disk;

[0010] generating access overhead between the network card and the hard disk based on the access topology distance and the access traffic;

[0011] According to the access overhead, the data transmission path between the network card and the hard disk is adjusted so that the length of the data transmission path is inversely proportional to the size of the access overhead.

[0012] In an exemplary embodiment, determining the access topology distance between the network card and the hard disk according to the deployment location information includes:

[0013] parsing the deployment location information;

[0014] In response to the deployment location information indicating that the hard disk and the network card are located on the same CPU slot, determining an access topology distance between the network card and the hard disk as a first distance value;

[0015] In response to the deployment location information indicating that the hard disk and the network card are located in different CPU slots of the same CPU, determining an access topology distance between the network card and the hard disk as a second distance value;

[0016] In response to the deployment location information indicating that the hard disk and the network card are located in different CPUs, determining an access distance between the network card and the hard disk as a third distance value;

[0017] The third distance value is greater than the second distance value, and the second distance value is greater than the first distance value.

[0018] In an exemplary embodiment, generating the access cost between the network card and the hard disk based on the access topology distance and the access traffic includes:

[0019] Analyzing the access topological distance;

[0020] In response to the access topology distance being the first distance value, determining the value of the first coefficient to be 0, and determining the value of the second coefficient to be 0;

[0021] In response to the access topology distance being the second distance value, determining the value of the first coefficient to be 1 and the value of the second coefficient to be 0;

[0022] In response to the access topological distance being the third distance value, determining the value of the first coefficient to be 1 and determining the value of the second coefficient to be 1;

[0023] Get the basic cost value for cross-CPU access;

[0024] The access traffic and the basic cost value are calculated based on the first coefficient and the second coefficient to obtain the access cost between the network card and the hard disk.

[0025] In an exemplary embodiment, the calculating the access traffic and the basic cost value based on the first coefficient and the second coefficient to obtain the access cost between the network card and the hard disk includes:

[0026] Performing a multiplication operation on the access traffic based on the first coefficient to obtain a first operation result;

[0027] Performing an addition operation on the basic cost value based on the second coefficient to obtain a second operation result;

[0028] An access overhead between the network card and the hard disk is generated based on the sum of the first operation result and the second operation result.

[0029] In an exemplary embodiment, determining the access topology distance between the network card and the hard disk according to the deployment location information includes:

[0030] Determine the CPU number value that corresponds one to one with the CPU;

[0031] Determine the CPU slot number values ​​that correspond one-to-one to the CPU slots, and the increment interval of the CPU number value is greater than the increment interval of the CPU slot number value;

[0032] Determine the CPU number and CPU slot number of each of the network card and hard disk according to the deployment location information;

[0033] Generate a first difference between the number of the CPU slot where the network card is located and the number of the CPU slot where the hard disk is located, and use the absolute value of the first difference as the access topology distance between the network card and the hard disk;

[0034] A second difference between the CPU number value at the location of the network card and the CPU number value at the location of the hard disk is generated, and an absolute value of the second difference is used as the access topology distance between the network card and the hard disk.

[0035] In an exemplary embodiment, generating the access cost between the network card and the hard disk based on the access topology distance and the access traffic includes:

[0036] Get the basic cost value for cross-CPU access;

[0037] performing a multiplication operation on the access traffic based on the absolute value of the first difference to obtain a third operation result;

[0038] Performing an addition operation on the basic cost value based on the absolute value of the second difference to obtain a fourth operation result;

[0039] Based on the sum of the third operation result and the fourth operation result, an access overhead between the network card and the hard disk is generated.

[0040] In an exemplary embodiment, the method further includes:

[0041] Determine the initial load weight of each NUMA based on the number of NUMAs on a single CPU;

[0042] For each NUMA, the initial load weight is adjusted downward according to the number of bound devices on the NUMA to obtain a target load weight, and the number of bound devices is positively correlated with the strength of the downward adjustment;

[0043] Based on the target load weight, the devices bound to the NUMA are adjusted.

[0044] A data transmission adjustment system, comprising:

[0045] The deployment determination module is used to determine the deployment location information of the network card and hard disk on the CPU slot in the distributed storage cluster;

[0046] A topology distance determination module, configured to determine an access topology distance between the network card and the hard disk according to the deployment location information;

[0047] Traffic collection module, used to collect access traffic between network cards and hard disks;

[0048] A cost generating module, configured to generate an access cost between the network card and the hard disk based on the access topology distance and the access traffic;

[0049] The path adjustment module is used to adjust the data transmission path between the network card and the hard disk according to the access cost, so that the length of the data transmission path is inversely proportional to the size of the access cost.

[0050] An electronic device, comprising:

[0051] memory for storing computer programs;

[0052] A processor is configured to implement the steps of any of the above-mentioned data transmission adjustment methods when executing the computer program.

[0053] A computer-readable storage medium stores a computer program, wherein the computer program, when executed by a processor, implements the steps of any of the above-mentioned data transmission adjustment methods.

[0054] The present application provides a data transmission adjustment method, which determines the deployment location information of a network card and a hard disk on a CPU slot in a distributed storage cluster; determines the access topology distance between the network card and the hard disk based on the deployment location information; collects the access traffic between the network card and the hard disk; generates the access overhead between the network card and the hard disk based on the access topology distance and the access traffic; and adjusts the data transmission path between the network card and the hard disk based on the access overhead so that the length of the data transmission path is inversely proportional to the size of the access overhead. In this application, considering that the deployment position of the network card and the hard disk on the CPU slot will affect the access overhead between the network card and the hard disk, for example, if the network card and the hard disk are located on different CPU slots, the access overhead is large, so it is necessary to determine the deployment position information of the network card and the hard disk on the CPU slot in the distributed storage cluster, and based on the deployment position information, determine the access topology distance between the network card and the hard disk, so as to quantify the impact of the deployment position on the access overhead with the help of the access topology distance, and it is necessary to generate the access overhead between the network card and the hard disk based on the actual access traffic, so as to calculate the actual access overhead based on the actual traffic between the network card and the hard disk. In this way, if the data transmission path between the network card and the hard disk is adjusted according to the access overhead, the length of the data transmission path between the network card with large actual access overhead and the hard disk can be made smaller, which can reduce the data transmission delay compared with the solution with large access overhead and long data transmission path. The data transmission adjustment system, electronic device and computer-readable storage medium provided by this application also solve the corresponding technical problems. BRIEF DESCRIPTION OF THE DRAWINGS

[0055] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the following briefly introduces the drawings required for use in the embodiments or the description of the prior art. Obviously, the drawings described below are merely embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on the provided drawings without any creative work.

[0056] Figure 1 A flowchart of a data transmission adjustment method provided in an embodiment of the present application;

[0057] Figure 2 A schematic diagram of the hardware structure for adjusting the transmission path with the help of a PCIe bridge;

[0058] Figure 3 A schematic diagram of the structure of a data transmission adjustment system provided in an embodiment of the present application;

[0059] Figure 4 A schematic diagram of the structure of an electronic device provided in an embodiment of the present application;

[0060] Figure 5 Another structural schematic diagram of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION

[0061] The following will be combined with the drawings in the embodiments of this application to clearly and completely describe the technical solutions in the embodiments of this application. Obviously, the embodiments described are only part of the embodiments of this application, not all of the embodiments. Based on the embodiments in this application, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of this application.

[0062] Currently, distributed storage systems can adopt a multi-way server architecture, achieve high-speed network communication through network cards such as RoCE, and use hard disks such as NVMe SSDs as storage media. Multi-way servers usually have multiple CPU sockets, and each socket may have its own memory controller and PCIe channel. When data is transferred from the hard disk to the network card via PCIe, if the two devices are located in different slots, the data transmission may need to go through a longer path, such as through the QPI or UPI bus, resulting in increased data transmission delay. The data transmission adjustment solution provided in this application can reduce data transmission delay.

[0063] See also Figure 1 , Figure 1 A flowchart of a data transmission adjustment method provided in an embodiment of the present application.

[0064] A data transmission adjustment method provided in an embodiment of the present application may include the following steps:

[0065] Step S101: Determine the deployment location information of the network card and hard disk on the CPU slot in the distributed storage cluster.

[0066] In actual applications, considering that the deployment positions of the network card and hard disk on the CPU slot will affect the access overhead and delay between the network card and the hard disk, for example, if the network card and the hard disk are located in the same CPU slot, the access overhead and access delay between the network card and the hard disk will be smaller than if the network card and the hard disk are located in different CPU slots, and the deployment positions of the network card and the hard disk on the CPU slot generally do not change, it is necessary to determine the deployment position information of the network card and the hard disk on the CPU slot in the distributed storage cluster, so as to subsequently analyze the access overhead between the network card and the hard disk based on the deployment position information of the network card and the hard disk on the CPU slot, and then adjust the data transmission delay between the network card and the hard disk.

[0067] Step S102: Determine the access topology distance between the network card and the hard disk according to the deployment location information.

[0068] In practical applications, after determining the deployment location information of the network card and hard disk on the CPU slot in a distributed storage cluster, since the deployment location information only represents the deployment location and cannot be directly applied to the access overhead, it is necessary to determine the access topological distance between the network card and the hard disk based on the deployment location information. In other words, the deployment location information needs to be quantified as the access topological distance between the network card and the hard disk. The access topological distance can be expressed in numbers, so the access overhead between the network card and the hard disk can be represented by the access topological distance between the network card and the hard disk.

[0069] Step S103: Collect access traffic between the network card and the hard disk.

[0070] Step S104: Generate access overhead between the network card and the hard disk based on the access topology distance and the access traffic.

[0071] In actual applications, when the deployment location remains unchanged, the data flow between the network card and the hard disk will also affect the overall data transmission delay between the network card and the hard disk. Therefore, it is also necessary to collect the access flow between the network card and the hard disk. Based on the access topology distance and access flow, the access overhead between the network card and the hard disk is generated. This ensures that the access overhead corresponds to the deployment location and actual access flow, ensuring the accurate generation of the access overhead.

[0072] In an exemplary embodiment, in the process of determining the access topological distance between the network card and the hard disk based on the deployment location information, it is taken into account that the deployment locations of the network card and the hard disk can be divided into being located on the same CPU slot, being located on different CPU slots of the same CPU, and being located on different CPU slots of different CPUs, and the access overhead and delay corresponding to the three situations are all different, so the deployment location information is quantified as the access topological distance based on this, that is, the deployment location information can be parsed; in response to the deployment location information characterizing that the hard disk and the network card are located on the same CPU slot, the access topological distance between the network card and the hard disk is determined to be a first distance value; in response to the deployment location information characterizing that the hard disk and the network card are located on different CPU slots of the same CPU, the access topological distance between the network card and the hard disk is determined to be a second distance value; in response to the deployment location information characterizing that the hard disk and the network card are located on different CPUs, the access distance between the network card and the hard disk is determined to be a third distance value; wherein, the third distance value is greater than the second distance value, and the second distance value is greater than the first distance value, for example, the first distance value is 1, the second distance value is 2, the third distance value is 3, and so on.

[0073] In a specific application scenario, in the process of generating the access overhead between the network card and the hard disk based on the access topology distance and the access traffic, the access topology distance can be parsed; in response to the access topology distance being a first distance value, that is, the hard disk and the network card are located on the same CPU slot, the value of the first coefficient is determined to be 0, and the value of the second coefficient is determined to be 0; in response to the access topology distance being a second distance value, that is, the hard disk and the network card are located on different CPU slots of the same CPU, the value of the first coefficient is determined to be 1, and the value of the second coefficient is determined to be 0; in response to the access topology distance being a third distance value, that is, the hard disk and the network card are located on different CPUs, the value of the first coefficient is determined to be 1, and the value of the second coefficient is determined to be 1; obtain the set basic overhead value for cross-CPU access; calculate the access traffic and the basic overhead value based on the first coefficient and the second coefficient to obtain the access overhead between the network card and the hard disk.

[0074] In a specific application scenario, in the process of calculating the access traffic and the basic overhead value based on the first coefficient and the second coefficient to obtain the access overhead between the network card and the hard disk, the access traffic can be multiplied based on the first coefficient to obtain the first operation result; the basic overhead value can be added based on the second coefficient to obtain the second operation result; and the access overhead between the network card and the hard disk is generated based on the sum of the first operation result and the second operation result.

[0075] In an exemplary embodiment, in the process of determining the access topological distance between the network card and the hard disk according to the deployment location information, the access topological distance can also be determined with the help of the unique digital numbers of the CPU and the CPU slot, that is, the CPU number value corresponding to the CPU one by one is determined; the CPU slot number value corresponding to the CPU slot one by one is determined, and the growth interval of the CPU number value is greater than the growth interval of the CPU slot number value, for example, if the growth interval of the CPU slot number value is 1, the growth interval of the CPU number value can be 2, etc., so that the access topological distance is affected by the CPU to a greater extent than the CPU slot, which is consistent with the network card and the hard disk crossing the CPU. This is consistent with the phenomenon that the access topology distance of U is greater than the access topology distance between the network card and the hard disk across the CPU slot, which can ensure the accuracy of the access topology distance generation; then, based on the deployment location information, the CPU number value and the CPU slot number value of the network card and the hard disk are determined; a first difference between the CPU slot number value at the network card location and the CPU slot number value at the hard disk location is generated, and the absolute value of the first difference is used as the access topology distance between the network card and the hard disk; a second difference between the CPU number value at the network card location and the CPU number value at the hard disk location is generated, and the absolute value of the second difference is used as the access topology distance between the network card and the hard disk.

[0076] In a specific application scenario, in the process of generating the access overhead between the network card and the hard disk based on the access topology distance and access traffic, the set basic overhead value for cross-CPU access can be obtained; the access traffic is multiplied based on the absolute value of the first difference to obtain a third operation result; the basic overhead value is added based on the absolute value of the second difference to obtain a fourth operation result; the access overhead between the network card and the hard disk is generated based on the sum of the third operation result and the fourth operation result.

[0077] For ease of understanding, assume that x i Indicates the number of the CPU slot where the network card i is located; x j Indicates the number of the CPU slot where hard disk j is located; y i Indicates the number of the CPU where the network card i is located; y j represents the CPU number where hard disk j is located. The generation process of access overhead can be expressed as:

[0078] ;

[0079] in, represents the traffic between network card i and hard disk j (GB / s); Indicates the basic cost value, which can be 10, 15, etc.

[0080] Step S105: adjusting the data transmission path between the network card and the hard disk according to the access overhead, so that the length of the data transmission path is inversely proportional to the size of the access overhead.

[0081] In actual applications, if the access overhead between the network card and the hard disk is high and the data transmission path is long, the data transmission delay between the network card and the hard disk will be even greater. However, the access overhead between the network card and the hard disk is limited by the deployment location and access traffic and cannot be reduced. Therefore, the data transmission delay can only be reduced by adjusting the data transmission path between the network card and the hard disk. That is, the data transmission path between the network card and the hard disk needs to be adjusted according to the access overhead, and the length of the data transmission path needs to be inversely proportional to the size of the access overhead. In this way, even if the access overhead between the network card and the hard disk is high, but the data transmission path between the network card and the hard disk is short, the data transmission delay will be reduced.

[0082] In an exemplary embodiment, adjusting the data transmission path refers to adjusting the data transmission path between the network card and the hard disk accessed via the CPU slot. For example, a PCIe switch (bridge) can be deployed on each CPU socket. The PCIe bridge can connect different PCIe buses and act as a relay station for data transmission, so that different buses can communicate and exchange data. The PCIe bridge supports the Non-Transparent Bridging (NTB) function to achieve cross-Socket device migration. The hardware structure is as follows: Figure 2 As shown, in this way, it is only necessary to adjust the data transmission path between the network card and the hard disk through the PCIe bridge according to the access overhead so that the length of the data transmission path is inversely proportional to the size of the access overhead. It should be noted that, in the case where multiple network cards access multiple hard disks, that is, when there is parallel access between the network card and the hard disk, after obtaining the access overhead of each group of network cards and hard disks, the data transmission path between the network card with the large access overhead and the hard disk can be adjusted first, that is, the data transmission path between the network card with the large access overhead and the hard disk can be adjusted first based on all the transmission paths in the distributed storage cluster. After the adjustment is completed, the data transmission path between the network card with the large access overhead and the hard disk is ensured to remain unchanged. Then, the data transmission path between the network card with the small access overhead and the hard disk is adjusted so that all the transmission paths in the distributed storage cluster can be used by the network card and the hard disk, and there will be no competition between the network card and the hard disk for the data transmission path, thereby ensuring the stability of the network card accessing the hard disk.

[0083] In an exemplary embodiment, considering that a network card or hard disk may be offline due to a failure, in order to cope with this situation, the initial load weight of each NUMA (Non-Uniform Memory Access) can be determined based on the number of NUMAs on a single CPU. For example, 100% is divided by the number of NUMAs on the CPU to obtain the initial load weight of each NUMA. For each NUMA, the initial load weight is reduced and adjusted based on the number of bound devices on the NUMA to obtain a target load weight. The number of bound devices is positively correlated with the strength of the reduction adjustment. For example, for each bound device on the NUMA, the initial load weight is reduced by B%, and B can be 3, 5, etc. Based on the target load weight, the devices bound to the NUMA are adjusted, such as moving the device to the NUMA with the largest target load weight.

[0084] The present application provides a data transmission adjustment method, which determines the deployment location information of a network card and a hard disk on a CPU slot in a distributed storage cluster; determines the access topology distance between the network card and the hard disk based on the deployment location information; collects the access traffic between the network card and the hard disk; generates the access overhead between the network card and the hard disk based on the access topology distance and the access traffic; and adjusts the data transmission path between the network card and the hard disk based on the access overhead so that the length of the data transmission path is inversely proportional to the size of the access overhead. In this application, it is taken into account that the deployment position of the network card and the hard disk on the CPU slot will affect the access overhead between the network card and the hard disk. For example, if the network card and the hard disk are located on different CPU slots, the access overhead is large. Therefore, it is necessary to determine the deployment position information of the network card and the hard disk on the CPU slot in the distributed storage cluster, and determine the access topology distance between the network card and the hard disk based on the deployment position information, so as to quantify the impact of the deployment position on the access overhead with the help of the access topology distance, and it is necessary to generate the access overhead between the network card and the hard disk based on the actual access traffic, so as to realize the calculation of the actual access overhead based on the actual traffic between the network card and the hard disk. In this way, if the data transmission path between the network card and the hard disk is adjusted based on the access overhead, the length of the data transmission path between the network card with large actual access overhead and the hard disk can be made shorter, which can reduce the data transmission delay compared with the solution with large access overhead and long data transmission path.

[0085] To facilitate understanding the data transfer adjustment solution provided in this application, assume that a distributed storage cluster uses a dual-socket server (2 x AMD EPYC CPUs, each with 8 dies), configured with two RoCE network cards and four NVMe SSDs, and needs to handle high-concurrency video stream write requests. The data transfer adjustment process can be as follows:

[0086] Determine the deployment location information of the network cards and hard disks on the CPU slots in the distributed storage cluster. For example, it is detected that SSD1-2 and network card 1 are located in Socket 0, and SSD3-4 and network card 2 are located in Socket 1.

[0087] Determine the access topological distance between the network card and the hard disk according to the deployment location information, for example, by parsing the deployment location information; in response to the deployment location information indicating that the hard disk and the network card are located in the same CPU slot, determine the access topological distance between the network card and the hard disk to be 1; in response to the deployment location information indicating that the hard disk and the network card are located in different CPU slots of the same CPU, determine the access topological distance between the network card and the hard disk to be 2; in response to the deployment location information indicating that the hard disk and the network card are located in different CPUs, determine the access distance between the network card and the hard disk to be 3;

[0088] Collect access traffic between network cards and hard disks. For example, monitoring shows frequent cross-socket access between network card 1 and SSDs 3-4 (accounting for 70% of the total traffic).

[0089] Based on the access topology distance and the access traffic, the access cost between the network card and the hard disk is generated, for example, the access topology distance is parsed; in response to the access topology distance being 1, the value of the first coefficient is determined to be 0, and the value of the second coefficient is determined to be 0; in response to the access topology distance being 2, the value of the first coefficient is determined to be 1, and the value of the second coefficient is determined to be 0; the access topology distance is 3, the value of the first coefficient is determined to be 1, and the value of the second coefficient is determined to be 1; the set basic cost value for cross-CPU access is obtained; the access traffic and the basic cost value are calculated based on the first coefficient and the second coefficient to obtain the access cost between the network card and the hard disk;

[0090] Based on the access overhead, adjust the data transmission path between the network card and the hard disk so that the length of the data transmission path is inversely proportional to the access overhead. For example, migrate SSD 3-4 to Socket 0 through the PCIe bridge (switch the PCIe path through NTB).

[0091] When the video stream write service requests memory, the driver forcibly allocates it to Socket 0 Die 2, that is, it is forcibly allocated to the area close to network card 1 and SSD 3-4;

[0092] RoCE NIC 1 writes data directly to local Die memory via RDMA Write, and SSDs 3-4 read the memory via PCIe P2P.

[0093] Assume that Socket 0 network card 1 fails. After calculation through the data transmission adjustment algorithm of this application, the service will be switched to other network cards in the same device first, that is, the traffic will be automatically switched to Socket 1 network card 2. At the same time, to ensure the shortest path distance between the SSD and the network card, SSD1-2 will be migrated to Socket 1 through the PCie bridge.

[0094] Testing has shown that the data transmission adjustment system provided in this application can reduce cross-socket access latency by 40-60% and cross-die access latency by 15-25%. It can also increase RoCE network throughput by 30%, NVMe SSD IOPS by 20%, and improve NUMA load balancing by 50%.

[0095] See also Figure 3 , Figure 3 A structural diagram of a data transmission adjustment system provided in an embodiment of the present application.

[0096] An embodiment of the present application provides a data transmission adjustment system, which may include:

[0097] A deployment determination module 101 is used to determine the deployment location information of the network card and hard disk on the CPU slot in the distributed storage cluster;

[0098] A topology distance determination module 102 is configured to determine an access topology distance between a network card and a hard disk based on the deployment location information;

[0099] Traffic collection module 103, used to collect access traffic between the network card and the hard disk;

[0100] The cost generating module 104 is used to generate the access cost between the network card and the hard disk based on the access topology distance and the access flow;

[0101] The path adjustment module 105 is configured to adjust the data transmission path between the network card and the hard disk according to the access cost, so that the length of the data transmission path is inversely proportional to the size of the access cost.

[0102] In a data transmission adjustment system provided in an embodiment of the present application, a topological distance determination module may include:

[0103] A first parsing unit is configured to parse the deployment location information; in response to the deployment location information indicating that the hard disk and the network card are located in the same CPU slot, determine the access topological distance between the network card and the hard disk as a first distance value; in response to the deployment location information indicating that the hard disk and the network card are located in different CPU slots of the same CPU, determine the access topological distance between the network card and the hard disk as a second distance value; in response to the deployment location information indicating that the hard disk and the network card are located in different CPUs, determine the access distance between the network card and the hard disk as a third distance value;

[0104] The third distance value is greater than the second distance value, and the second distance value is greater than the first distance value.

[0105] In an embodiment of the present application, a data transmission adjustment system is provided, wherein an overhead generation module may include:

[0106] a second parsing unit, configured to parse the access topology distance; in response to the access topology distance being a first distance value, determining the value of the first coefficient to be 0 and the value of the second coefficient to be 0; in response to the access topology distance being a second distance value, determining the value of the first coefficient to be 1 and the value of the second coefficient to be 0; and in response to the access topology distance being a third distance value, determining the value of the first coefficient to be 1 and the value of the second coefficient to be 1;

[0107] A first obtaining unit is used to obtain a set basic cost value for cross-CPU access;

[0108] The first generating unit is configured to calculate the access traffic and the basic cost value based on the first coefficient and the second coefficient to obtain the access cost between the network card and the hard disk.

[0109] An embodiment of the present application provides a data transmission adjustment system, in which the first generation unit can be used to: perform a multiplication operation on the access traffic based on a first coefficient to obtain a first operation result; perform an addition operation on the basic overhead value based on a second coefficient to obtain a second operation result; and generate the access overhead between the network card and the hard disk based on the sum of the first operation result and the second operation result.

[0110] In a data transmission adjustment system provided in an embodiment of the present application, a topological distance determination module may include:

[0111] A first determining unit is used to determine a CPU number value corresponding to each CPU;

[0112] The second determining unit is configured to determine CPU slot number values ​​corresponding to the CPU slots one by one, wherein the increment interval of the CPU number values ​​is greater than the increment interval of the CPU slot number values;

[0113] A third determining unit is configured to determine the CPU number value and the CPU slot number value of each location of the network card and the hard disk according to the deployment location information;

[0114] a second generating unit, configured to generate a first difference between the number of the CPU slot where the network card is located and the number of the CPU slot where the hard disk is located, and use the absolute value of the first difference as the access topology distance between the network card and the hard disk;

[0115] The third generating unit is used to generate a second difference between the CPU number value of the location where the network card is located and the CPU number value of the location where the hard disk is located, and use the absolute value of the second difference as the access topology distance between the network card and the hard disk.

[0116] In an embodiment of the present application, a data transmission adjustment system is provided, wherein an overhead generation module may include:

[0117] The second obtaining unit is used to obtain a set basic cost value for cross-CPU access;

[0118] a first operation unit, configured to perform a multiplication operation on the access traffic based on the absolute value of the first difference to obtain a third operation result;

[0119] a second operation unit, configured to perform an addition operation on the basic cost value based on the absolute value of the second difference to obtain a fourth operation result;

[0120] The fourth generating unit is configured to generate an access overhead between the network card and the hard disk based on a sum of the third operation result and the fourth operation result.

[0121] The data transmission adjustment system provided in the embodiment of the present application may further include:

[0122] An initial load weight determination module is used to determine the initial load weight of each NUMA based on the number of NUMAs on a single CPU;

[0123] A target load weight determination module is configured to adjust the initial load weight downward for each NUMA according to the number of bound devices on the NUMA to obtain a target load weight, wherein a greater number of bound devices is positively correlated with a greater degree of downward adjustment.

[0124] The device adjustment module is used to adjust the devices bound to NUMA based on the target load weight.

[0125] The present application also provides an electronic device and a computer-readable storage medium, both of which have the corresponding effects of the data transmission adjustment method provided in the embodiment of the present application. Figure 4 , Figure 4 A schematic diagram of the structure of an electronic device provided in an embodiment of the present application.

[0126] An electronic device provided in an embodiment of the present application includes a memory 201 and a processor 202. The memory 201 stores a computer program, and when the processor 202 executes the computer program, the steps of the data transmission adjustment method described in any of the above embodiments are implemented.

[0127] See also Figure 5 Another electronic device provided in an embodiment of the present application may further include: an input port 203 connected to the processor 202 for transmitting commands inputted from the outside to the processor 202; a display unit 204 connected to the processor 202 for displaying the processing results of the processor 202 to the outside world; and a communication module 205 connected to the processor 202 for enabling communication between the electronic device and the outside world. The display unit 204 may be a display panel, a laser scanning display, etc. The communication method adopted by the communication module 205 includes but is not limited to Mobile High-Definition Link (MHL), Universal Serial Bus (USB), High-Definition Multimedia Interface (HDMI), wireless connection: Wireless Fidelity (WiFi), Bluetooth communication technology, Bluetooth low energy communication technology, and communication technology based on IEEE802.11s.

[0128] An embodiment of the present application provides a computer-readable storage medium, in which a computer program is stored. When the computer program is executed by a processor, the steps of the data transmission adjustment method described in any of the above embodiments are implemented.

[0129] The computer-readable storage medium involved in this application includes random access memory (RAM), memory, read-only memory (ROM), electrically programmable ROM, electrically erasable programmable ROM, registers, hard disks, removable disks, CD-ROMs (Compact Disc Read-Only Memory), or any other form of storage medium known in the technical field.

[0130] An embodiment of the present application provides a computer program product, including a computer program / instruction, which, when executed by a processor, implements the steps of the data transmission adjustment method described in any of the above embodiments.

[0131] For the description of the relevant parts of the data transmission adjustment system, electronic device, computer program product, and computer-readable storage medium provided in the embodiments of the present application, please refer to the detailed description of the corresponding parts in the data transmission adjustment method provided in the embodiments of the present application, and no further details are given here. In addition, the parts of the above-mentioned technical solutions provided in the embodiments of the present application that are consistent with the implementation principles of the corresponding technical solutions in the prior art are not described in detail to avoid excessive elaboration.

[0132] It should also be noted that, in this document, relational terms such as first and second, etc., are used only to distinguish one entity or operation from another entity or operation, and do not necessarily require or imply any such actual relationship or order between these entities or operations. Moreover, the terms "comprises," "comprising," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or device comprising a series of elements includes not only those elements, but also other elements not explicitly listed, or elements inherent to such process, method, article, or device. In the absence of further limitations, an element defined by the phrase "comprising a ..." does not exclude the presence of additional identical elements in the process, method, article, or device comprising the element.

[0133] The above description of the disclosed embodiments will enable one skilled in the art to implement or use the present application. Various modifications to these embodiments will be readily apparent to one skilled in the art, and the general principles defined herein may be implemented in other embodiments without departing from the spirit or scope of the present application. Therefore, the present application is not limited to the embodiments shown herein, but is intended to conform to the widest scope consistent with the principles and novel features disclosed herein.

Claims

1. A data transmission adjustment method, characterized in that: include: Determine the deployment location information of network cards and hard disks on CPU slots in a distributed storage cluster; Determining an access topology distance between the network card and the hard disk based on the deployment location information; Collect access traffic between the network card and the hard disk; generating access overhead between the network card and the hard disk based on the access topology distance and the access traffic; According to the access overhead, the data transmission path between the network card and the hard disk is adjusted so that the length of the data transmission path is inversely proportional to the size of the access overhead.

2. The data transmission adjustment method according to claim 1, characterized in that: The determining the access topology distance between the network card and the hard disk according to the deployment location information includes: parsing the deployment location information; In response to the deployment location information indicating that the hard disk and the network card are located on the same CPU slot, determining an access topology distance between the network card and the hard disk as a first distance value; In response to the deployment location information indicating that the hard disk and the network card are located in different CPU slots of the same CPU, determining an access topology distance between the network card and the hard disk as a second distance value; In response to the deployment location information indicating that the hard disk and the network card are located in different CPUs, determining an access distance between the network card and the hard disk as a third distance value; The third distance value is greater than the second distance value, and the second distance value is greater than the first distance value.

3. The data transmission adjustment method according to claim 2, wherein: The step of generating the access overhead between the network card and the hard disk based on the access topology distance and the access traffic includes: Analyzing the access topological distance; In response to the access topology distance being the first distance value, determining the value of the first coefficient to be 0, and determining the value of the second coefficient to be 0; In response to the access topology distance being the second distance value, determining the value of the first coefficient to be 1 and the value of the second coefficient to be 0; In response to the access topological distance being the third distance value, determining the value of the first coefficient to be 1 and determining the value of the second coefficient to be 1; Get the basic cost value for cross-CPU access; The access traffic and the basic cost value are calculated based on the first coefficient and the second coefficient to obtain the access cost between the network card and the hard disk.

4. The data transmission adjustment method according to claim 3, characterized in that: The calculating the access traffic and the basic cost value based on the first coefficient and the second coefficient to obtain the access cost between the network card and the hard disk includes: Performing a multiplication operation on the access traffic based on the first coefficient to obtain a first operation result; Performing an addition operation on the basic cost value based on the second coefficient to obtain a second operation result; An access overhead between the network card and the hard disk is generated based on the sum of the first operation result and the second operation result.

5. The data transmission adjustment method according to claim 1, wherein: The determining the access topology distance between the network card and the hard disk according to the deployment location information includes: Determine the CPU number value that corresponds one to one with the CPU; Determine the CPU slot number values ​​that correspond one-to-one to the CPU slots, and the increment interval of the CPU number value is greater than the increment interval of the CPU slot number value; Determine the CPU number and CPU slot number of each of the network card and hard disk according to the deployment location information; Generate a first difference between the number of the CPU slot where the network card is located and the number of the CPU slot where the hard disk is located, and use the absolute value of the first difference as the access topology distance between the network card and the hard disk; A second difference between the CPU number value at the location of the network card and the CPU number value at the location of the hard disk is generated, and an absolute value of the second difference is used as the access topology distance between the network card and the hard disk.

6. The data transmission adjustment method according to claim 5, characterized in that: The step of generating the access overhead between the network card and the hard disk based on the access topology distance and the access traffic includes: Get the basic cost value for cross-CPU access; performing a multiplication operation on the access traffic based on the absolute value of the first difference to obtain a third operation result; Performing an addition operation on the basic cost value based on the absolute value of the second difference to obtain a fourth operation result; Based on the sum of the third operation result and the fourth operation result, an access overhead between the network card and the hard disk is generated.

7. The data transmission adjustment method according to any one of claims 1 to 6, characterized in that: Also includes: Determine the initial load weight of each NUMA based on the number of NUMAs on a single CPU; For each NUMA, the initial load weight is adjusted downward according to the number of bound devices on the NUMA to obtain a target load weight, and the number of bound devices is positively correlated with the strength of the downward adjustment; Based on the target load weight, the devices bound to the NUMA are adjusted.

8. A data transmission adjustment system, characterized in that: include: The deployment determination module is used to determine the deployment location information of the network card and hard disk on the CPU slot in the distributed storage cluster; A topology distance determination module, configured to determine an access topology distance between the network card and the hard disk according to the deployment location information; Traffic collection module, used to collect access traffic between network cards and hard disks; A cost generating module, configured to generate an access cost between the network card and the hard disk based on the access topology distance and the access traffic; The path adjustment module is used to adjust the data transmission path between the network card and the hard disk according to the access cost, so that the length of the data transmission path is inversely proportional to the size of the access cost.

9. An electronic device, characterized in that: include: memory for storing computer programs; A processor, configured to implement the steps of the data transmission adjustment method according to any one of claims 1 to 7 when executing the computer program.

10. A computer-readable storage medium, characterized in that The computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, the steps of the data transmission adjustment method according to any one of claims 1 to 7 are implemented.