Service starting sequence optimization method and device, electronic equipment and storage medium

By obtaining multimodal data of services in the substrate management controller and using the Monte Carlo tree search algorithm to optimize the startup sequence, the flexibility problem in the service startup process is solved, and fast and stable startup in a dynamic environment is achieved.

CN120371479AActive Publication Date: 2025-07-25INSPUR SUZHOU INTELLIGENT TECH CO LTD

Patent Information

Application Number
CN202510832042.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-06-20
Publication Date
2025-07-25
Estimated Expiration
2045-06-20

AI Technical Summary

Technical Problem

In the prior art, the service startup process in the substrate management controller has poor flexibility and is difficult to adapt to dynamic environments with frequent resource fluctuations and load changes, resulting in too long or failure of startup time.

Method used

By obtaining multimodal data of services in the substrate management controller, an objective function is created to minimize the total startup time, and using the Monte Carlo tree search algorithm to optimize the service startup sequence, ensure the dependencies and resource utilization among services, and dynamically adjust the startup sequence.

Benefits of technology

It realizes the flexibility and stability of the service startup process, reduces startup time, avoids resource conflicts and delays, and improves the startup efficiency and stability of OpenBMC server.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN120371479A_ABST
    Figure CN120371479A_ABST
Patent Text Reader

Abstract

The invention discloses a service starting sequence optimization method and device, electronic equipment and a storage medium, and the method comprises the steps: obtaining a multi-mode data set of at least one service in a substrate management controller, creating a target function, taking each service in the at least one service as a node to construct a target tree structure, and obtaining a target tree structure; the optimization objective of the objective function is to minimize the total start time of at least one service; and based on the target function and the target tree structure, determining a target node corresponding to the optimal evaluation index in each layer of structure, and finally starting the service corresponding to each target node in sequence according to the hierarchical relationship between the determined target nodes. By means of the method, the technical problem that in the related technology, flexibility is poor when all services in the baseboard management controller are started in a predefined static sequence is solved, and the technical effect of optimizing the service starting sequence through the self-adaptive dynamically-changed operation environment is achieved.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application relates to the field of computer technologies, and in particular, to a method and apparatus for optimizing service startup order, an electronic device, and a storage medium. Background Art

[0002] With the rapid development of the Internet of Things and big data, the high-performance computing requirements of servers are increasing day by day. Among them, as the core control unit of the server, the Baseboard Management Controller (BMC), the startup order of each service inside directly affects the startup status of the server and resource allocation, etc.

[0003] In the related art, a method of statically defining the startup order is usually adopted, and the startup order of each service is preset in advance to achieve a balance between resource management and service dependencies. However, this static method is difficult to meet the requirements in a dynamic environment with frequent resource fluctuations and load changes. For example, it may cause the startup time of the control system inside the BMC to be too long, or even result in a startup failure problem. That is, there is a technical problem of poor flexibility in the service startup process in the related art. Summary of the Invention

[0004] The present application provides a method and apparatus for optimizing service startup order, an electronic device, and a storage medium, so as to at least solve the problem of poor flexibility in the service startup process in the BMC in the related art.

[0005] According to one aspect of the embodiments of the present application, a method for optimizing service startup order is provided, including: obtaining a multimodal data set of a group of services, where a group of services includes at least one service in the BMC, and the multimodal data set includes the memory occupancy rate, resource utilization rate of at least one service, and the dependency relationship between services; creating an objective function based on the multimodal data set, where the optimization objective of the objective function is to minimize the total startup time of a group of services; determining a target node corresponding to the optimal evaluation index in each layer structure based on the objective function and the target tree structure, to obtain a group of serialized nodes, where the evaluation index is used to describe the balance between the reward and access of the node, the number of layers of the target tree structure is equal to the number of services in a group of services, and a node in the target tree structure represents a service in a group of services; starting a group of services according to the startup order indicated by the optimal path formed by a group of serialized nodes.

[0006] According to another aspect of the embodiments of the present application, an optimization device for the service startup sequence is further provided, including: a first acquisition unit, configured to acquire a multimodal data set of a group of services, where a group of services includes at least one service in a baseboard management controller, and the multimodal data set includes the memory occupancy rate, resource utilization rate of at least one service, and the dependency relationship between services; a creation unit, configured to create an objective function based on the multimodal data set, where the optimization objective of the objective function is to minimize the total startup time of a group of services; a first processing unit, configured to determine, based on the objective function and an objective tree structure, the target nodes corresponding to the optimal evaluation metrics in each layer structure to obtain a group of serialized nodes, where the evaluation metrics are used to describe the balance between the reward and access of a node, the number of layers of the objective tree structure is equal to the number of services in a group of services, and a node in the objective tree structure represents a service in a group of services; and a startup unit, configured to start a group of services according to the startup sequence indicated by the optimal path formed by a group of serialized nodes.

[0007] According to yet another aspect of the embodiments of the present application, an electronic device is further provided, including a memory and a processor. A computer program is stored in the memory, and the processor is configured to execute the steps of any of the above service startup sequence optimization methods through the computer program.

[0008] According to yet another aspect of the embodiments of the present application, a computer-readable storage medium is further provided. A computer program is stored in the computer-readable storage medium, where the computer program is configured to execute the steps of any of the above service startup sequence optimization methods when running.

[0009] According to yet another aspect of the embodiments of the present application, a computer program product or a computer program is provided. The computer program product or the computer program includes computer instructions, and the computer instructions are stored in a computer-readable storage medium. The processor of the computer device reads the computer instructions from the computer-readable storage medium, and the processor executes the computer instructions, so that the computer device executes the steps of any of the above service startup sequence optimization methods.

[0010] By adopting the above embodiments provided in the present application, by obtaining multi-modal data of each service, such as memory occupancy rate, resource utilization rate, and dependencies between services, the comprehensiveness and accuracy of the startup decision are ensured; secondly, by creating an objective function, the goal of minimizing the total startup time can be achieved, and combined with the dependencies between services, resource conflicts and startup delays are effectively avoided; finally, by using the optimal path obtained through the target tree structure search, each service is started in the optimal order, which not only reduces the overall startup time of the basic management controller, but also enables the startup order of each service to adapt to the current operating environment, achieving the technical effect of improving the flexibility of the service startup process, as well as the technical effects of enhancing the startup stability and robustness of the OpenBMC server. Description of the Drawings

[0011] To more clearly illustrate the embodiments of the present application, the drawings required for use in the embodiments will be briefly introduced below. Obviously, the drawings in the following description are only some embodiments of the present application. For those of ordinary skill in the art, other drawings can be obtained based on these drawings without creative efforts.

[0012] Figure 1 It is a schematic diagram of an application scenario of an optimization method for service startup order according to an embodiment of the present application.

[0013] Figure 2 It is a flowchart of an optional optimization method for service startup order according to an embodiment of the present application.

[0014] Figure 3 It is a schematic diagram of a network topology structure of an optional Monte Carlo tree according to an embodiment of the present application.

[0015] Figure 4 It is a flowchart of an optional Monte Carlo tree search work according to an embodiment of the present application.

[0016] Figure 5 It is Example 1 of performing simulation iteration according to the Monte Carlo tree structure.

[0017] Figure 6 It is Example 2 of performing simulation iteration according to the Monte Carlo tree structure.

[0018] Figure 7 It is Example 3 of performing simulation iteration according to the Monte Carlo tree structure.

[0019] Figure 8 It is an overall schematic diagram of an optional optimization method for service startup order according to an embodiment of the present application.

[0020] Figure 9It is a structural block diagram of an optimization device for an optional service startup sequence according to an embodiment of the present application. Detailed implementation manners

[0021] Next, the technical solutions in the embodiments of the present application will be clearly and completely described with reference to the accompanying drawings in the embodiments of the present application. Obviously, the described embodiments are only a part of the embodiments of the present application, rather than all the embodiments. Based on the embodiments in the present application, all other embodiments obtained by those of ordinary skill in the art without creative efforts shall fall within the protection scope of the present application.

[0022] It should be noted that in the description of the present application, the terms "including", "comprising" or any other variation thereof are intended to cover a non-exclusive inclusion, so that a process, method, article or device including a series of elements not only includes those elements but also includes other elements not expressly listed, or further includes elements inherent to such process, method, article or device. The terms "first", "second", etc. in the present application are used to distinguish similar objects and are not used to describe a specific order or sequence.

[0023] To enable those skilled in the art of this technology to better understand the solution of the present application, the present application will be further described in detail below with reference to the accompanying drawings and specific implementation manners.

[0024] According to one aspect of the embodiments of the present application, an optimization method for service startup sequence is provided. Optionally, in this embodiment, the above optimization method for service startup sequence can be but is not limited to being applied to a hardware scenario as Figure 1 shown, where the server device may include one or more ( Figure 1 only one is shown in the figure) processors 102 (the processor 102 may include but is not limited to a processing device such as a microprocessor MCU or a programmable logic device FPGA) and a memory 104 for storing data. Among them, the above server device may further include a transmission device 106 for communication functions and an input / output device 108. Those of ordinary skill in the art can understand that Figure 1 the structure shown is only for illustration and does not limit the structure of the above server device. For example, the server device may further include more or fewer components than Figure 1 shown in the figure, or have a different configuration from Figure 1 shown in the figure.

