Bandwidth allocation method
By determining data communication resources and dynamically adjusting bandwidth allocation strategies when the server is powered on, the problem of low PCIe bandwidth allocation efficiency is solved, achieving more efficient resource utilization and improved system performance.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- INSPUR SUZHOU INTELLIGENT TECH CO LTD
- Filing Date
- 2024-12-31
- Publication Date
- 2026-06-30
AI Technical Summary
The allocation of PCIe bandwidth is limited by a fixed configuration method, resulting in low allocation efficiency in complex systems with multiple hosts or multiple concurrent tasks, which affects the system's flexibility and performance.
By determining data communication resources when the server is first powered on, the bandwidth allocation strategy is dynamically adjusted based on the maximum available bandwidth and occupancy status. The resource occupancy is monitored in real time using the baseboard management controller and programmable logic controller to optimize the allocation of PCIe resources.
It improves the efficiency of PCIe bandwidth allocation, ensures that critical applications receive sufficient bandwidth, avoids performance bottlenecks, and achieves rational utilization of resources and improved system performance.
Smart Images

Figure CN120045489B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the fields of computer hardware and server architecture technology, and more specifically, to a bandwidth allocation method. Background Technology
[0002] Currently, with the rapid development of computer technology, the high-speed version of the Peripheral Component Interconnect Express (PCIe) bus has become the main interface standard for connecting the Central Processing Unit (CPU) with various high-speed peripherals (such as graphics cards, network cards, storage devices, etc.).
[0003] However, PCIe bandwidth allocation is usually limited by fixed configuration methods, such as single-host configuration. This limits the flexibility and performance of the system in different application scenarios. In particular, in complex systems with multiple hosts or multiple concurrent tasks, there is a technical problem of inefficient bandwidth allocation to components.
[0004] The related technologies suffer from low efficiency in allocating bandwidth to components. Currently, no effective solution has been proposed; therefore, it is necessary to improve the related technologies to overcome these deficiencies. Summary of the Invention
[0005] This application provides a bandwidth allocation method to at least solve the technical problem of low efficiency in allocating bandwidth to components in related technologies.
[0006] According to one embodiment of this application, a bandwidth allocation method is provided, comprising: in response to the server's first power-on, determining data communication resources of a first component in the server; determining the maximum available bandwidth of a second component in the server based on the data communication resources, wherein the bandwidth usage order of the first component is prior to that of the second component; determining an initial bandwidth allocation strategy for the second component based on the maximum available bandwidth, wherein the initial bandwidth allocation strategy is used to represent the rules for allocating bandwidth to the second component; determining the occupancy status of the data communication resources during server operation, and adjusting the initial bandwidth allocation strategy based on the occupancy status to obtain a target bandwidth allocation strategy; and allocating bandwidth to the second component according to the target bandwidth allocation strategy.
[0007] In one exemplary embodiment, determining the maximum available bandwidth of a second component in a server based on data communication resources includes: determining the maximum available bandwidth of the second component based on the occupancy status of the data communication resources.
[0008] In an exemplary embodiment, before determining the maximum available bandwidth of the second component based on the occupancy status of data communication resources, the method further includes: monitoring the reset signal of the first component based on a programmable logic controller to obtain a first monitoring result; and determining the occupancy status of data communication resources based on the first monitoring result.
[0009] In an exemplary embodiment, determining the occupancy status of data communication resources based on a first monitoring result includes: in response to the first monitoring result indicating that a reset signal is in a target state, determining the occupancy status of the data communication resources as an occupied state.
[0010] In an exemplary embodiment, after determining the occupancy status of data communication resources based on the first monitoring result, the method further includes: storing the occupancy status to a register of a programmable logic controller.
[0011] In an exemplary embodiment, bandwidth is allocated to the second component according to a target bandwidth allocation strategy, including: allocating unoccupied data communication resources to the hard disk of the second component in response to the number of data communication resources in an occupied state being greater than or equal to a first quantity threshold; transmitting configuration information in the registers of the programmable logic controller to the baseboard management controller in response to the number of data communication resources in an occupied state being less than the first quantity threshold; controlling the baseboard management controller to monitor the status of memory resources in the server and obtaining a second monitoring result when the baseboard management controller receives the configuration information; allocating data communication resources corresponding to the memory resources to the second component in response to the second monitoring result indicating that the number of memory resources in an idle state is a first quantity; and allocating data communication resources corresponding to the memory resources to the second component based on the architecture information of the target component in response to the second monitoring result indicating that the number of memory resources in an idle state is a second quantity, or that all memory resources are in a non-idle state.
[0012] In an exemplary embodiment, determining the occupancy status of data communication resources during server operation includes: monitoring the data communication resources using a baseboard management controller during server operation to obtain the occupancy status.
[0013] In an exemplary embodiment, after monitoring the data communication resources using the baseboard management controller and obtaining the occupancy status, the method further includes: controlling the baseboard management controller to synchronize the monitored occupancy status to the programmable logic controller.
[0014] In one exemplary embodiment, adjusting the initial bandwidth allocation strategy based on the occupancy status to obtain a target bandwidth allocation strategy includes: controlling the programmable logic controller to adjust the initial bandwidth allocation strategy based on the occupancy status to obtain the target bandwidth allocation strategy.
[0015] In an exemplary embodiment, controlling the programmable logic controller to adjust the initial bandwidth allocation strategy based on the occupancy status to obtain the target bandwidth allocation strategy includes: in response to the occupancy status being occupied and the number of data communication resources in the occupied state being greater than a second quantity threshold, controlling the programmable logic controller to adjust the initial bandwidth allocation strategy to obtain the target bandwidth allocation strategy.
[0016] According to another embodiment of this application, a bandwidth allocation apparatus is also provided, comprising: a first determining unit, configured to determine data communication resources of a first component in the server in response to the server's first power-on; a second determining unit, configured to determine the maximum available bandwidth of a second component in the server based on the data communication resources, wherein the bandwidth usage order of the first component is prior to that of the second component; a third determining unit, configured to determine an initial bandwidth allocation strategy for the second component based on the maximum available bandwidth, wherein the initial bandwidth allocation strategy represents the rules for allocating bandwidth to the second component; an adjusting unit, configured to determine the occupancy status of the data communication resources during server operation, and adjust the initial bandwidth allocation strategy based on the occupancy status to obtain a target bandwidth allocation strategy; and an allocation unit, configured to allocate bandwidth to the second component according to the target bandwidth allocation strategy.
[0017] According to yet another embodiment of this application, a computer-readable storage medium is also provided, in which a computer program is stored, wherein the computer program is configured to perform the steps in any of the above method embodiments when it is run.
[0018] According to yet another embodiment of this application, an electronic device is also provided, including a memory and a processor, wherein a computer program is stored in the memory and the processor is configured to run the computer program to perform the steps in any of the above method embodiments.
[0019] According to yet another embodiment of this application, a computer program product is also provided, including a computer program that, when executed by a processor, implements the steps in any of the above method embodiments.
[0020] This application addresses the following: upon the server's initial power-on, the data communication resources of a first component within the server are determined; based on these resources, the maximum available bandwidth of a second component within the server is determined, wherein the bandwidth usage order of the first component precedes that of the second component; based on the maximum available bandwidth, an initial bandwidth allocation strategy for the second component is determined, whereby the initial bandwidth allocation strategy represents the rules for allocating bandwidth to the second component; during server operation, the occupancy status of the data communication resources is determined, and based on this status, the initial bandwidth allocation strategy is adjusted to obtain a target bandwidth allocation strategy; bandwidth is allocated to the second component according to the target bandwidth allocation strategy, thereby solving the technical problem of low efficiency in allocating bandwidth to components and achieving the technical effect of improving the efficiency of bandwidth allocation to components. Attached Figure Description
[0021] The accompanying drawings, which are included to provide a further understanding of this application and form part of this application, illustrate exemplary embodiments and are used to explain this application, but do not constitute an undue limitation of this application. In the drawings:
[0022] Figure 1 This is a hardware structure block diagram of a server device for a bandwidth allocation method according to an embodiment of this application;
[0023] Figure 2 This is a flowchart of a bandwidth allocation method according to an embodiment of this application;
[0024] Figure 3 This is a schematic diagram of an optional CPU internal architecture according to an embodiment of this application;
[0025] Figure 4 This is a schematic diagram of an optional PCIe topology for an NVMe disk according to an embodiment of this application;
[0026] Figure 5 This is a schematic diagram of an optional topology adjustment of a PCIe Switch according to an embodiment of this application;
[0027] Figure 6 This is a flowchart of a server hardware performance tuning method according to an embodiment of this application;
[0028] Figure 7 This is a schematic diagram of an optional CPLD signal monitoring according to an embodiment of this application;
[0029] Figure 8 This is a schematic diagram of the structure of a bandwidth allocation device according to an embodiment of this application;
[0030] Figure 9 This is a schematic diagram of the structure of an electronic device according to an embodiment of this application. Detailed Implementation
[0031] The embodiments of this application will be described in detail below with reference to the accompanying drawings and examples.
[0032] It should be noted that the terms "first," "second," etc., in the specification, claims, and drawings of this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence.
[0033] The methods and embodiments provided in this application can be executed on a server device or a similar computing device. Taking running on a server device as an example, Figure 1 This is a hardware structure block diagram of a server device for a bandwidth allocation method according to an embodiment of this application. Figure 1 As shown, the server device may include one or more ( Figure 1 Only one is shown in the diagram. A processor 102 (which may include, but is not limited to, a microprocessor MCU or a programmable logic device FPGA, etc.) and a memory 104 for storing data are also shown. The server device may further include a transmission device 106 for communication functions and an input / output device 108. Those skilled in the art will understand that... Figure 1 The structure shown is for illustrative purposes only and does not limit the structure of the server equipment described above. For example, the server equipment may also include components that are more... Figure 1 The more or fewer components shown, or having the same Figure 1 The different configurations shown.
[0034] The memory 104 can be used to store computer programs, such as application software programs and modules, like the computer program corresponding to the bandwidth allocation method in this embodiment. The processor 102 executes various functional applications and data processing by running the computer program stored in the memory 104, thus implementing the above-described method. The memory 104 may include high-speed random access memory and may also include non-volatile memory, such as one or more magnetic storage devices, flash memory, or other non-volatile solid-state memory. In some instances, the memory 104 may further include memory remotely located relative to the processor 102, and these remote memories can be connected to server devices via a network. Examples of such networks include, but are not limited to, the Internet, corporate intranets, local area networks, mobile communication networks, and combinations thereof.
[0035] The transmission device 106 is used to receive or send data via a network. Specific examples of the network described above may include a wireless network provided by a communication provider for the server device. In one example, the transmission device 106 includes a Network Interface Controller (NIC), which can connect to other network devices via a base station to communicate with the Internet. In another example, the transmission device 106 may be a Radio Frequency (RF) module used for wireless communication with the Internet.
[0036] This embodiment provides a bandwidth allocation method. Figure 2 This is a flowchart of a bandwidth allocation method according to an embodiment of this application, such as... Figure 2 As shown, the process includes the following steps:
[0037] Step S202: In response to the server's first power-on, determine the data communication resources of the first component in the server.
[0038] In step S202 above, when the server is powered on for the first time, the data communication resources of the first component in the server can be determined. The first component can be various hardware components of the server, including but not limited to the CPU, memory controller, network adapter (NIC), etc. This is only an example and no specific limitation is made on the type of the first component. If the data communication resources can be PCIe resources, then the first component can be a hardware device that occupies PCIe resources.
[0039] Step S204: Based on data communication resources, determine the maximum available bandwidth of the second component in the server, wherein the bandwidth usage order of the first component is higher than that of the second component.
[0040] In step S204 above, after determining the data communication resources of the first component in the server in response to the server's first power-on, the maximum available bandwidth of the second component in the server can be determined based on the determined data communication resources. The second component can be downstream of the first component, meaning the bandwidth usage of the first component takes precedence over the second component. The second component can be a backend component, such as a data storage system, including hard drives, solid-state drives (SSDs), storage devices (e.g., NVMe hard drives), etc. This is merely an example and does not impose specific restrictions on the type of the second component.
[0041] Optionally, when the server powers on for the first time, the maximum available bandwidth for the backend can be determined based on the device's PCIe resources. For example, the maximum available bandwidth for the backend can be determined based on the PCIe resource usage.
[0042] Step S206: Based on the maximum available bandwidth, determine the initial bandwidth allocation strategy for the second component, wherein the initial bandwidth allocation strategy is used to represent the rules for allocating bandwidth to the second component.
[0043] In step S206 above, after determining the maximum available bandwidth of the second component in the server based on data communication resources, an initial bandwidth allocation strategy for the second component can be determined based on the determined maximum available bandwidth. The initial bandwidth allocation strategy can be used to represent the rules for allocating bandwidth to the second component.
[0044] Step S208: During the operation of the server, the occupancy status of data communication resources is determined, and based on the occupancy status, the initial bandwidth allocation strategy is adjusted to obtain the target bandwidth allocation strategy.
[0045] In step S208 above, after determining the initial bandwidth allocation strategy for the second component based on the maximum available bandwidth, the occupancy status of data communication resources can be determined during server operation. After determining the occupancy status of data communication resources, the initial bandwidth allocation strategy can be adjusted based on the determined occupancy status to obtain the target bandwidth allocation strategy.
[0046] Optionally, when the server is running, the Baseboard Management Controller (BMC) can be used to monitor the server's PCIe and memory resource usage in real time. Based on the determined usage status, the initial bandwidth allocation strategy can be adjusted to obtain the target bandwidth allocation strategy. The BMC can be a dedicated controller for monitoring and managing the server.
[0047] Optionally, after using the BMC to monitor the occupancy status of the server's PCIe and memory resources in real time, the BMC can synchronize the occupancy status (real-time service status) to the Complex Programmable Logic Device (CPLD). The CPLD then adjusts the initial bandwidth allocation strategy to obtain the target bandwidth allocation strategy.
[0048] It should be noted that a CPLD is a more complex logic element compared to a Programmable Logic Device (PLD). A CPLD is a digital integrated circuit whose logic functions are constructed by the user according to their specific needs. The basic design method of a CPLD involves using an integrated development environment (IDE) platform, employing schematic diagrams, hardware description languages, and other methods to generate corresponding target files. The code is then transferred to the target chip via a download cable (in-system programming) to realize the designed digital system.
[0049] Step S210: Allocate bandwidth to the second component according to the target bandwidth allocation strategy.
[0050] In step S210 above, after adjusting the initial bandwidth allocation strategy based on the occupancy status to obtain the target bandwidth allocation strategy, bandwidth can be allocated to the second component according to the obtained target bandwidth allocation strategy. The second component can be a PCIe switch.
[0051] Optionally, after adjusting the initial bandwidth allocation strategy to obtain the target bandwidth allocation strategy, the CPLD can control the reasonable allocation of bandwidth for the Switch card. A PCIe Switch is a hardware device that provides expansion or aggregation capabilities, allowing more devices to connect to a single PCIe port.
[0052] Through the above steps, in response to the server's first power-on, the data communication resources of the first component in the server are determined; based on the data communication resources, the maximum available bandwidth of the second component in the server is determined, wherein the bandwidth usage order of the first component is prioritized over that of the second component; based on the maximum available bandwidth, an initial bandwidth allocation strategy for the second component is determined, wherein the initial bandwidth allocation strategy represents the rules for allocating bandwidth to the second component; during server operation, the occupancy status of the data communication resources is determined, and based on the occupancy status, the initial bandwidth allocation strategy is adjusted to obtain a target bandwidth allocation strategy; according to the target bandwidth allocation strategy, bandwidth is allocated to the second component, thereby solving the technical problem of low efficiency in allocating bandwidth to components and achieving the technical effect of improving the efficiency of bandwidth allocation to components.
[0053] As an optional implementation, determining the maximum available bandwidth of the second component in the server based on data communication resources includes: determining the maximum available bandwidth of the second component based on the occupancy status of data communication resources.
[0054] In this embodiment, after determining the data communication resources of the first component in the server in response to the server's first power-on, the maximum available bandwidth of the second component can be determined based on the occupancy status of the data communication resources.
[0055] Optionally, the maximum available bandwidth of the backend can be determined based on the occupancy status of PCIe resources in the server.
[0056] As an optional implementation, before determining the maximum available bandwidth of the second component based on the occupancy status of data communication resources, the method further includes: monitoring the reset signal of the first component based on a programmable logic controller to obtain a first monitoring result; and determining the occupancy status of data communication resources based on the first monitoring result.
[0057] In this embodiment, based on a programmable logic controller (PLC), the reset (PERST) signal of the first component can be monitored to obtain a first monitoring result. After monitoring the reset signal of the first component and obtaining the first monitoring result, the occupancy status of data communication resources can be determined based on the obtained first monitoring result. The PLC can be a CPLD.
[0058] Optionally, in this embodiment, the CPU internally divides into four Non-Uniform Memory Access (NUMA) systems, each with 32 lanes of resources. Sixteen lanes are used for inter-CPU interconnection, i.e., the extended generalized memory interface (XGMI) signal, and the remaining sixteen lanes are used for PCIe expansion, connecting network cards, hard drives, and other devices. During PCIe device initialization, the first step is to pull the PERST signal high, and the CPLD monitors the PCIe PERST signals of the eight chips (DIEs) in real time. NUMA is an architectural model regarding how multiple CPUs access memory.
[0059] Through the above embodiments, the CPLD can monitor the PERST signal status to understand in real time which PCIe lanes are occupied and which are idle, thus providing an immediate data foundation for dynamic resource allocation. When the system powers on or the device initializes, the CPLD immediately detects changes in the PERST signal, quickly identifies available PCIe resources, and can immediately participate in resource allocation decisions, ensuring the timeliness and accuracy of resource allocation.
[0060] As an optional implementation, determining the occupancy status of data communication resources based on the first monitoring result includes: in response to the first monitoring result being a reset signal in a target state, determining the occupancy status of the data communication resources as an occupied state.
[0061] In this embodiment, after monitoring the reset signal of the first component and obtaining a first monitoring result, if the first monitoring result indicates that the reset signal is in a target state, then the data communication resource occupancy status can be determined to be an occupied state. The target state can be a high-level state.
[0062] Optionally, if the PERST signal is pulled high during the power-on process, it means that the corresponding lane has been occupied by other devices and cannot be used to connect an NVMe disk.
[0063] As an optional implementation, after determining the occupancy status of data communication resources based on the first monitoring result, the method further includes: storing the occupancy status to a register of the programmable logic controller.
[0064] In this embodiment, after determining the occupancy status of the data communication resources based on the first monitoring result, the determined occupancy status of the data communication resources can be stored in the register of the programmable logic controller.
[0065] Optionally, after determining that the PERST signal is pulled high during the power-on process and the corresponding lane has been occupied by other devices and cannot be used to connect the NVMe disk, the CPLD records the available lane in this step and writes it into the CPLD register.
[0066] As an optional implementation, bandwidth is allocated to the second component according to the target bandwidth allocation strategy, including: allocating unoccupied data communication resources to the hard disk of the second component in response to the number of data communication resources in the occupied state being greater than or equal to a first quantity threshold; transmitting configuration information in the register of the programmable logic controller to the baseboard management controller in response to the number of data communication resources in the occupied state being less than the first quantity threshold; controlling the baseboard management controller to monitor the status of memory resources in the server and obtaining a second monitoring result when the second monitoring result shows that the number of memory resources in the idle state is a first quantity, allocating the data communication resources corresponding to the memory resources to the second component; and allocating the data communication resources corresponding to the memory resources to the second component based on the architecture information of the target component in response to the second monitoring result showing that the number of memory resources in the idle state is a second quantity, or that all memory resources are in the non-idle state.
[0067] In this embodiment, Table 1 shows the number of DIEs available for two CPUs under six scenarios. In the first, second, and third scenarios, the service end (network card end) occupies 4 or 5 DIEs. A PCIe resource quantity greater than or equal to a first threshold can be used to measure that the service end is occupying more than half of the PCIe resources. In this case, the available bandwidth of the hard drive end should be prioritized, and the remaining PCIe resources should be allocated entirely to the PCIe switch. In the fourth, fifth, and sixth scenarios, the service end occupies 2 or 3 DIEs of PCIe resources. A PCIe resource quantity less than the first threshold can be used to measure that the service end is occupying fewer resources. In this case, considering front-end and back-end load balancing and network transmission loss, the hard drive end only needs to occupy one DIE on each of the two CPUs. In this case, the available bandwidth of the hard drive end is no longer prioritized, but the rationality of bandwidth allocation needs to be considered.
[0068] Optionally, for scenarios four, five, and six, when the CPLD detects a configuration that matches these three scenarios, it passes the configuration information in the register to the BMC. The BMC then checks whether there is free memory resource under the idle DIE. If only one DIE under the CPU has free memory resource, the Switch directly occupies the PCIe resource of that DIE without further checks. Here, the first quantity is 1, meaning that only one DIE has free memory resource.
[0069] If all idle DIEs have no memory available, or multiple DIEs have available memory, then the uplink resources of the Switch card need to be controlled based on the resource usage of the service network card. The allocation rules must be based on the CPU architecture (i.e., architecture information). For example, when the service network card occupies CPU0_DIE2 and CPU1_DIE3, the Switch card needs to occupy CPU1_DIE0 and CPU0_DIE1 to ensure that the NUMA interfaces of the network card and the Switch card can directly access each other. The second quantity refers to multiple DIEs, meaning multiple DIEs have available memory.
[0070] Table 1. Number of DIEs available for CPU
[0071]
[0072] The above embodiments categorize scenarios and adopt different PCIe resource allocation strategies. When the application side consumes a large amount of PCIe resources, the system will automatically identify the remaining allocable resources and prioritize allocating them to the PCIe switch on the hard drive side. This ensures that the NVMe hard drive can obtain sufficient bandwidth, thereby preventing storage performance from becoming a bottleneck. When the application side consumes fewer PCIe resources, the system will tend to achieve a balanced allocation of front-end and back-end resources rather than pursuing hard drive performance. This is achieved by allocating one DIE between the two CPUs to the hard drive side, ensuring the balance of network transmission and data processing, thereby avoiding any single point of overload.
[0073] As an optional implementation method, determining the occupancy status of data communication resources during server operation includes: monitoring the data communication resources using a baseboard management controller during server operation to obtain the occupancy status.
[0074] In this embodiment, during server operation, the baseboard management controller (BMC) can monitor data communication resources and obtain their occupancy status. Optionally, when the server is running, the BMC monitors the server's PCIe and memory resource occupancy status in real time.
[0075] Through the above embodiments, BMC can continuously monitor the usage of the PCIe bus and memory in the server. By analyzing this data, the system can intelligently adjust resource allocation to ensure that high-load services receive sufficient resources, thereby improving the overall system performance and efficiency. Real-time monitoring can quickly identify resource overload, abnormal usage patterns, or potential hardware failures (such as memory errors or PCIe connection problems), allowing system administrators to take timely measures to prevent system crashes or data loss.
[0076] As an optional implementation, after monitoring the data communication resources using the baseboard management controller and obtaining the occupancy status, the method further includes: controlling the baseboard management controller to synchronize the monitored occupancy status to the programmable logic controller.
[0077] In this embodiment, after monitoring the data communication resources using the baseboard management controller and obtaining the occupancy status, the baseboard management controller can synchronize the monitored occupancy status to the programmable logic controller (CPLD). Optionally, after the baseboard management controller monitors the server's PCIe and memory resource occupancy status in real time, the baseboard management controller can synchronize the real-time service status to the CPLD.
[0078] As an optional implementation, the initial bandwidth allocation strategy is adjusted based on the occupancy status to obtain the target bandwidth allocation strategy, including: controlling the programmable logic controller to adjust the initial bandwidth allocation strategy based on the occupancy status to obtain the target bandwidth allocation strategy.
[0079] In this embodiment, after the BMC synchronizes the monitored occupancy status to the programmable logic controller (PLC), the PLC can adjust the initial bandwidth allocation strategy based on the occupancy status to obtain the target bandwidth allocation strategy. Optionally, after the BMC synchronizes the real-time service status to the CPLD, the CPLD can control the reasonable allocation of bandwidth for the Switch card.
[0080] As an optional implementation, controlling the programmable logic controller to adjust the initial bandwidth allocation strategy based on the occupancy status to obtain the target bandwidth allocation strategy includes: in response to the occupancy status being occupied and the number of data communication resources in the occupied state being greater than a second quantity threshold, controlling the programmable logic controller to adjust the initial bandwidth allocation strategy to obtain the target bandwidth allocation strategy.
[0081] In this embodiment, after determining the occupancy status of data communication resources, when the occupancy status of data communication resources is "occupied" and the number of data communication resources in the "occupied" state is greater than a second quantity threshold, the programmable logic controller can be controlled to adjust the initial bandwidth allocation strategy to obtain the target bandwidth allocation strategy. The second quantity threshold can be a warning threshold set according to actual conditions.
[0082] The above embodiments, by setting early warning thresholds, trigger dynamic adjustments to the bandwidth allocation strategy when monitored resource usage reaches or exceeds a preset threshold. When the server's CPU or memory resource utilization is high, the allocation of PCIe resources is automatically adjusted to ensure that critical applications or high-load services receive sufficient bandwidth, thereby avoiding performance bottlenecks and improving overall system performance. Furthermore, dynamic adjustment can evenly distribute the load across different DIEs or CPUs, preventing some resources from being overloaded while others remain idle, thus enabling more rational utilization of the server's hardware resources.
[0083] This application addresses the following: upon the server's initial power-on, the data communication resources of a first component within the server are determined; based on these resources, the maximum available bandwidth of a second component within the server is determined, wherein the bandwidth usage order of the first component precedes that of the second component; based on the maximum available bandwidth, an initial bandwidth allocation strategy for the second component is determined, whereby the initial bandwidth allocation strategy represents the rules for allocating bandwidth to the second component; during server operation, the occupancy status of the data communication resources is determined, and based on this status, the initial bandwidth allocation strategy is adjusted to obtain a target bandwidth allocation strategy; bandwidth is allocated to the second component according to the target bandwidth allocation strategy, thereby solving the technical problem of low efficiency in allocating bandwidth to components and achieving the technical effect of improving the efficiency of bandwidth allocation to components.
[0084] Obviously, the embodiments described above are merely some embodiments of the present invention, and not all embodiments. To better understand the above method, the following description, in conjunction with embodiments, illustrates the process, but is not intended to limit the technical solutions of the embodiments of the present invention. Specifically:
[0085] With the rapid development of computer technology, the PCIe bus has become the primary interface standard for connecting the CPU with various high-speed peripherals (such as graphics cards, network cards, and storage devices). However, PCIe bandwidth allocation is usually limited by fixed configurations, such as single-host configurations, which restricts the system's flexibility and performance in different application scenarios. Especially in complex systems with multiple hosts or concurrent tasks, how to efficiently and flexibly allocate PCIe bandwidth has become a pressing issue.
[0086] In one alternative example, a performance tuning scheme for a distributed storage system is proposed. This scheme analyzes system performance by accessing server log files to determine the current business model and automatically adjusts performance parameters based on this model to achieve performance optimization. While this scheme achieves performance tuning from a software perspective, it lacks the flexibility to allocate hardware resources.
[0087] To address the aforementioned issues, this application proposes a server hardware performance optimization method. This method maximizes the utilization of hardware PCIe resources for servers with different shippable configurations, ensuring that backend NVMe disks receive the maximum PCIe bandwidth. During business operations, appropriate PCIe channels are automatically allocated based on the node's CPU or memory utilization.
[0088] Figure 3 This is a schematic diagram of an optional CPU internal architecture according to an embodiment of this application, such as... Figure 3 As shown, each CPU is internally divided into four NUMAs, named DIE0-DIE3, and there are four XGMI buses between the two CPUs to facilitate interconnection. Each CPU internally has two memory channels and four memory slots.
[0089] As shown in the CPU architecture diagram, each CPU's four NUMA modules have channels that allow direct communication between them. However, the situation differs when cross-CPU interactions are involved. For example, if DIE1 of CPU0 on the left needs to access the memory of DIE3 of CPU1 on the right, it can do so directly via the XGMI bus. But if DIE1 of CPU0 on the left needs to access the memory of DIE0 of CPU1 on the right, it cannot do so directly. It must access DIE3 via the XGMI bus and then access DIE0 via DIE3. This second method increases the time spent on the entire access process, significantly impacting performance in high-performance scenarios. This embodiment takes this scenario into consideration and proposes an optimal allocation scheme for PCIe resources to achieve performance optimization.
[0090] It's important to note that in the early days, each server had a single CPU. As technology advanced, the need for multiple CPUs to work together arose. To address this, hardware designers distributed the memory controller evenly across each die, thus creating the NUMA architecture. The NUMA architecture divides CPUs into different groups (nodes), each node consisting of one or more (physical) CPUs and having independent local memory, input / output (I / O) resources. In a NUMA architecture, each node has its own memory and computing resources, allowing processors to allocate resources more flexibly, improving overall performance and efficiency. Furthermore, the NUMA architecture can expand the processor's computing and storage capabilities by increasing the number of nodes, making it an architecture well-suited for large-scale parallel processing.
[0091] Figure 4 This is a schematic diagram of an optional NVMe disk PCIe topology according to an embodiment of this application, as shown below. Figure 4 As shown, PCIe signals can be used to represent high-speed data communication paths between the CPU and the PCIe switch, and between the PCIe switch and the NVMe hard drive. SAS signals can be used to represent the serial protocol (Serial Attached SCSI) connecting storage devices (such as hard drives) and the storage controller. I2C signals can be used to represent a bidirectional two-wire serial bus (Inter-Integrated Circuit) between the microcontroller and the microprocessor. PE0-3 can be used to represent specific PCIe or management interfaces. J101 (Slimline) can be used to represent the PCIe interface for connecting Slimline type devices (such as certain storage modules or expansion cards), and so on. Slot can be used to represent a slot on the motherboard for physically connecting various types of expansion cards or modules, such as PCIe cards and memory cards. Riser can be an interface or card for expanding motherboard slots. The markings FBP, FP_BP, and 12C_EPBPO can be used to represent specific areas or interfaces on the motherboard, such as the rear board (FBP), front board (FP_BP), and the I2C management interface associated with PCIe devices (I2C_EPBPO). Rear_BPO can be used to represent the server rear board or rear planar overlay, which is a board layer used to connect rear server devices or expansion interfaces, such as network ports or storage expansion cards. A Redundant Array of Independent Disks (RAID) card is a hardware device used to manage and implement RAID (Redundant Array of Independent Disks) technology.
[0092] To enable server NVMe disks to automatically obtain appropriate PCIe resources based on different configurations, a brief introduction to NVMe disk PCIe topology is provided. For example... Figure 4 As shown, this server supports 24 NVMe drives, with 12 drives connected to a PCIe Switch. The PCIe Switch is fixedly connected to the server's PCIe x16 slot. Servers typically use U.2 NVMe drives, which theoretically have an upstream bandwidth of PCIe x4. In this topology, the 12 drives share a single set of PCIe x16 bandwidth, meaning each drive can only utilize 1 / 3 of its theoretical bandwidth limit. In high-performance scenarios, this cannot achieve ideal performance.
[0093] To address the aforementioned issues, this embodiment proposes a hardware performance optimization solution, which may include: PCIe Switch topology optimization; determining the maximum available bandwidth in the backend based on the PCIe resource usage of the device when the server is first powered on; monitoring the server's PCIe and memory resource usage status during server operation; synchronizing the real-time service status to the CPLD, and the CPLD controlling the reasonable allocation of bandwidth for the Switch card.
[0094] First, regarding PCIe Switch topology optimization, as mentioned above, the current server PCIe Switch connection topology is given. The Switch's fixed connections are under a group of PCIeX16, resulting in limited available bandwidth. Figure 5 This is a schematic diagram of an optional PCIe Switch topology adjustment according to an embodiment of this application, as shown below. Figure 5 As shown, the topology of the PCIe Switch has been redesigned and optimized. Instead of connecting the 24 NVMe modules to two separate PCIe Switches, they are now connected to a single Switch. The upstream end of the Switch is simultaneously connected to the PCIe bus of 8 NUMA modules.
[0095] Figure 6 This is a flowchart of a server hardware performance tuning method according to an embodiment of this application, such as... Figure 6 As shown, the process of this server hardware performance tuning method may include the following steps:
[0096] Step S601: When the server is powered on for the first time, determine the maximum available bandwidth of the backend based on the PCIe resource usage of the device.
[0097] In the above steps, when the server is powered on for the first time, the maximum available bandwidth of the backend is determined based on the PCIe resource usage of the device. Figure 7 This is a schematic diagram of an optional CPLD signal monitoring according to an embodiment of this application, such as... Figure 7As shown, the CPU internally consists of four NUMAs, each with 32 lanes. Sixteen lanes are used for inter-CPU interconnection (XGMI signal), and the remaining sixteen lanes are used for PCIe expansion, connecting network cards, hard drives, and other devices. During PCIe device initialization, the first step is to pull the PERST signal high. The CPLD monitors the PCIe PERST signal of the eight DIEs in real time. If the PERST signal goes high during boot, it means the corresponding lane is already occupied by another device and cannot be used to connect an NVMe drive. The CPLD records the available lanes in this step and writes them to its register.
[0098] Step S602: When the server service is running, the BMC monitors the server's PCIe and memory resource usage status in real time.
[0099] In the above steps, when the server is running services, the BMC monitors the server's PCIe and memory resource usage in real time. After services are started on the device, the BMC monitors the system's resource usage (mainly memory usage) in real time to provide a basis for bandwidth allocation for the PCIe Switch.
[0100] Step S603: The BMC synchronizes the real-time business status to the CPLD.
[0101] In step S604, the CPLD controls the reasonable allocation of bandwidth for the Switch card.
[0102] In the above steps, the server's business data is generally input to the server through the business network. After the CPU processes the data, it is written to the hard disk (i.e., NVMe) through caching media such as memory. To achieve better performance, firstly, it is necessary to avoid situations where the network card and the NVMe disk access data across two DIEs to reduce the latency of communication between CPUs; secondly, it is necessary to ensure that the NUMA occupied by the NVMe disk is equipped with memory to avoid situations where memory resources need to be used across DIEs when writing data, thereby reducing the latency of writing data.
[0103] Table 1 presents the number of CPU-available DIEs and the corresponding PCIe resource allocation strategies for six scenarios, based on potential actual configurations; these details will not be elaborated upon here. Since reasonable bandwidth allocation requires consideration of both cross-DIE access between the network card and NVMe disks, and cross-DIE access of memory, cross-DIE memory access has a greater impact on test performance in actual testing. For scenarios four, five, and six, the uplink resources of the Switch card need to be controlled based on the resource usage of the service network card; the allocation rules must be based on the CPU architecture, which will also not be elaborated upon here.
[0104] This embodiment solves the problem of unreasonable PCIe resource allocation and improves the hardware performance of the device without affecting reliability by effectively cooperating between BMC, CPLD and Switch without adding new hardware modules.
[0105] This embodiment implements bandwidth allocation for the switch based on a CPLD, requiring minimal hardware modifications and offering high feasibility. By combining the CPLD, BMC, and switch, hardware PCIe resources can be utilized to the maximum extent. Resource allocation is completed through a PCIe switch, ensuring high hardware reliability.
[0106] In summary, through the above implementation method, in response to the server's first power-on, the data communication resources of the first component in the server are determined; based on the data communication resources, the maximum available bandwidth of the second component in the server is determined, wherein the bandwidth usage order of the first component is prior to that of the second component; based on the maximum available bandwidth, an initial bandwidth allocation strategy for the second component is determined, wherein the initial bandwidth allocation strategy is used to represent the rules for allocating bandwidth to the second component; during the server's operation, the occupancy status of the data communication resources is determined, and based on the occupancy status, the initial bandwidth allocation strategy is adjusted to obtain a target bandwidth allocation strategy; bandwidth is allocated to the second component according to the target bandwidth allocation strategy, thereby solving the technical problem of low efficiency in allocating bandwidth to components and achieving the technical effect of improving the efficiency of allocating bandwidth to components.
[0107] Through the above description of the embodiments, those skilled in the art can clearly understand that the methods according to the above embodiments can be implemented by means of software plus necessary general-purpose hardware platforms. Of course, they can also be implemented by hardware, but in many cases the former is a better implementation method. Based on this understanding, the technical solution of this application, in essence, or the part that contributes to the prior art, can be embodied in the form of a software product. This computer software product is stored in a storage medium (such as ROM / RAM, magnetic disk, optical disk) and includes several instructions to cause a terminal device (which may be a mobile phone, computer, server, or network device, etc.) to execute the methods described in the various embodiments of this application.
[0108] This embodiment also provides a bandwidth allocation device for implementing the above embodiments and preferred embodiments; details already described will not be repeated. As used below, the term "module" can refer to a combination of software and / or hardware that performs a predetermined function. Although the device described in the following embodiments is preferably implemented in software, hardware implementation, or a combination of software and hardware, is also possible and contemplated.
[0109] Figure 8 This is a schematic diagram of the bandwidth allocation device according to an embodiment of this application, such as... Figure 8As shown, the device includes: a first determining unit 802, a second determining unit 804, a third determining unit 806, an adjusting unit 808, and an allocation unit 810.
[0110] The first determining unit 802 is used to determine the data communication resources of the first component in the server in response to the server being powered on for the first time.
[0111] The second determining unit 804 is used to determine the maximum available bandwidth of the second component in the server based on data communication resources, wherein the bandwidth usage order of the first component is higher than that of the second component.
[0112] The third determining unit 806 is used to determine the initial bandwidth allocation strategy of the second component based on the maximum available bandwidth, wherein the initial bandwidth allocation strategy is used to represent the rules for allocating bandwidth to the second component.
[0113] The adjustment unit 808 is used to determine the occupancy status of data communication resources during server operation, and adjust the initial bandwidth allocation strategy based on the occupancy status to obtain the target bandwidth allocation strategy.
[0114] Allocation unit 810 is used to allocate bandwidth to the second component according to the target bandwidth allocation strategy.
[0115] In one exemplary embodiment, the second determining unit 804 includes: a first determining module, configured to determine the maximum available bandwidth of the second component based on the occupancy status of data communication resources.
[0116] In an exemplary embodiment, before determining the maximum available bandwidth of the second component based on the occupancy status of data communication resources, the apparatus further includes: a first monitoring unit, configured to monitor the reset signal of the first component based on a programmable logic controller to obtain a first monitoring result; and a fourth determining unit, configured to determine the occupancy status of data communication resources based on the first monitoring result.
[0117] In an exemplary embodiment, the fourth determining unit includes: a second determining module, configured to determine the occupancy status of the data communication resource as occupied in response to the first monitoring result indicating that the reset signal is in the target state.
[0118] In one exemplary embodiment, after determining the occupancy status of data communication resources based on the first monitoring result, the device further includes a storage unit for storing the occupancy status in a register of a programmable logic controller.
[0119] In one exemplary embodiment, the allocation unit 810 includes: a first allocation module, configured to allocate data communication resources in an unoccupied state to the hard disk of the second component in response to the number of data communication resources in an occupied state being greater than or equal to a first quantity threshold; a transmission module, configured to transmit configuration information in the register of the programmable logic controller to the baseboard management controller in response to the number of data communication resources in an occupied state being less than the first quantity threshold; a monitoring module, configured to control the baseboard management controller to monitor the status of memory resources in the server and obtain a second monitoring result when the baseboard management controller receives the configuration information; a second allocation module, configured to allocate data communication resources corresponding to memory resources to the second component in response to the second monitoring result indicating that the number of memory resources in an idle state is a first quantity; and a third allocation module, configured to allocate data communication resources corresponding to memory resources to the second component based on the architecture information of the target component in response to the second monitoring result indicating that the number of memory resources in an idle state is a second quantity, or that all memory resources are in an unoccupied state.
[0120] In an exemplary embodiment, the adjustment unit 808 is used to determine the occupancy status of data communication resources during server operation, including: a second monitoring unit, used to monitor the data communication resources using the baseboard management controller during server operation to obtain the occupancy status.
[0121] In an exemplary embodiment, after monitoring the data communication resources using the baseboard management controller and obtaining the occupancy status, the device further includes a synchronization unit for controlling the baseboard management controller to synchronize the monitored occupancy status to the programmable logic controller.
[0122] In an exemplary embodiment, the adjustment unit 808 is configured to adjust the initial bandwidth allocation strategy based on the occupancy status to obtain a target bandwidth allocation strategy, including: an adjustment module configured to control the programmable logic controller to adjust the initial bandwidth allocation strategy based on the occupancy status to obtain the target bandwidth allocation strategy.
[0123] In one exemplary embodiment, the adjustment module includes an adjustment submodule, configured to control the programmable logic controller to adjust the initial bandwidth allocation strategy in response to the occupancy status being occupied and the number of data communication resources in the occupied state being greater than a second quantity threshold, thereby obtaining a target bandwidth allocation strategy.
[0124] In the aforementioned apparatus, the first determining unit 802 determines the data communication resources of the first component in the server in response to the server's initial power-on. The second determining unit 804 determines the maximum available bandwidth of the second component in the server based on the data communication resources, wherein the bandwidth usage order of the first component precedes that of the second component. The third determining unit 806 determines an initial bandwidth allocation strategy for the second component based on the maximum available bandwidth, wherein the initial bandwidth allocation strategy represents the rules for allocating bandwidth to the second component. During server operation, the adjusting unit 808 determines the occupancy status of the data communication resources and adjusts the initial bandwidth allocation strategy based on the occupancy status to obtain a target bandwidth allocation strategy. The allocation unit 810 allocates bandwidth to the second component according to the target bandwidth allocation strategy, thereby solving the technical problem of low efficiency in allocating bandwidth to components and achieving the technical effect of improving the efficiency of bandwidth allocation to components.
[0125] It should be noted that the above modules can be implemented by software or hardware. For the latter, they can be implemented in the following ways, but are not limited to: all the above modules are located in the same processor; or, the above modules are located in different processors in any combination.
[0126] Embodiments of this application also provide a computer-readable storage medium storing a computer program, wherein the computer program is configured to execute the steps in any of the above method embodiments when run.
[0127] In one exemplary embodiment, the aforementioned computer-readable storage medium may include, but is not limited to, various media capable of storing computer programs, such as a USB flash drive, read-only memory (ROM), random access memory (RAM), portable hard disk, magnetic disk, or optical disk.
[0128] Optionally, in this embodiment, the computer program can be configured to execute the steps corresponding to the methods in the above embodiments.
[0129] Embodiments of this application also provide an electronic device. Figure 9 This is a schematic diagram of the structure of an electronic device according to an embodiment of this application, such as... Figure 9 As shown, the electronic device includes a memory 902 and a processor 904. The memory 902 stores a computer program, and the processor 904 is configured to execute the steps of any of the above method embodiments through the computer program.
[0130] Optionally, in this embodiment, the processor 904 can be configured to perform the following steps via a computer program:
[0131] S1, in response to the server's first power-on, determines the data communication resources of the first component in the server;
[0132] S2, based on data communication resources, determine the maximum available bandwidth of the second component in the server, wherein the bandwidth usage order of the first component is higher than that of the second component;
[0133] S3, Based on the maximum available bandwidth, determine the initial bandwidth allocation strategy for the second component, wherein the initial bandwidth allocation strategy is used to represent the rules for allocating bandwidth to the second component;
[0134] S4. During the server operation, determine the occupancy status of data communication resources, and adjust the initial bandwidth allocation strategy based on the occupancy status to obtain the target bandwidth allocation strategy.
[0135] S4 allocates bandwidth to the second component according to the target bandwidth allocation strategy.
[0136] Optionally, in this embodiment, the processor 804 may also be configured to perform the above steps via a computer program.
[0137] Alternatively, as those skilled in the art will understand, Figure 9 The structure shown is for illustrative purposes only. Figure 9 This does not limit the structure of the aforementioned electronic devices. For example, the electronic device may also include components that are more... Figure 9 The more or fewer components shown (such as network interfaces, etc.), or having the same Figure 9 The different configurations shown.
[0138] The memory 902 can be used to store software programs and modules, such as the program instructions / modules corresponding to the bandwidth allocation method in this embodiment. The processor 904 executes various functional applications and data processing by running the software programs and modules stored in the memory 902, thereby implementing the bandwidth allocation method described above. The memory 902 may include high-speed random access memory, and may also include non-volatile memory, such as one or more magnetic storage devices, flash memory, or other non-volatile solid-state memory. In some instances, the memory 902 may further include memory remotely located relative to the processor 904, and these remote memories can be connected to the terminal via a network. Examples of such networks include, but are not limited to, the Internet, corporate intranets, local area networks, mobile communication networks, and combinations thereof. Specifically, the memory 902 may be used, but is not limited to, to store information such as system configuration files. As an example, such as... Figure 8As shown, the memory 902 may include, but is not limited to, all modules in the bandwidth allocation device described above. Furthermore, it may include, but is not limited to, other module units in the bandwidth allocation device described above, which will not be elaborated upon in this example.
[0139] Optionally, the transmission device 906 described above is used to receive or send data via a network. Specific examples of the network described above may include wired networks and wireless networks. In one example, the transmission device 906 includes a Network Interface Controller (NIC), which can be connected to other network devices and a router via a network cable to communicate with the Internet or a local area network. In another example, the transmission device 906 is a Radio Frequency (RF) module, used for wireless communication with the Internet.
[0140] In addition, the aforementioned electronic device also includes: a display 908; and a connection bus 810 for connecting various module components in the aforementioned electronic device.
[0141] Embodiments of this application also provide a computer program product, which includes a computer program that, when executed by a processor, implements the steps in any of the above method embodiments.
[0142] Embodiments of this application also provide another computer program product, including a non-volatile computer-readable storage medium storing a computer program that, when executed by a processor, implements the steps in any of the above method embodiments.
[0143] The embodiments described herein also provide a computer program that includes computer instructions stored in a computer-readable storage medium; a processor of a computer device reads the computer instructions from the computer-readable storage medium and executes the computer instructions, causing the computer device to perform the steps in any of the above method embodiments.
[0144] Specific examples in this embodiment can be found in the examples described in the above embodiments and exemplary implementations, and will not be repeated here.
[0145] Obviously, those skilled in the art should understand that the modules or steps of this application described above can be implemented using general-purpose computing devices. They can be centralized on a single computing device or distributed across a network of multiple computing devices. They can be implemented using computer-executable program code, and thus can be stored in a storage device for execution by a computing device. In some cases, the steps shown or described can be performed in a different order than those presented here, or they can be fabricated as separate integrated circuit modules, or multiple modules or steps can be fabricated as a single integrated circuit module. Thus, this application is not limited to any particular combination of hardware and software.
[0146] The above description is merely a preferred embodiment of this application and is not intended to limit this application. Various modifications and variations can be made to this application by those skilled in the art. Any modifications, equivalent substitutions, improvements, etc., made within the principles of this application should be included within the protection scope of this application.
Claims
1. A bandwidth allocation method characterized by, include: In response to the server's first power-on, the data communication resources of the first component in the server are determined; Based on the data communication resources, the maximum available bandwidth of the second component in the server is determined, wherein the bandwidth usage order of the first component is prior to that of the second component; Based on the maximum available bandwidth, an initial bandwidth allocation strategy for the second component is determined, wherein the initial bandwidth allocation strategy is used to represent the rules for allocating bandwidth to the second component; During the operation of the server, the occupancy status of the data communication resources is determined, and based on the occupancy status, the initial bandwidth allocation strategy is adjusted to obtain the target bandwidth allocation strategy. According to the target bandwidth allocation strategy, bandwidth is allocated to the second component; Wherein, allocating bandwidth to the second component according to the target bandwidth allocation strategy includes: In response to the number of data communication resources in the occupied state being greater than or equal to a first quantity threshold, the data communication resources in the unoccupied state are allocated to the hard disk side of the second component; In response to the number of data communication resources in the occupied state being less than the first quantity threshold, the configuration information in the register of the programmable logic controller is transmitted to the baseboard management controller. Upon receiving the configuration information, the baseboard management controller is controlled to monitor the status of memory resources in the server to obtain a second monitoring result. In response to the second monitoring result indicating that the number of memory resources in the idle state is a first quantity, the data communication resources corresponding to the memory resources are allocated to the second component; In response to the second monitoring result that the number of memory resources in the idle state is a second number, or that all memory resources are in a non-idle state, the data communication resources corresponding to the memory resources are allocated to the second component based on the architecture information of the target component.
2. The method according to claim 1, characterized in that, Based on the data communication resources, determining the maximum available bandwidth of the second component in the server includes: Based on the occupancy status of the data communication resources, the maximum available bandwidth of the second component is determined.
3. The method according to claim 2, characterized in that, Before determining the maximum available bandwidth of the second component based on the occupancy status of the data communication resources, the method further includes: Based on the programmable logic controller, the reset signal of the first component is monitored to obtain a first monitoring result; Based on the first monitoring result, the occupancy status of the data communication resources is determined.
4. The method according to claim 3, characterized in that, Based on the first monitoring result, determining the occupancy status of the data communication resources includes: In response to the first monitoring result indicating that the reset signal is in the target state, the occupancy status of the data communication resource is determined to be an occupied state.
5. The method according to claim 4, characterized in that, After determining the occupancy status of the data communication resources based on the first monitoring result, the method further includes: The occupancy status is stored in the register of the programmable logic controller.
6. The method according to claim 1, characterized in that, During the operation of the server, determining the occupancy status of the data communication resources includes: During the operation of the server, the data communication resources are monitored using the baseboard management controller to obtain the occupancy status.
7. The method according to claim 6, characterized in that, After monitoring the data communication resources using the baseboard management controller to obtain the occupancy status, the method further includes: The control board management controller will synchronize the monitored occupancy status to the programmable logic controller.
8. The method according to claim 7, characterized in that, Based on the occupancy status, the initial bandwidth allocation strategy is adjusted to obtain the target bandwidth allocation strategy, including: The programmable logic controller adjusts the initial bandwidth allocation strategy based on the occupancy status to obtain the target bandwidth allocation strategy.
9. The method according to claim 8, characterized in that, Controlling the programmable logic controller to adjust the initial bandwidth allocation strategy based on the occupancy state to obtain the target bandwidth allocation strategy includes: In response to the occupancy status being occupied and the number of data communication resources in the occupied state being greater than a second quantity threshold, the programmable logic controller is controlled to adjust the initial bandwidth allocation strategy to obtain the target bandwidth allocation strategy.