[0025] The memory 104 can be used to store computer programs, such as software programs and modules of application software, such as the computer program corresponding to the optimization method of the service startup sequence in the embodiments of the present application. The processor 102 executes various functional applications and data processing by running the computer program stored in the memory 104, that is, the above-mentioned method is implemented. The memory 104 may include a high-speed random access memory, and may also include a non-volatile memory, such as one or more magnetic storage devices, flash memories, or other non-volatile solid-state memories. In some instances, the memory 104 may further include a memory remotely disposed relative to the processor 102, and these remote memories can be connected to the server device through a network. Examples of the above-mentioned network include but are not limited to the Internet, enterprise intranet, local area network, mobile communication network, and combinations thereof.

[0026] The transmission device 106 is used to receive or send data via a network. Specific examples of the above-mentioned network may include a wireless network provided by a communication provider of the server device. In one instance, the transmission device 106 includes a network adapter (Network Interface Controller, abbreviated as NIC), which can be connected to other network devices through a base station so as to communicate with the Internet. In one instance, the transmission device 106 may be a radio frequency (Radio Frequency, abbreviated as RF) module, which is used to communicate with the Internet wirelessly.

[0027] The embodiments of the present application can be but are not limited to applied to the scenario of adaptive adjustment and optimization of the service startup sequence including multiple services inside the control system. For example, it is applicable to the scenario of optimizing the startup sequence of each service inside the baseboard management controller. For the convenience of understanding, specific examples of several application scenarios are given below.

[0028] (1) Automated operation and maintenance of data centers: In large-scale data centers, the number of servers is in the thousands, and the dependencies between services are complex and changeable. The embodiments of the present application can realize real-time monitoring of the resource usage of each service and the dependencies between services, dynamically adjust the startup sequence, reduce unnecessary waiting time, effectively avoid resource competition and dependency problems, thereby accelerating the overall startup process of the data center and improving the operation and maintenance efficiency.

[0029] (2) Quick configuration of high-performance computing clusters: High-performance computing clusters often need to complete a large number of computing tasks in a short time, and have extremely high requirements for startup speed and resource scheduling. By intelligently optimizing the service startup sequence, the embodiments of the present application can minimize the initialization time of the cluster, ensure the timely execution of computing tasks, and at the same time reduce the CPU and memory load during the startup process, providing a more stable and efficient operating environment for the high-performance computing cluster.

[0030] (3) Elastic scaling of the cloud computing platform: In the cloud computing platform, the dynamic allocation and scaling of resources are the norm. By adopting the embodiment of the present application to optimize the startup sequence, the platform can flexibly adjust the startup priorities of services according to the current actual load and resource usage conditions, ensuring that even in the case of large resource fluctuations, necessary services can be started quickly and accurately, realizing the effective utilization of resources and the rapid response of the system.

[0031] (4) Instant startup of edge computing devices: Edge computing devices are usually deployed at the edge of the network to reduce data transmission latency and relieve the load on the core data center. These devices may face limited computing resources and unpredictable network environments. The technical solution of the present application helps such devices quickly establish correct dependency relationships between services during startup, reduce the initial startup time, ensure that the devices can be put into operation in the shortest time, respond to edge data processing requirements in a timely manner, and improve the user experience.

[0032] By applying the technical solution of the present application to the above scenarios, whether in a resource-intensive data center, a high-performance computing cluster with strict requirements for computing speed, an elastic scaling environment of cloud services, or an instant computing scenario at the network edge, the technical solution of the present application can play its advantages. Through intelligent optimization of the startup sequence, it provides a strong guarantee for the efficient startup and stable operation of the server.

[0033] The optimization method of the service startup sequence in the embodiment of the present application can be executed by a server device, or can be executed by a combination of a server device and at least one of terminal devices (which can also be understood as input / output device 108). Among them, when the terminal device executes the optimization method of the service startup sequence in the embodiment of the present application, it can also be executed by a client installed thereon.

[0034] Taking the example that the optimization method of the service startup sequence in this embodiment is executed by the server, Figure 2 is a schematic flowchart of an optional optimization method of the service startup sequence according to the embodiment of the present application. As Figure 2 shown, the process of this method can include steps S202 to S208.

[0035] Step S202, obtain a multi-modal data set of a group of services, where a group of services includes at least one service in the baseboard management controller, and the multi-modal data set includes the memory occupancy rate, resource utilization rate of at least one service, and the dependency relationship between services.

[0036] Step S204, create an objective function based on the multi-modal data set, where the optimization objective of the objective function is to minimize the total startup time of a group of services.

[0037] Step S206: Based on the objective function and the objective tree structure, determine the target nodes corresponding to the optimal evaluation indicators in each layer of the structure to obtain a set of serialized nodes. Here, the evaluation indicators are used to describe the balance between the rewards and accesses of the nodes. The number of layers of the objective tree structure is equal to the number of a set of services, and a node in the objective tree structure represents one service in a set of services.

[0038] Step S208: Start a set of services according to the startup order indicated by the optimal path formed by a set of serialized nodes.

[0039] Before explaining the technical solution of this application, first, a brief introduction to the meanings of the professional terms or nouns involved is given.

[0040] OpenBMC: Open Baseboard Management Controller, which is an open-source software architecture for building a complete BMC (Baseboard Management Controller) dedicated Linux system image, and can also be understood as the code logic of the internal control system of the BMC on the server motherboard.

[0041] BMC: It is a microcontroller or chip used for server hardware monitoring and management, capable of real-time monitoring and controlling the hardware status of the server, such as temperature, voltage, fan speed, etc. And OpenBMC allows for efficient management and maintenance of the server.

[0042] Monte Carlo Tree Search Model (MCTS): An algorithm for decision support, especially widely used in game AI. It finds the best actions through simulation and statistical evaluation. MCTS gradually constructs and optimizes the search tree through four stages: selection, expansion, simulation, and backpropagation to find the optimal solution.

[0043] Multimodal data fusion: It can, but is not limited to, collecting information from different types of sensors or data sources and merging them to obtain more comprehensive and accurate data. In the embodiments of this application, multimodal data includes, but is not limited to, the memory occupancy rate of services, resource utilization rate, and dependencies between services.

[0044] As Figure 3 shown, the basic process of the Monte Carlo Tree Search Model includes the following steps.

[0045] (1) Selection

[0046] Specifically, starting from the root node (initial state), nodes are selected downward along the tree structure. The selection is based on the visit count of each node and the evaluation value of its child nodes. Usually, the Upper Confidence Bound formula is used to balance exploration (exploring nodes that have not been fully visited) and exploitation (selecting the currently seemingly optimal node).

[0047] In this embodiment, it is possible but not limited to starting from the root node and recursively selecting child nodes according to a certain strategy (such as the UCT strategy).

[0048] (2)Expansion

[0049] When reaching a leaf node (i.e., a node where there are no more child nodes to continue selecting in the selection phase), if the chessboard state corresponding to this leaf node has not been fully expanded (i.e., there are still unexplored legal moves), one or more new child nodes are expanded from this leaf node. These new nodes represent new possible states of the chessboard. That is, the leaf node is expanded to generate new child nodes.

[0050] (3)Simulation

[0051] Starting from the newly expanded node, a random simulation (also known as "rollout") is performed. In this stage, the algorithm no longer searches according to the tree structure but randomly selects legal moves until a terminal state (such as the end of the chess game) is reached. This process can use simple heuristic methods to quickly evaluate the result of the chessboard situation. For example, in a board game, legal moves can be randomly selected until the winner is determined.

[0052] In this embodiment, the simulation can be but is not limited to starting from a new node selected from the expanded nodes. The algorithm will perform a series of random simulations. During the simulation process, a default strategy (such as a random strategy or a heuristic-based strategy) is usually used to select actions to achieve the purpose of quickly estimating the node value.

[0053] (4)Back propagation

[0054] After the simulation ends, the results obtained from the simulation (such as victory, defeat, reward, penalty, etc.) are backpropagated from the newly expanded node to the root node of the tree. During this process, the visit count and reward value of each node (such as the number of victories, the number of defeats, etc.) are updated. For a board game, victory can be recorded as +1 (reward), defeat can be recorded as -1 (penalty), etc. The specific reward value depends on the rules and goals in the specific scenario.

[0055] In this embodiment, backpropagation can, but is not limited to, be understood as after the simulation ends, the algorithm will propagate the obtained results back to the root node of the search tree and update the statistical data of each node on the path.

[0056] The above set of services can, but is not limited to, include multiple types, and each service plays a specific role in the startup and operation of the system. The following are several typical services, and optimizing their startup order is the key to achieving a high-performance server.

[0057] (1) Basic hardware and firmware services

[0058] POST (Power-On Self Test): The first step when the server starts up, it comprehensively checks the hardware to ensure that all components are working properly.

[0059] BMC service: Manages the health status of the server, monitors temperature, voltage, fan speed, etc., to ensure that the hardware operates in a safe environment.

[0060] (2) Network services

[0061] Network interface initialization service: Initializes the network interfaces of the server, such as Ethernet network cards, to ensure that the server can connect to the network.

[0062] DHCP (Dynamic Host Configuration Protocol) service: Obtains an IP address and other configuration information from a network server to enable the server to communicate over the network.

[0063] SSH (Secure Shell) service: Provides secure remote login and management, allowing administrators to control the server over the network.

[0064] (3) Storage services

[0065] RAID (Redundant Array of Independent Disks) initialization service: Configures disk arrays to provide data redundancy and performance improvement.

[0066] (4) File system mounting service.

[0067] Mounts the hard disk partitions of the server to prepare for reading and writing data.

[0068] (5) Operating system and system management services

[0069] Initializes the system service: Loads core system components, such as the kernel, drivers, system libraries, etc.

[0070] Logging service: Records events and status during system operation, which is crucial for problem diagnosis and system maintenance.

[0071] Monitoring service: Continuously monitors the resource usage of the server, such as CPU, memory, disk I / O, etc., which helps with resource management and fault detection.

[0072] (6) Application service

[0073] Database service: Such as MySQL, PostgreSQL, etc., provides data storage and retrieval functions, which is crucial for application programs that rely on databases.

[0074] (7) Web service

[0075] Start the Web server (such as Apache, Nginx) and prepare to handle Web requests.

[0076] (8) Application program service

[0077] Start specific application programs, such as mail servers, game servers, video transcoding services, etc.

[0078] During the operation of the control system inside the BMC, a multi-modal data set S = {s1, s2,..., s n} of each service is usually obtained in real time. For example, it includes the memory occupancy rate of each service, resource utilization rate (such as CPU occupancy), and the dependency relationships between services. For services S1~S n , the obtained multi-modal data is s1~s n . It is necessary to pre-obtain their respective memory consumption and CPU usage at startup, as well as whether there are dependency conflict problems in s1~s n , such as service s1 must be before service s2.

[0079] Based on the obtained multi-modal data set, create an objective function whose optimization goal is to minimize the total time of the entire server startup process. The design of the objective function takes into account the startup time and resource occupancy of the services, as well as their dependency relationships, to ensure no resource competition and dependency conflicts and achieve fast and stable startup.

[0080] Based on the above objective function and objective tree structure (a tree structure representing all possible startup orders, which can also be understood as the MCTS algorithm), determine the target node corresponding to the optimal evaluation index (the maximum UCT value) in each layer structure through an iterative process, and finally obtain a set of serialized nodes. Among them, a set of serialized nodes represents the sequence of the nodes passed from the root node, and the sequence between the nodes represents the optimal order of service startup.

[0081] In this embodiment, the above evaluation metrics can be used, but are not limited to, to balance the rewards of nodes (based on the optimization results of the objective function) and the number of visits, ensuring a balance between exploration and exploitation of nodes.

[0082] The UCT (Upper Confidence bounds applied to Trees) value is a key concept in the Monte Carlo Tree Search (MCTS) algorithm, which is used to guide search and decision-making in the presence of uncertain environmental factors.

[0083] Among them, the network topology of the Monte Carlo tree search model can refer to Figure 3 as shown, and its processing process mainly includes the following points.

[0084] (1) Selection: Starting from the root node, recursively select child nodes according to a certain strategy (such as the UCT strategy).

[0085] (2) Expansion: Expand the leaf node to generate new child nodes.

[0086] (3) Simulation: Starting from a new node selected in the expansion phase, the algorithm performs a series of random simulations. During the simulation process, a default strategy (such as a random strategy or a heuristic-based strategy) is usually used to select actions to achieve the purpose of quickly estimating the value of the node.

[0087] (4) Backpropagation: After the simulation ends, the algorithm propagates the obtained results back to the root node of the search tree and updates the statistical data of each node on the path.

[0088] The following combines Figure 4 to explain the specific working process of the Monte Carlo tree search.

[0089] S402, start the search.

[0090] S404, select one service from the service set and use the corresponding node as the root node.

[0091] S406, determine whether the current node has branches.

[0092] If yes, execute step S408; otherwise, jump to step S414.

[0093] Starting from the current node, determine whether there are branches below this node (that is, whether the current node is a leaf node).

[0094] S408, determining whether all current nodes have been simulated (emulated).

[0095] If yes, execute step S410; otherwise, execute step S412.

[0096] That is to say, if there is a branch, each branch node simulates the game, back-propagates, and then calculates the UCT value of each node, the largest one is used as the current node, and then returns to step S406.

[0097] S410, calculating the UCT value of each branch node, and taking the child node with the largest UCT value as the current node. The calculation formula and method of the UCT value will be described in detail below in conjunction with specific embodiments.

[0098] S412, simulating the unsimulated branch nodes, and back-propagating to the root node based on the statistical data after simulation, and updating the statistical data of the path nodes at the same time.

[0099] S414, enumerate all possible actions of the current node.

[0100] For example, expand (add) a branch node for the current node and add the expanded branch node to the search tree. Figure 3 The expansion steps are shown.

[0101] That is to say, if there is no branch (proving that the node is already a leaf node), then add a branch below it (a better move in this state), take the first one as the current node, and then simulate a game with the opponent and backpropagate.

[0102] S416, after simulating the extended branch node, obtain the simulation result (such as reward value, number of visits) of the branch node, and back-propagate from the branch node to the root node based on the simulation result.

[0103] In this process, the statistics of each node on the back propagation path are updated, and this round of iteration ends. This cycle is repeated until the termination condition is met (for example, the number of iterations reaches a preset threshold).

[0104] For example, in Figure 5In the first round of iteration shown, starting from the root node, since there is no historical data, the UCT values of all child nodes are considered infinite. Therefore, a service can be randomly selected for simulation. For example, node 2 is selected (assuming node 2 corresponds to service S2). In each subsequent layer of iteration, the most promising service will be selected for in-depth exploration according to the UCT calculation formula until the depth of the tree reaches the total number of services. This means that a complete startup order path is explored. This process is repeated multiple times, and each time, backpropagation is performed based on the simulation results to update the statistical data of the nodes, ultimately forming a tree that contains all possible startup orders and their scores. The UCT calculation formula will be described in detail in combination with specific embodiments below.

[0105] After multiple iterations, the MCTS algorithm will converge to at least one high-score service startup path. Select the path with the highest score from them, which is the optimal path, and start the services in the OpenBMC server in the order indicated by this path. For example, if the optimal path indicates the startup order of service S1 → S3 → S2 → S4. Then, when the BMC is started next time, each service will be started in this order to achieve the effects of the shortest startup time, the lowest resource consumption, and the highest startup success rate.

[0106] The method provided by the embodiments of this application can overcome the limitations of the traditional static definition of service startup order, and is particularly suitable for application in modern server environments with large resource fluctuations, a large number of services, and complex dependencies. Through dynamic adjustment, it can significantly shorten the startup time of OpenBMC services, reduce resource consumption, and improve the stability and reliability of startup, and is applicable to data centers, cloud computing platforms, and any server clusters that require quick response and efficient operation and maintenance.

[0107] In summary, the embodiments of this application introduce multi-modal data fusion technology and the Monte Carlo tree search model (or Monte Carlo tree search algorithm), and propose a brand-new dynamic service startup order optimization scheme, providing strong technical support for the efficient startup of the BMC control system. Through continuous simulation and optimization, the technology of this application can automatically adjust the startup order of services, effectively cope with the challenges of dynamic resource changes, and improve the overall performance of the server.

[0108] By obtaining multimodal data of each service, such as memory occupancy rate, resource utilization rate, and dependencies between services, the comprehensiveness and accuracy of the startup decision are ensured. Secondly, by creating an objective function, the goal of minimizing the total startup time can be achieved, and combined with the dependencies between services, resource conflicts and startup delays are effectively avoided. Finally, the optimal path obtained through the search of the objective tree structure enables each service to be started in the optimal order, which not only reduces the overall startup time of the basic management controller, but also enables the startup order of each service to adapt to the current operating environment automatically, achieving the technical effect of improving the flexibility of the service startup process, as well as the technical effects of enhancing the startup stability and robustness of the OpenBMC server.

[0109] In an exemplary embodiment, based on the objective function and the objective tree structure, the target nodes corresponding to the optimal evaluation indicators in each layer structure are determined to obtain a set of serialized nodes, including: when the number of layers of the objective tree structure is n, starting from the root node of the objective tree structure, performing simulation iterations in each layer structure in turn, and obtaining the final cumulative reward and the final visit count of each child node after the last round of iterative update, where n is a positive integer greater than or equal to 2; based on the final cumulative reward and the final visit count, determining the final evaluation indicators of each node in the objective tree structure to obtain an evaluation indicator set; and determining the target nodes corresponding to the optimal evaluation indicators in each layer structure from the evaluation indicator set to obtain a set of serialized nodes.

[0110] In this embodiment, the objective tree structure may but is not limited to refer to a tree-shaped data structure constructed by the Monte Carlo tree search algorithm, such as Figure 5 shown, service S1 represents node 1, each node represents a service, and the number of layers n of the tree is equal to the number of services in the service set. Based on this objective tree structure, simulation iterations are performed to explore different service startup orders to find the optimal path.

[0111] The so-called simulation iteration is one of the key steps of the Monte Carlo tree search algorithm. It starts from a certain node of the objective tree structure, randomly or based on a specific strategy selects a service to execute, records the results, and then backtracks to update the node statistical information on the path, thereby gradually optimizing the tree structure and approaching the optimal solution.

[0112] The final cumulative reward and the final visit count may but are not limited to refer to that during the iteration process of MCTS, each node will record its cumulative reward value and visit count. The cumulative reward reflects that after starting the service sequence along the path of this node, the score accumulation of the objective function (minimizing the total startup time) is the smallest; while the visit count represents the frequency of exploration of this node, and the two together determine the final evaluation indicator of the node.

[0113] For example, during the search iteration (which can also be understood as a simulation iteration), assuming the city starts from the root node and executes a startup sequence, such as starting the network service first, then the database service, and finally the application service. Assuming this startup sequence results in a short server startup time and no resource conflicts, the algorithm will give a positive reward to this set of actions (indicating that this is a relatively good action).

[0114] The above positive reward will be backpropagated to each node on this path in the decision tree, updating their cumulative rewards (Q-values) and visit counts (N-values). In particular, the node representing the decision to start the network service first will be marked as a "proven effective action" because it leads to positive results in the current context.

[0115] As the algorithm continuously performs simulations and statistical updates, those actions or policy paths that consistently produce positive rewards will gradually become dominant because their UCT values will become higher and higher. Eventually, at the end or convergence of the search process, the algorithm will tend to select those "proven effective" paths with the highest average rewards as the optimal strategy to be applied to the actual server startup sequence optimization.

[0116] In the optimization of the service startup sequence according to the above objective function and objective tree structure, if a certain service startup sequence enables the server to start faster and more stably, without resource conflicts or dependency issues, then this service startup sequence can be considered a "proven effective action". The algorithm will increase the probability of this sequence being selected again through the positive reward feedback mechanism, so as to utilize this strategy more frequently in future searches. This mechanism ensures that the algorithm can accurately find and utilize those decision paths with the best performance in an uncertain environment.

[0117] By performing multiple rounds of simulation iterations, the evaluation metrics of each layer of nodes in the objective tree structure are carefully optimized, and finally the optimal path for service startup is determined. This process effectively accumulates a large amount of data on service performance under different startup sequences, and obtains the most potential startup sequence through statistical analysis. It can significantly improve the startup efficiency and resource management ability of the OpenBMC server, reduce startup latency, avoid resource competition, and at the same time enhance the stability and reliability of the system.

[0118] In an exemplary embodiment, the above-mentioned simulation iteration is sequentially performed in each layer structure starting from the root node of the target tree structure to obtain the final cumulative rewards and final visit counts of each child node in the last round of iteration update, including: performing a simulation iteration on the i-th layer structure through the following steps, where i is a positive integer greater than or equal to 1 and less than or equal to n: based on the current evaluation metrics of the i-th subgroup of nodes in the i-th layer structure, select the j-th node from the i-th subgroup of nodes, where the j-th current evaluation metric of the j-th node is the evaluation metric with the largest value among the i-th subgroup of nodes, and j is a positive integer less than or equal to the number of nodes included in the i-th layer structure; in the case where the j-th node has branch nodes, determine the j-th cumulative reward of the j-th node based on the objective function, and update the current visit count of the j-th node to the j-th visit count, where each time the j-th node is visited, both the reward and the visit count of the j-th node are updated, and the branch nodes include the child nodes of the j-th node or the leaf nodes of the j-th node; determine the j-th path formed by the j-th subgroup of nodes that need to be visited from the j-th node back to the root node; according to the j-th path, propagate back from the j-th node to the root node, and update the statistical data of the remaining nodes in the j-th subgroup of nodes except the j-th node based on the j-th cumulative reward and the j-th visit count, where the statistical data includes cumulative rewards, visit counts, and evaluation metrics.

[0119] Before performing the simulation iteration, it is necessary to first collect system startup data and construct an objective function, and the specific steps are as in S11~S18.

[0120] S11, obtain the service set: .

[0121] S12, obtain the service startup time through the following formula (1):

[0122] (1)

[0123] Where, represents the startup time of the service , i is a positive integer greater than or equal to 1 and less than or equal to n, represents the multimodal data of the i-th service.

[0124] S13, obtain the CPU occupancy rate F2 and memory occupancy rate F3 of the service through the following formula (2) and formula (3) respectively:

[0125] (2)

[0126] (3)

[0127] S14. Construct a directed acyclic graph to represent the dependencies between services.

[0128] S15. Use the method of weighted data fusion to , , perform fusion processing to obtain the fused data or data features .

[0129] S16. Construct an objective function as shown in the following formula (4) to achieve the goal of minimizing the total startup time:

[0130] (4)

[0131] where, represents the cumulative time from the start-up time to the completion of the start-up of the i-th service. In other words, is the start-up moment of the i-th service, which depends on the time after all the preceding services (all the services that have been started before the i-th service) are completed. represents the data obtained by performing fusion processing on the multi-modal data of the i-th service. Obviously, exists in the form of a mathematical function.

[0132] S17. Construct a positive reward function as shown in the following formula (5):

[0133] (5)

[0134] That is to say, the positive reward of a node is the reciprocal of the total startup time; the negative reward depends on giving a very large penalty value when the startup fails due to a conflict. For example, R = -1000.

[0135] S18. Construct a UCT formula as shown in the following formula (6).

[0136] (6)

[0137] where, represents the cumulative reward of the child node, represents the number of visits to the child node, represents the number of visits to the parent node, and C is a hyperparameter that controls the exploration weight (usually set to ).

[0138] After the modeling is completed, construct a Monte Carlo tree, that is, the target tree structure. The specific steps are as in S22~S25.

[0139] S21. Construct a root node, select a service from the service set S, and make the corresponding node the root node.

[0140] For example, asFigure 5 As shown in the figure, assume that node 1 corresponding to the first service is used as the root node, and its Q value (reward) and N value (number of visits) are both 0.

[0141] S22. Since node 1 is a brand-new node, expand it.

[0142] Since nodes 2 to n have not been simulated yet, the cumulative rewards Q2 to Q of nodes 2 to n n are all 0, and the child nodes have not been visited yet. Therefore, N2 to N n are all 0.

[0143] S23. Select a node that meets the preset conditions from the second-layer structure (when i = 2 in the i-th layer structure).

[0144] Bring the node information (i.e., the number of visits) into the above formula (6). Since the denominators are all 0, the UCT values are all infinite. By default, select node 2 as the target object for the current traversal in the order from left to right among all nodes in the second layer (which can also be understood as the sub-group nodes when i = 2).

[0145] S24. Since node 2 is selected as a leaf node in step S23 (i.e., there are no branch nodes below node 2), and node 2 is a brand-new node, simulation is required first.

[0146] According to the minimum startup time formula and the reward function shown in the above formula (4), calculate the cumulative reward Q2 value of node 2. Assume Q2 = a, and at the same time update the number of visits N2 value of node 2.

[0147] S25. Backpropagation, backpropagate to the root node of the target tree structure (which can also be understood as the search tree), and update the statistical data of each node on the path.

[0148] As Figure 5 shown, after simulating node 2 and updating the cumulative reward and the number of visits of node 2, through backpropagation, update the cumulative reward Q1 of the root node to the value a.

[0149] So far, the first round of simulation is completed, and the second round of simulation starts.

[0150] S31. Select a node that meets the preset conditions from the second-layer structure.

[0151] Select the maximum UCT value among all the nodes in the second layer obtained according to the above step S23. After the above first-round simulation, Q2 = a, and Q3 to Q n are all 0. According to the default left-to-right order, select the node 3 as shown in Figure 6 the current round as the target object.

[0152] S32, perform the current-round simulation on the target object.

[0153] According to the minimum start time formula and the reward function shown in the above formula (4), calculate the cumulative reward Q3 value of node 3. Assume Q3 = b, and at the same time update the access count N3 value of node 3.

[0154] S33, Backpropagation, backpropagate to the root node of the target tree structure (which can also be understood as the search tree), and update the statistical data of each node on the path.

[0155] As Figure 6 shown, after simulating node 3 and updating the cumulative reward and access count of node 3, through backpropagation, update the cumulative reward Q1 of the root node to the value a + b.

[0156] So far, the second-round simulation is completed. According to the methods in the above first-round simulation and second-round simulation, continuously simulate and iterate until the (n - 1)-th round of simulation is performed, and complete the simulation traversal of all nodes in the second-layer structure.

[0157] As Figure 6 shown, after the simulation traversal of the second-layer structure is completed, the cumulative reward Q1 of the root node is updated to the value a + b +... z.

[0158] After completing the (n - 1)-th round of simulation, start the n-th round of simulation. The specific steps are as S41 to S44.

[0159] S41, select the target object at the current moment.

[0160] According to the updated cumulative reward Q values and access count N values of all nodes in the second-layer structure obtained after the (n - 1)-th round of simulation according to the above step S33, recalculate the UCT values of all nodes in the second layer, and select the one with the largest value as the current target object.

[0161] Assume that at this time, the UCT value of node 2 is the largest, then select node 2 as the current target object. Specifically, it can be referred to Figure 7 as shown.

[0162] S42. Since node 2 has been simulated and there are no branch nodes below it, expand it and create the (n + 1)-th node.

[0163] Among them, the (n + 1)-th can be but is not limited to node 3, or other nodes that satisfy the dependency relationship. Here, the node (n + 1) does not mean other nodes beyond the n nodes. On the contrary, the node (n + 1) is still one of the n nodes corresponding to a group of services.

[0164] S43. Perform the current round of simulation on the target object.

[0165] Still calculate the cumulative reward Q value of the node (n + 1) according to the minimum startup time formula and the reward function shown in the above formula (4). n+1 Assume Q n+1 = z, and at the same time update the access count N value of the node (n + 1). n+1 value.

[0166] S44. Backpropagation, backpropagate to the root node of the target tree structure (which can also be understood as a search tree), and update the statistical data of each node on the path.

[0167] As Figure 7 shown, after simulating the node (n + 1) and updating the cumulative reward and access count of the node (n + 1), through backpropagation, update the cumulative reward Q1 of the root node to the value a + b +... + z.

[0168] Simulate and iterate in turn according to the above method to complete the n-layer iteration. Then start from the root node, recalculate the UCT values of all nodes in each layer structure, and select the node with the largest UCT value in each layer to form the final optimal path. For example, as Figure 7 shown, assume the final optimal path is node 1 → node 2 (obtained by selection in the second layer) → node 3 (obtained by selection in the third layer).

[0169] Through the technical solution in this embodiment, it is possible to finely adjust the service startup order of the baseboard management controller, not only paying attention to the resource occupancy and startup time of the service itself, but also considering the dependency relationship and resource competition situation between services. It significantly improves the efficiency and stability of the startup process and avoids the problem that the static startup order cannot adapt to the dynamic changing environment. For example, when resources are scarce, the algorithm can intelligently select those services with less resource occupancy or simpler dependency relationships to start first, thereby shortening the overall startup time and reducing the possibility of startup failure. Through dynamic simulation and statistical analysis, it provides an efficient and flexible startup strategy optimization tool for server management.

[0170] In an exemplary embodiment, determining the j-th cumulative reward of the j-th node based on the objective function and updating the current access count of the j-th node to the j-th access count includes: determining, based on the objective function, the minimum cumulative startup time from the start of startup along the j-th path to the completion of the j-th service corresponding to the j-th node; when the j-th service and the pre-services of the j-th service are both successfully started, determining the reciprocal of the minimum cumulative startup time as the j-th cumulative reward; and performing an increment operation on the current access count to obtain the j-th access count.

[0171] In this embodiment, the key steps of how to determine the minimum cumulative time of service startup based on the objective function, calculate the cumulative reward based on this, and how to update the node access count are further refined.

[0172] Assume that according to the above formula (4), the minimum cumulative time from the start of startup along the j-th path to the completion of the j-th service is calculated. This objective function reflects a comprehensive consideration of CPU / memory resource usage, service dependencies, and startup time consumption during the service startup process, aiming to find the optimal path that can minimize the overall startup time.

[0173] For example, assume that the startup process of all services includes a sequence of 5 services, Service 1 to Service 5. The startup of Service 3 depends on Service 1 and 2, and the startup time function of Service 3 is the following formula (7):

[0174] T(s3)=T(s1)+T(s2)+t(s3) (7)

[0175] Where, T(s1) and T(s2) respectively represent the startup times of Service 1 and Service 2, and t(s3) is the startup time of Service 3 itself. Through multiple simulations of the MCTS algorithm, it is not difficult to find that the cumulative time for starting up the service along path P3 (Node 1 → Node 2 → Node 3) is 5 seconds, which is the shortest time for starting up to Service 3 among all possible paths. Therefore, 5 seconds is determined as the minimum cumulative startup time.

[0176] After determining the minimum cumulative startup time, this embodiment further describes how to determine the cumulative reward according to the time efficiency when the j-th service and its pre-services are both successfully started. Specifically, the reciprocal of the minimum cumulative startup time is used as the cumulative reward, and this positive incentive mechanism can effectively guide the algorithm to preferentially explore those paths that can start services quickly.

[0177] For example, assume that the startup of the aforementioned Service 3 is still taken as an example. If all services are successfully started along Path P3 (Node 1 → Node 2 → Node 3), and the cumulative time is 5 seconds, then the cumulative reward R3 for this path is 1 / 5. This means that Path P3 has obtained a relatively high reward value for efficiently starting Service 3, which will encourage the MCTS algorithm to prioritize this path or similar highly time-efficient paths in future explorations.

[0178] After successfully starting the service, the access count of the node is then updated. This step is crucial for the convergence and path optimization of the algorithm, enabling the algorithm to more accurately evaluate the value of the path based on historical data and thus make more accurate choices in subsequent iterations.

[0179] For example, after successfully starting Service 3 along Path P3, the current access count of Node 3 (representing Service 3) will be incremented by 1 and updated to the new value. Assume that the initial access count of Node 3 is 0, and it becomes 1 after a successful startup. As the algorithm iterates, the access count of Node 3 will gradually increase. This update process reflects the frequency with which Node 3 and its corresponding path have been successfully explored, helping the algorithm to dynamically adjust its search strategy and explore more frequently those paths that have been proven to be efficient.

[0180] In this embodiment, by quantifying the minimum cumulative startup time, determining the cumulative reward mechanism, and updating the access count, an accurate evaluation method is provided for the application of the Monte Carlo tree search algorithm in optimizing the service startup order. It can not only accurately reflect the time efficiency of the service startup path but also guide the algorithm to explore efficient paths through a positive incentive mechanism. At the same time, it ensures that the algorithm can dynamically adjust the search direction based on historical data, avoid ineffective exploration, and improve the search efficiency and the accuracy of path optimization.

[0181] In an exemplary embodiment, the above method further includes: in the case where the j-th node does not have a branch node, expanding a target branch node for the j-th node, where the target branch node includes the nodes in a set of nodes other than the j-th node, and the set of nodes corresponds to a set of services; determining the target cumulative reward of the target branch node based on the objective function and updating the target access count of the target branch node; determining the (j + 1)-th path formed by the (j + 1)-th subgroup of nodes to be accessed from the target branch node back to the root node in reverse; propagating from the target branch node to the root node in reverse according to the (j + 1)-th path, and updating the statistical data of the remaining nodes in the (j + 1)-th subgroup of nodes other than the target branch node based on the target cumulative reward and the target access count.

[0182] Combined with Figure 7As shown, assume that the j-th path is node 1 → node 2 before expansion. After expanding the branch node (node 3) for node 2, the (j + 1)-th path is formed as node 1 → node 2 → node 3.

[0183] When the MCTS algorithm explores to the j-th node in the search tree, if it is found that this node has no branch nodes, that is, the subsequent startup sequence of the j-th service corresponding to the j-th node has not been fully investigated. Then, it will be considered to expand the target branch node for this node. The target branch node here is created from other services except the j-th service itself in a group of services. This expansion process aims to increase the breadth of the algorithm's exploration to ensure that all potential service startup orders are considered.

[0184] For example, assume that the service startup order includes service 1, service 2, service 3, service 4, service 5, and service 3 is a leaf node with no branches downstream. At this time, select the node 4 corresponding to service 4 from the set of services associated with service 3 {service 4, service 5} as the target branch node for expansion. This step essentially introduces the possibility of directly attempting to start service 4 after service 3 is successfully started in the simulation, expanding the search scope of the algorithm.

[0185] After expanding the branch node, based on the objective function, the cumulative startup time will be minimized. Specifically, by simulating the startup of service 4 multiple times, a set of data is obtained, from which the minimum cumulative startup time and the corresponding reward are calculated. Then, the visit count of node 4 is updated, that is, the number of times node 4 has been successfully explored, which is of great guiding significance for the subsequent selection of the algorithm.

[0186] For example, after successfully expanding the target branch node (node 4), the startup times from node 3 to node 4 obtained through simulation are 7 seconds, 6 seconds, and 6.5 seconds respectively. Based on these data, the average startup time is determined to be 6.33 seconds, which is the minimum cumulative startup time. To determine the cumulative reward, the reciprocal of the minimum cumulative startup time (6.33 seconds) is determined as the target cumulative reward of node 4. Finally, the visit count of node 4 is updated according to the number of simulations. Assume that 3 simulations are performed, then the visit count is updated from the initial 0 times to 3 times, reflecting the effective exploration times of node 4.

[0187] According to the calculated target cumulative reward and target visit count above, update the statistical data of the (j + 1)-th subgroup of nodes, including but not limited to updating the cumulative reward and visit count of each node.

[0188] For example, the path from the target branch node (node 4) backpropagating to the root node may include node 3, node 2, and node 1. According to the target cumulative reward of node 4 and the target visit count of 3, backpropagate in the order of the path node 4 → node 3 → node 2 → node 1. For each node, update its statistical data. For example, update the cumulative reward of node 3 so that the updated cumulative reward includes the reward of node 4, and the visit count is increased accordingly. And so on until all the statistical data of the root node are updated.

[0189] Through a series of steps including branch node expansion, target reward determination, and backpropagation for updating statistical data, a comprehensive exploration and optimization of the service startup path are achieved. By introducing new nodes and iterative simulation, not only is the search scope broadened, but also it is ensured that every effective exploration can be accurately recorded and fed back, promoting the algorithm to converge rapidly to an efficient startup path. In addition, the statistical data update mechanism during backpropagation improves the intelligence and self - adaptability of the service startup order optimization process, and can flexibly cope with the changes in the number of services and the uncertainty of service dependency relationships.

[0190] In an exemplary embodiment, determining the final evaluation index of each node in the target tree structure based on the final cumulative reward and the final visit count includes: sequentially obtaining each node from a group of nodes as the current node; determining the current final cumulative reward of the current node from the final cumulative reward, and determining the current final visit count of the current node from the final visit count; obtaining the ratio between the current final cumulative reward and the current final visit count to get a first value; determining a second value based on the visit count of the parent node of the current node, the current final visit count, and a target hyperparameter, where the target hyperparameter is used to control the exploration weight during the simulation iteration process using the target tree structure; and determining the sum of the first value and the second value as the current final evaluation index of the current node.

[0191] After all the nodes in the target tree structure have been simulated and traversed, recalculate the UCT value of each node, which can specifically refer to the above formula (6).

[0192] Sequentially select each node from all the nodes as the current node. For each selected node, determine the current final cumulative reward and the current final visit count of the node according to the results accumulated in the previous search tree. These values are statistically obtained after multiple iterations of the node, reflecting the exploration situation and potential value of the node.

[0193] For example, assume that a group of nodes includes node 1, node 2, and node 3. After multiple rounds of simulation according to the above - mentioned embodiment, the final cumulative reward and visit count of each node are obtained. For example, the current final cumulative reward of node 2 is 0.2, and the current final visit count is 50 times.

[0194] Calculate a first value based on the ratio between the current final cumulative reward and the current final number of visits. As shown in the above formula (6), which actually reflects the reward size brought by each visit of the node on average and is an important indicator for measuring the node value. For example, still taking node 2 as an example, its current final cumulative reward is 0.2 and the number of visits is 50 times, then the first value is 0.2 / 50 = 0.004.

[0195] Secondly, determine a second value based on the number of visits of the parent node of the current node (such as node 2), the current final number of visits, and the target hyperparameter. Here, the target hyperparameter is used to balance the exploration and exploitation of the algorithm and control the exploration tendency of the algorithm when facing unknown nodes. For example, assume that the number of visits of the parent node of node 2 (assumed to be node 1) is 200 times, the number of visits of node 2 is 50 times, and the target hyperparameter is set to . Then the second value can be calculated through the above formula (6), and the larger the second value, the more it means that the algorithm is more inclined to further explore this node.

[0196] Determine the current final evaluation index of the current node by adding the first value and the second value. This index combines the historical performance of the node (the first value) and the exploration tendency of the algorithm (the second value), providing a comprehensive basis for the subsequent selection of nodes. Among them, the higher the UCT value, the higher the overall value of the current node, and the algorithm is more inclined to select the path containing the current node for in-depth exploration.

[0197] In this embodiment, through the calculation of the first value and the second value, and their comprehensive evaluation index, a more detailed evaluation mechanism is provided for the intelligent optimization of the service startup order. It not only considers the historical statistical performance of the node, ensuring the utilization of known efficient paths, but also introduces an exploration weight factor to maintain the exploration of the algorithm for unknown potential optimization paths by the algorithm. Greatly improving the application effect of the Monte Carlo tree search algorithm in the OpenBMC server startup process, ensuring that in a complex service dependency and resource allocation environment, it can still quickly converge to the optimal startup order.

[0198] In an exemplary embodiment, creating the objective function based on the multimodal data set includes: obtaining the cumulative startup time from the start of startup to the completion of the startup of the kth service in a group of services, where k is a positive integer greater than or equal to 1 and less than the number of services in a group of services; determining the kth group of multimodal data of the kth service from the multimodal data set; obtaining a fused function by fusing the kth group of multimodal data; and obtaining the objective function by minimizing the sum of the cumulative startup time and the fused function.

[0199] Among them, multimodal data integrates, jointly analyzes, and processes information from different modalities (such as images, text, speech, sensor data, etc.) to comprehensively understand, reason about, and apply this data. Multimodal fusion includes various mathematical methods for feature-level fusion. In the embodiments of this application, a weighted fusion method is mainly used to determine the data after fusing multimodal data.

[0200] Suppose the multimodal data of each service includes a total of K data sources, and the output of each data source is x k , and the corresponding weight is , then the fused data of each service can be determined by, but not limited to, the following formula (8):

[0201] (8)

[0202] Among them, the constraint condition is , and . Among them, the assignment of weights is the core issue. In the embodiments of this application, the minimum variance weighting form is adopted. Suppose the errors of each data source are independent and the variance is , then the optimal weight is the result after normalizing the reciprocal of the variance.

[0203] By combining the cumulative startup time and the fused data, an objective function as shown in the above formula (4) is constructed. The construction of this objective function aims to simultaneously consider the time efficiency and the comprehensive state of the startup environment to ensure that the optimized startup order is not only fast but also optimal in terms of resource allocation and dependency handling. By minimizing this objective function, the most optimized service startup path can be found.

[0204] By integrating multimodal data and constructing a comprehensive objective function, the deep optimization of the OpenBMC server startup process is realized. Specifically, by combining the cumulative startup time of the service with the function after fusing the multimodal data of the node startup environment, an objective function that comprehensively reflects the startup efficiency and resource status is formed. By minimizing this objective function, the algorithm, while pursuing to shorten the startup time, comprehensively considers resource utilization and dependency management, avoiding startup delays and system instability caused by over-concentration of resources or dependency conflicts. It improves the intelligent automation level of service startup, enhances the overall performance and robustness of the system, and ensures that the service startup can still be completed quickly and smoothly in a complex and changeable environment.

[0205] In an exemplary embodiment, a group of services is started according to the startup sequence indicated by the optimal path formed by a group of serialized nodes, including: starting the services corresponding to each node on the optimal path in sequence according to the node relationships between the group of serialized nodes, where the node relationships include the association relationships and the sequence between the root node, parent node, child node, and leaf node of the target tree structure.

[0206] After obtaining the optimal path according to the Monte Carlo tree search algorithm in the above embodiment, start each service in sequence according to the association relationships and the sequence between each node on the optimal path.

[0207] Before starting the services, it is crucial to accurately understand and parse the node relationships on the optimal path. These node relationships include the associations and startup sequences between the root node, parent node, child node, and leaf node in the target tree structure.

[0208] For example, assume that the optimal path is determined through the Monte Carlo tree search algorithm, and the serialized nodes on this path are the root node, node 2 (the child node of the root node), and node 3 (the child node of node 2). The node relationships here indicate the service startup sequence, such as starting service 1 first, then starting service 2, and finally starting service 3.

[0209] Secondly, the services also need to be started according to the node relationships. That is to say, after determining the service startup sequence, it is also necessary to strictly ensure that there are no conflicts between the services started in the current sequence according to the dependency relationships between the services. For example, service 1 must be started before service 2, and service 3 can only be started after service 2 is fully started, etc. This sequence ensures the effective allocation of resources and at the same time avoids startup failures caused by unmet dependency relationships between services.

[0210] Through the technical solution in this embodiment, during the service startup process, it no longer solely depends on the statically preset sequence, but is based on the optimal path dynamically explored by the algorithm, effectively reducing resource competition and dependency problems during the startup process and enhancing the flexibility of service startup. In addition, the startup sequence automatically determined by the algorithm can intelligently respond to resource fluctuations and load changes, ensuring that even in a dynamic environment, service startup can remain efficient and stable, providing a solid foundation for the continuous operation and task processing of the server.

[0211] To more clearly understand the above technical solution, the following is a further description in combination with Figure 8 the overall schematic diagram shown.

[0212] As Figure 8As shown in the figure, the overall system for implementing the optimization method of the above service startup sequence includes a collection module, a transmission module, a service module, and an application module. Among them, the collection module is used to collect multimodal data of each service, such as CPU occupancy rate, memory occupancy rate, dependency topology relationship between services, startup time consumption, etc.

[0213] After using the weighted multimodal fusion technology to fuse the multimodal data of each service, the fused data is obtained, and this fused data is used to create an initial objective function, which can specifically refer to the above formula (4). Through the transmission module, the created initial objective function is transmitted to the service layer, and nodes corresponding to each service are created based on the service module to create a Monte Carlo tree model.

[0214] Based on the tree structure of the Monte Carlo tree and the objective function, simulate and iterate each node included in each layer of the tree structure to obtain the final evaluation index (UCT value) of each node after the iteration ends.

[0215] According to the final evaluation index of each node, determine the node with the largest UCT value in each layer, and determine the relationship (such as parent-child relationship) between the determined nodes, and determine the sequence order between the nodes. Finally, based on this sequence order, determine the sequence order of starting the corresponding services of each node, and save the optimal startup order to the device, such as saving it to the code segment of the BMC module.

[0216] Through the above embodiments provided by the present application, there are at least the following beneficial effects.

[0217] (1) It solves the problem of poor flexibility caused by statically defining the startup sequence in the prior art, and is unable to adapt to the problem of dynamically changing environments, such as resource fluctuations or load changes, etc.

[0218] (2) Through the creation of the objective function and the UCT calculation formula, it ensures the in-depth exploration of the algorithm for unknown potential optimization paths. At the same time, it avoids resource conflicts and startup delays, and improves the fluency of system startup.

[0219] (3) By obtaining the multimodal data of each service, including memory occupancy, resource utilization, and dependency relationship, it ensures the comprehensiveness and accuracy of startup decisions.

[0220] (4) Through multiple rounds of simulation iterations, accurately select the nodes with the highest potential value in each layer structure for in-depth exploration.

[0221] Through the description of the above embodiments, those skilled in the art can clearly understand that the method according to the above embodiments can be implemented by means of software plus a necessary general hardware platform. Of course, it can also be implemented by hardware, but in many cases the former is a better implementation method.

[0222] According to another aspect of the embodiments of the present application, an optimization device for the service startup sequence is further provided. The schematic structural diagram of the system is as Figure 9 shown, including the following modules: a first acquisition unit 902, configured to acquire a multi-modal data set of a group of services, where a group of services includes at least one service in a baseboard management controller, and the multi-modal data set includes the memory occupancy rate, resource utilization rate of at least one service, and the dependency relationship between services; a creation unit 904, configured to create an objective function based on the multi-modal data set, where the optimization objective of the objective function is to minimize the total startup time of a group of services; a first processing unit 906, configured to determine, based on the objective function and the objective tree structure, the target node corresponding to the optimal evaluation index in each layer structure to obtain a group of serialized nodes, where the evaluation index is used to describe the balance between the reward and access of the node, the number of layers of the objective tree structure is equal to the number of services in a group of services, and a node in the objective tree structure represents a service in a group of services; a startup unit 908, configured to start a group of services according to the startup sequence indicated by the optimal path formed by a group of serialized nodes.

[0223] For the specific execution steps involved in various calculation processes and dynamic optimization of storage space in the above-mentioned various modules, reference can be made to the description in the above embodiments, and details are not described here again.

[0224] Obviously, the above-mentioned optimization device for the service startup sequence can be used to implement the optimization method for the service startup sequence provided in the above embodiments, and those that have been described will not be repeated. As used hereinafter, the term "module" can be a combination of software and / or hardware that can implement a predetermined function. Although the devices described in the following embodiments are preferably implemented in software, implementation in hardware, or a combination of software and hardware is also possible and contemplated.

[0225] It should be noted that the first acquisition unit 902 in this embodiment can be used to execute the above step S202, the creation unit 904 in this embodiment can be used to execute the above step S204, the first processing unit 906 in this embodiment can be used to execute the above step S206, and the startup unit 908 in this embodiment can be used to execute the above step S208.

[0226] In an exemplary embodiment, the above-mentioned first processing unit 906 includes: a first processing module, configured to, when the number of layers of the target tree structure is n, sequentially perform simulation iterations in each layer structure starting from the root node of the target tree structure to obtain the final cumulative rewards and final visit counts of each child node after the last round of iterative update, where n is a positive integer greater than or equal to 2; a second processing module, configured to determine the final evaluation metrics of each node in the target tree structure based on the final cumulative rewards and final visit counts to obtain an evaluation metric set; a third processing module, configured to determine the target nodes corresponding to the optimal evaluation metrics in each layer structure from the evaluation metric set to obtain a set of serialized nodes.

[0227] In an exemplary embodiment, the above-mentioned first processing module includes: a first processing sub-module, configured to perform a simulation iteration on the i-th layer structure through the following steps, where i is a positive integer greater than or equal to 1 and less than or equal to n: based on the current evaluation metrics of the i-th subgroup of nodes in the i-th layer structure, select the j-th node from the i-th subgroup of nodes, where the j-th current evaluation metric of the j-th node is the largest evaluation metric value among the i-th subgroup of nodes, and j is a positive integer less than or equal to the number of nodes included in the i-th layer structure; when the j-th node has branch nodes, determine the j-th cumulative reward of the j-th node based on the objective function, and update the current visit count of the j-th node to the j-th visit count, where each time the j-th node is visited, the reward and visit count of the j-th node are both updated, and the branch nodes include the child nodes of the j-th node or the leaf nodes of the j-th node; determine the j-th path composed of the j-th subgroup of nodes that need to be visited from the j-th node back to the root node; propagate back from the j-th node to the root node along the j-th path, and update the statistical data of the remaining nodes in the j-th subgroup of nodes except the j-th node based on the j-th cumulative reward and the j-th visit count, where the statistical data includes cumulative rewards, visit counts, and evaluation metrics.

[0228] In an exemplary embodiment, the above-mentioned first processing module includes: a second processing sub-module, configured to determine the minimum cumulative start time for the completion of the j-th service corresponding to the j-th node starting from the start of the j-th path based on the objective function; a third processing sub-module, configured to, when the j-th service and the pre-service of the j-th service are both successfully started, determine the reciprocal of the minimum cumulative start time as the j-th cumulative reward; a fourth processing sub-module, configured to perform an increment operation on the current visit count to obtain the j-th visit count.

[0229] In an exemplary embodiment, the above-mentioned device further includes: an expansion unit configured to expand a target branch node for the j-th node when the j-th node does not have a branch node, where the target branch node includes nodes other than the j-th node in a set of nodes, and the set of nodes corresponds to a set of services; a second processing unit configured to determine a target cumulative reward of the target branch node based on a target function and update a target access count of the target branch node; a third processing unit configured to determine a (j + 1)-th path composed of a (j + 1)-th subgroup of nodes to be accessed from the target branch node back to the root node in reverse; a fourth processing unit configured to propagate from the target branch node to the root node in reverse according to the (j + 1)-th path, and update statistical data of the remaining nodes other than the target branch node in the (j + 1)-th subgroup of nodes based on the target cumulative reward and the target access count.

[0230] In an exemplary embodiment, the above-mentioned second processing module includes: a first acquisition sub-module configured to sequentially acquire each node in a set of nodes as a current node; a fifth processing sub-module configured to determine a current final cumulative reward of the current node from the final cumulative rewards and determine a current final access count of the current node from the final access counts; a second acquisition sub-module configured to acquire a ratio between the current final cumulative reward and the current final access count to obtain a first value; a sixth processing sub-module configured to determine a second value based on an access count of a parent node of the current node, the current final access count, and a target hyperparameter, where the target hyperparameter is used to control an exploration weight in a simulation iteration process using a target tree structure; a seventh processing sub-module configured to determine a sum of the first value and the second value as a current final evaluation index of the current node.

[0231] In an exemplary embodiment, the above-mentioned creation unit 904 includes: an acquisition module configured to acquire a cumulative startup time from the start of startup to the completion of startup of the k-th service in a set of services, where k is a positive integer greater than or equal to 1 and less than the number of services in the set of services; a fourth processing module configured to determine a k-th set of multimodal data of the k-th service from a multimodal data set; a fusion module configured to obtain a fused function by fusing the k-th set of multimodal data; a fifth processing module configured to obtain a target function by minimizing a sum of the cumulative startup time and the fused function.

[0232] In an exemplary embodiment, the above-mentioned startup unit 908 includes: a startup module configured to sequentially start services corresponding to each node on an optimal path according to a node relationship between a set of serialized nodes, where the node relationship includes an association relationship and a sequence order between a root node, a parent node, a child node, and a leaf node of a target tree structure.

[0233] It should be noted that the above-mentioned modules can be implemented by software or hardware. For the latter, it can be achieved in the following ways, but not limited to this: the above-mentioned modules are all located in the same processor; or, the above-mentioned modules are respectively located in different processors in any combination form.

[0234] According to another aspect of the embodiments of the present application, there is also provided an electronic device, including a memory 9 and a processor. A computer program is stored in the memory, and the processor is configured to run the computer program to execute the steps in the embodiments of the above-mentioned optimization method for any one of the service startup sequences.

[0235] According to another aspect of the embodiments of the present application, there is also provided a computer-readable storage medium, in which a computer program is stored. The computer program is configured to execute the steps in the embodiments of the above-mentioned optimization method for any one of the service startup sequences when running.

[0236] In an exemplary embodiment, the above-mentioned computer-readable storage medium may include, but is not limited to: USB flash drives, read-only memories (ROM for short), random access memories (RAM for short), mobile hard disks, magnetic disks, or optical discs and other various media that can store computer programs.

[0237] According to another aspect of the embodiments of the present application, there is also provided a computer program product. The above-mentioned computer program product includes a computer program, and when the computer program is executed by a processor, it implements the steps in the embodiments of the above-mentioned optimization method for any one of the service startup sequences.

[0238] The embodiments of the present application also provide another computer program product, including a non-volatile computer-readable storage medium. The non-volatile computer-readable storage medium stores a computer program, and when the computer program is executed by a processor, it implements the steps in the embodiments of the above-mentioned optimization method for any one of the service startup sequences.

[0239] Those skilled in the art can further realize that the units and algorithm steps of each example described in combination with the embodiments disclosed herein can be implemented by electronic hardware, computer software, or a combination of the two. To clearly illustrate the interchangeability of hardware and software, the composition and steps of each example have been generally described according to functions in the above description. Whether these functions are executed in a hardware or software manner depends on the specific application and design constraints of the technical solution. Those skilled in the art can use different methods to implement the described functions for each specific application, but such implementation should not be considered to exceed the scope of the present application.

[0240] The above has introduced in detail an optimization method for the service startup sequence provided by this application. Specific examples are used in this article to elaborate on the principle and implementation manner of this application. The description of the above embodiments is only used to help understand the method and its core idea of this application. It should be noted that for those of ordinary skill in the art of this technology, without departing from the principle of this application, several improvements and modifications can still be made to this application, and these improvements and modifications also fall within the protection scope of the claims of this application.

Claims

1. An optimization method for service startup sequence, characterized in that: It includes: Obtain a multi-modal data set of a group of services, where the group of services includes at least one service in the baseboard management controller, and the multi-modal data set includes the memory occupancy rate, resource utilization rate of the at least one service, and the dependency relationship between services; Based on the multi-modal data set, create an objective function, where the optimization objective of the objective function is to minimize the total startup time of the group of services; Based on the objective function and the target tree structure, determine the target nodes corresponding to the optimal evaluation indicators in each layer structure to obtain a group of serialized nodes, where the evaluation indicator is used to describe the balance between the reward and access of the node, the number of layers of the target tree structure is equal to the number of services in the group, and a node in the target tree structure represents a service in the group; Start the group of services according to the startup sequence indicated by the optimal path formed by the group of serialized nodes.

2. The method according to claim 1, characterized in that: The step of determining the target nodes corresponding to the optimal evaluation indicators in each layer structure based on the objective function and the target tree structure to obtain a group of serialized nodes includes: When the number of layers of the target tree structure is n, perform simulation iterations in each layer structure in sequence starting from the root node of the target tree structure to obtain the final cumulative reward and final access times of each child node after the last round of iterative update, where n is a positive integer greater than or equal to 2; Based on the final cumulative reward and the final access times, determine the final evaluation indicator of each node in the target tree structure to obtain an evaluation indicator set; Determine the target nodes corresponding to the optimal evaluation indicators in each layer structure from the evaluation indicator set to obtain the group of serialized nodes.

3. The method according to claim 2, characterized in that: The step of performing simulation iterations in each layer structure in sequence starting from the root node of the target tree structure to obtain the final cumulative reward and final access times of each child node after the last round of iterative update includes: Perform simulation iterations on the i-th layer structure through the following steps, where i is a positive integer greater than or equal to 1 and less than or equal to n: Based on the current evaluation indicator of the i-th subgroup of nodes in the i-th layer structure, select the j-th node from the i-th subgroup of nodes, where the j-th current evaluation indicator of the j-th node is the largest value among the evaluation indicators of the i-th subgroup of nodes, and j is a positive integer less than or equal to the number of nodes included in the i-th layer structure; When the j-th node has branch nodes, based on the objective function, determine the j-th cumulative reward of the j-th node, and update the current access times of the j-th node to the j-th access times, where each time the j-th node is accessed, the reward and access times of the j-th node are updated, and the branch nodes include the child nodes of the j-th node or the leaf nodes of the j-th node; Determine the j-th path formed by the j-th subgroup of nodes that need to be accessed from the j-th node back to the root node; According to the j-th path, propagate backward from the j-th node to the root node, and update the statistical data of the remaining nodes in the j-th subgroup of nodes except the j-th node based on the j-th cumulative reward and the j-th number of visits, where the statistical data includes cumulative reward, number of visits, and evaluation metrics.

4. The method according to claim 3, wherein: The determining the j-th cumulative reward of the j-th node based on the objective function and updating the current number of visits of the j-th node to the j-th number of visits includes: Based on the objective function, determine the minimum cumulative start time for the completion of the j-th service corresponding to the j-th node starting from the start of the j-th path; When the j-th service and the prerequisite services of the j-th service are successfully started, determine the reciprocal of the minimum cumulative start time as the j-th cumulative reward; Perform an increment operation on the current number of visits to obtain the j-th number of visits.

5. The method according to claim 3, wherein: The method further includes: When the j-th node does not have a branch node, expand a target branch node for the j-th node, where the target branch node includes the nodes other than the j-th node in a group of nodes, and the group of nodes corresponds to a group of services; Based on the objective function, determine the target cumulative reward of the target branch node and update the target number of visits of the target branch node; Determine the (j + 1)-th path formed by the (j + 1)-th subgroup of nodes that need to be accessed from the target branch node back to the root node; According to the (j + 1)-th path, propagate backward from the target branch node to the root node, and update the statistical data of the remaining nodes in the (j + 1)-th subgroup of nodes except the target branch node based on the target cumulative reward and the target number of visits.

6. The method according to claim 2, wherein: The determining the final evaluation metric of each node in the target tree structure based on the final cumulative reward and the final number of visits includes: Sequentially obtain each node in a group of nodes as the current node; Determine the current final cumulative reward of the current node from the final cumulative reward and determine the current final number of visits of the current node from the final number of visits; Obtain the ratio between the current final cumulative reward and the current final number of visits to obtain a first value; Based on the number of visits of the parent node of the current node, the current final number of visits, and a target hyperparameter, determine a second value, where the target hyperparameter is used to control the exploration weight in the simulation iteration process using the target tree structure; Determine the sum of the first value and the second value as the current final evaluation metric of the current node.

7. The method according to claim 1, wherein: Creating an objective function based on the multimodal data set includes: Obtaining the cumulative startup time from the start of startup to the completion of startup of the k-th service in the set of services, where k is a positive integer greater than or equal to 1 and less than the number of services in the set of services; Determining the k-th set of multimodal data of the k-th service from the multimodal data set; Obtaining a fused function by fusing the k-th set of multimodal data; Obtaining the objective function by minimizing the sum of the cumulative startup time and the fused function.

8. The method according to any one of claims 1 to 7, wherein Starting the set of services according to the startup order indicated by the optimal path formed by the set of serialized nodes includes: Starting the services corresponding to the respective nodes on the optimal path in sequence according to the node relationship between the set of serialized nodes, where the node relationship includes the association relationship and the sequence order between the root node, the parent node, the child node, and the leaf node of the target tree structure.

9. An optimization device for service startup order, wherein It includes: A first acquisition unit for acquiring a multimodal data set of a set of services, where the set of services includes at least one service in a baseboard management controller, and the multimodal data set includes the memory occupancy rate, resource utilization rate of the at least one service, and the dependency relationship between services; A creation unit for creating an objective function based on the multimodal data set, where the optimization objective of the objective function is to minimize the total startup time of the set of services; A first processing unit for determining, based on the objective function and the target tree structure, the target nodes corresponding to the optimal evaluation indicators in each layer structure to obtain a set of serialized nodes, where the evaluation indicator is used to describe the balance between the reward and access of the node, the number of layers of the target tree structure is equal to the number of services in the set of services, and a node in the target tree structure represents one service in the set of services; A startup unit for starting the set of services according to the startup order indicated by the optimal path formed by the set of serialized nodes.

10. A computer-readable storage medium, characterized in that, A computer program is stored in the computer-readable storage medium, where when the computer program is executed by a processor, the steps of the optimization method for service startup order according to any one of claims 1 to 8 are implemented.

11. An electronic device, characterized in that, It includes: A memory for storing a computer program; A processor for implementing the steps of the optimization method for service startup order according to any one of claims 1 to 8 when executing the computer program.

Citation Information

Patent Citations

  • Automatic laboratory deadlock-free dynamic scheduling method based on Monte Carlo tree search

    CN118860610A

  • Cloud computing parallel task optimization scheduling method based on priority dependency graph

    CN119806776A

  • Server startup item starting method and device

    CN119917180A

  • Distributed applications management with dependent resilient distributed services

    US20170149864A1

Cited By

  • Service file processing method and electronic equipment

    CN120994273A

  • Application management method and device, electronic equipment and computer readable storage medium

    CN121300874A

  • Electric submersible pump soft start cabinet parameter optimization method based on neural network

    CN121900198A