Server management method and device, computer device and storage medium
By monitoring and removing target nodes that do not meet the criteria, the problem of mutual interference between multiple applications in a Kubernetes server cluster is resolved, thereby improving server stability and performance.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- INDUSTRIAL AND COMMERCIAL BANK OF CHINA
- Filing Date
- 2023-06-13
- Publication Date
- 2026-07-07
AI Technical Summary
In a Kubernetes server cluster, offline jobs from multiple applications can interfere with each other, leading to decreased server performance and service instability.
By monitoring the current average periodicity (CPI) of each application on the server and its corresponding instruction threshold, the monitoring results are determined. Based on the application priority and the preset eviction algorithm, target nodes that do not meet the preset operating conditions are evictioned until the server meets the preset operating conditions.
This eliminates the mutual interference between offline jobs, improving server stability and performance.
Smart Images

Figure CN116743825B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of server technology, and in particular to a server management method, apparatus, computer equipment, storage medium, and computer program product. Background Technology
[0002] Data processing centers are typically deployed on Kubernetes (a cloud management system for containerized applications on multiple hosts) server clusters. Each server in the cluster hosts multiple applications, and each application on each server needs to be managed.
[0003] Current application management methods determine the server's target operating data based on the server's current CPU (Central Processing Unit) and memory data, and then adjust the applications running on the server according to the target operating data.
[0004] However, the more offline jobs an application runs on the server, the more these offline jobs will interfere with each other, and the complex inter-job calls between them will degrade server performance, leading to service instability. Summary of the Invention
[0005] Therefore, it is necessary to provide a server management method, apparatus, computer equipment, computer-readable storage medium, and computer program product to address the aforementioned technical problems.
[0006] Firstly, this application provides a server management method. The method includes:
[0007] Within the current detection period, obtain the current average periodic data CPI of each application in the server and the instruction threshold corresponding to the current CPI;
[0008] Based on the current CPI and the corresponding instruction threshold for each current CPI, the monitoring results of each application are determined;
[0009] If the monitoring result indicates that a target application in the server does not meet the preset operating conditions, the target node in the application to be expelled is determined according to the application priority of each application and the preset expulsion algorithm.
[0010] According to the preset eviction mode, the target node in the application to be eviction is evictioned until each application in the server meets the preset operating conditions.
[0011] In one embodiment, the step of obtaining the current instruction average periodicity (CPI) data of each application in the server and the instruction threshold corresponding to the current CPI within the current detection period includes:
[0012] Within the current detection period, obtain the current instruction average periodicity (CPI) data for each application on the server;
[0013] The CPI of each application in the server within a historical time window is obtained to obtain a first historical data set corresponding to each application; the historical time window is a preset time period before the start point of the current detection cycle.
[0014] According to the preset distribution algorithm, each of the first historical data sets is processed to obtain the instruction threshold corresponding to the current CPI of each application.
[0015] In one embodiment, determining the monitoring results of each application based on each current CPI and the corresponding instruction threshold includes:
[0016] Determine whether the current CPI of each application exceeds the instruction threshold corresponding to the current CPI twice consecutively;
[0017] If the current CPI of the application exceeds the instruction threshold corresponding to the current CPI twice consecutively, the application is determined to be the target application, and the monitoring result is determined to be that there is a target application in the server that does not meet the preset running conditions;
[0018] If the current CPI of the application does not exceed the instruction threshold corresponding to the current CPI twice consecutively, the application is determined to meet the preset operating conditions.
[0019] In one embodiment, when the monitoring result indicates that a target application on the server does not meet preset operating conditions, determining the target node in the application to be evicted from each application according to the application priority of each application and a preset eviction algorithm includes:
[0020] If the monitoring result indicates that a target application on the server does not meet the preset operating conditions, the application with the lowest application priority is determined from among the applications on the server according to the preset application priority from high to low, and the application to be expelled is obtained.
[0021] If the node of the application to be expelled meets the preset expulsion conditions, the node of the application to be expelled is determined as the target node.
[0022] In one embodiment, after determining the application with the lowest application priority among all applications on the server according to a preset application priority order from high to low, and obtaining the application to be expelled, the method further includes:
[0023] If the node of the application to be expelled does not meet the preset expulsion conditions, the application priority above the application priority of the application to be expelled is determined as the next priority based on the order of application priority from high to low.
[0024] The application with the lowest priority is updated to be expelled, and the node of the application to be expelled is identified as the target node.
[0025] In one embodiment, the expulsion mode includes an automatic mode and a manual mode, wherein expelling the target node in the application to be expelled according to the preset expulsion mode includes:
[0026] When the eviction mode is the automatic mode, the target node is evictioned and an event for eviction of the target node is constructed;
[0027] When the eviction mode is manual mode, an event for eviction of the target node is constructed and the event for eviction of the target node is fed back.
[0028] In response to a determined triggering operation for the event of evictring the target node, the target node is evictled.
[0029] In one embodiment, before acquiring the current instruction average periodicity (CPI) data of each application in the server and the instruction threshold corresponding to the current CPI within the current detection period, the method further includes:
[0030] Within the current detection period, for each application on the server, historical processor data and historical memory data of the application within a historical time window are obtained to obtain a second historical data set corresponding to the application; the historical time window is a preset time period before the start point of the current detection period.
[0031] Based on a preset prediction model, the second historical data set is processed to obtain the resource consumption prediction sequence of the application.
[0032] Based on the second historical data set and resource usage prediction sequence of each application, the recommended mixed-use resources provided by the server are determined;
[0033] Based on preset application priorities, a level of recommended mixed resources is determined for each application priority in the recommended mixed resources.
[0034] In one embodiment, after determining the recommended mixed-use resources corresponding to each application priority based on preset application priorities, the method further includes:
[0035] In response to a request to deploy a first application on the server, a first application priority for the first application is determined;
[0036] Based on the first application priority, determine the first-level recommended mixed resources corresponding to the first application from each of the recommended mixed resources of the first level;
[0037] Obtain the first-level mixed resources currently occupied by the first application priority, and determine the remaining recommended mixed resources based on the first-level recommended mixed resources and the first-level mixed resources currently occupied by the first application priority.
[0038] Based on the remaining recommended mixed resources, determine whether to deploy the first application.
[0039] Secondly, this application also provides a server management device. The device includes:
[0040] The acquisition module is used to acquire the current average periodic data CPI of each application in the server and the instruction threshold corresponding to the current CPI within the current detection period.
[0041] The first determining module is used to determine the monitoring results of each application based on each current CPI and the instruction threshold corresponding to each current CPI;
[0042] The second determining module is used to determine the target node in the application to be expelled from each application based on the application priority of each application and the preset expulsion algorithm when the monitoring result indicates that there is a target application in the server that does not meet the preset operating conditions.
[0043] The eviction module is used to evict target nodes in the application to be eviction according to a preset eviction mode until each application in the server meets the preset operating conditions.
[0044] Thirdly, this application also provides a computer device. The computer device includes a memory and a processor, the memory storing a computer program, and the processor executing the computer program to perform the following steps:
[0045] Within the current detection period, obtain the current average periodic data CPI of each application in the server and the instruction threshold corresponding to the current CPI;
[0046] Based on the current CPI and the corresponding instruction threshold for each current CPI, the monitoring results of each application are determined;
[0047] If the monitoring result indicates that a target application in the server does not meet the preset operating conditions, the target node in the application to be expelled is determined according to the application priority of each application and the preset expulsion algorithm.
[0048] According to the preset eviction mode, the target node in the application to be eviction is evictioned until each application in the server meets the preset operating conditions.
[0049] Fourthly, this application also provides a computer-readable storage medium. The computer-readable storage medium stores a computer program thereon, which, when executed by a processor, performs the following steps:
[0050] Within the current detection period, obtain the current average periodic data CPI of each application in the server and the instruction threshold corresponding to the current CPI;
[0051] Based on the current CPI and the corresponding instruction threshold for each current CPI, the monitoring results of each application are determined;
[0052] If the monitoring result indicates that a target application in the server does not meet the preset operating conditions, the target node in the application to be expelled is determined according to the application priority of each application and the preset expulsion algorithm.
[0053] According to the preset eviction mode, the target node in the application to be eviction is evictioned until each application in the server meets the preset operating conditions.
[0054] Fifthly, this application also provides a computer program product. The computer program product includes a computer program that, when executed by a processor, performs the following steps:
[0055] Within the current detection period, obtain the current average periodic data CPI of each application in the server and the instruction threshold corresponding to the current CPI;
[0056] Based on the current CPI and the corresponding instruction threshold for each current CPI, the monitoring results of each application are determined;
[0057] If the monitoring result indicates that a target application in the server does not meet the preset operating conditions, the target node in the application to be expelled is determined according to the application priority of each application and the preset expulsion algorithm.
[0058] According to the preset eviction mode, the target node in the application to be eviction is evictioned until each application in the server meets the preset operating conditions.
[0059] The aforementioned server management method, apparatus, computer equipment, storage medium, and computer program product, within the current detection period, acquires the current average instruction periodicity (CPI) data of each application in the server and the instruction threshold corresponding to the current CPI; based on each current CPI and the corresponding instruction threshold, determines the monitoring result of each application; if the monitoring result indicates that a target application in the server does not meet preset operating conditions, a target node to be expelled in each application is determined according to the application priority and a preset expulsion algorithm; and the target node in the application to be expelled is expelled according to a preset expulsion mode until all applications in the server meet the preset operating conditions. Using this method, monitoring the current average instruction periodicity data based on instruction thresholds yields monitoring results, clarifying whether offline jobs affect each other. Furthermore, if the monitoring result indicates that a target application in the server does not meet preset operating conditions, a target node to be expelled is determined according to the application priority and a preset expulsion algorithm. Then, the target node is expelled, eliminating the mutual interference of offline jobs and improving service stability. Attached Figure Description
[0060] Figure 1 This is a flowchart illustrating a server management method in one embodiment;
[0061] Figure 2 This is a flowchart illustrating the step of determining the instruction threshold in one embodiment;
[0062] Figure 3 This is a flowchart illustrating the steps for determining whether an application meets the running conditions in one embodiment;
[0063] Figure 4 This is a flowchart illustrating the steps for determining the target node in one embodiment;
[0064] Figure 5 This is a flowchart illustrating the steps for updating the target node in one embodiment;
[0065] Figure 6 This is a flowchart illustrating the steps of expelling the target node in one embodiment;
[0066] Figure 7 This is a flowchart illustrating the steps for determining the recommended mixed-use resources at a specific level in one embodiment.
[0067] Figure 8 This is a schematic diagram of mixed-part recommendation resources in one embodiment;
[0068] Figure 9 This is a schematic diagram illustrating the extended mixed-part recommended resources in one embodiment;
[0069] Figure 10 Here is a flowchart of the calculation process for recommending mixed resources in one embodiment;
[0070] Figure 11 This is a flowchart illustrating the process of determining whether to deploy the first application in one embodiment;
[0071] Figure 12 This is a schematic diagram of the fields of a mixed resource in one embodiment;
[0072] Figure 13 This is a schematic diagram of the image data used in one embodiment;
[0073] Figure 14 This is a schematic diagram of the server management system in one embodiment;
[0074] Figure 15 This is a structural block diagram of a server management device in one embodiment;
[0075] Figure 16 This is an internal structural diagram of a computer device in one embodiment. Detailed Implementation
[0076] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application.
[0077] In one embodiment, such as Figure 1 As shown, a server management method is provided. This application does not limit the execution device of the server management method. Taking the application of the server management method to a server as an example, the method includes the following steps:
[0078] Step 102: Within the current detection period, obtain the current average periodic data (CPI) of each application in the server and the instruction threshold corresponding to the current CPI.
[0079] Among them, the server is any server in the K8s (Kubernetes, an open-source system for automatically deploying, scaling and managing containerized applications) server cluster. The average number of instruction cycles (CPI), also known as the instruction cycle, is the average number of clock cycles (the reciprocal of the machine's clock speed) required to execute one instruction in a computer architecture. The execution time of a complete computer system, i.e., the instruction cycle, refers to the total time taken to fetch the instruction from memory and execute it. It depends on the hardware structure and the performance of each component. CPI can reflect the running status of an application. When the application is running stably, the value of the application's CPI will not fluctuate too much. When there is a large fluctuation, it indicates that the application has been disturbed, such as the competition for resources such as CPU (Central Processing Unit) resources, memory bandwidth, and L3 cache (level 3 cache). The equation for the average number of instruction cycles is the following formula (1):
[0080]
[0081] In formula (1), IC i It is the number of instructions of type i, CC I IC is the number of clock cycles for the i-th instruction, where IC = ∑ i (IC i ) is the total number of instructions, which, for a given benchmark procedure, is the sum of all instruction types.
[0082] In implementation, the server is pre-configured with a detection period and a mixed-distribution data collector. Multiple applications are deployed on the server. Within the current detection period, the server collects the average periodic data of current instructions from each application on the server, based on the pre-configured mixed-distribution data collector. Simultaneously, the server obtains the CPI of each application on the server within a historical time window, resulting in a first historical data set for each application. For each first historical data set, the server performs distribution processing to obtain the instruction threshold corresponding to the current CPI of the application.
[0083] Step 104: Determine the monitoring results for each application based on each current CPI and the corresponding instruction threshold.
[0084] In practice, the server monitors the current CPI of each application within each application according to a preset monitoring period and the instruction threshold corresponding to the current CPI of that application, and obtains the monitoring results.
[0085] Specifically, the server has pre-set operating conditions. For each application on the server, the server, according to a preset monitoring period, determines whether the application meets the preset operating conditions based on the instruction threshold corresponding to the application's current CPI and the application's current CPI. If the application does not meet the operating conditions, the server identifies that application as the target application.
[0086] Optionally, the monitoring period can be 1 minute or 2 minutes, depending on the management requirements. This application embodiment does not limit the monitoring period.
[0087] Step 106: If the monitoring result indicates that there is a target application in the server that does not meet the preset operating conditions, the target node in the application to be expelled is determined according to the application priority of each application and the preset expulsion algorithm.
[0088] In implementation, the server is pre-configured with an eviction algorithm to determine target nodes that need to be evicted. When monitoring indicates that a target application on the server does not meet preset operating conditions, the server determines the application to be evicted from among the applications based on the eviction algorithm and the application priority of each application. Then, the server identifies the target node from among the applications to be evicted.
[0089] In an optional embodiment, the server pre-configures application priorities. These priorities include high priority and compatibility priority. All critical applications on the server are assigned high priority, while other applications are categorized as compatibility applications and assigned compatibility priority. The compatibility priority is further divided into 5 levels. The application priorities from highest to lowest are: high priority, level 1, level 2, level 3, level 4, and level 5.
[0090] Step 108: According to the preset eviction mode, evict the target node in the application to be eviction until each application in the server meets the preset operating conditions.
[0091] The server has a pre-configured eviction mode. The eviction mode includes manual mode and automatic mode.
[0092] In practice, the server evicts target nodes from applications according to a pre-set eviction mode until all applications on the server meet preset operating conditions. The server generates an event to evict the target node. Then, the server sends the eviction event to the target user.
[0093] In the aforementioned server management method, the average cycle data of the current command is monitored based on the command threshold to obtain monitoring results, clarifying whether offline jobs affect each other. If the monitoring results indicate that a target application on the server does not meet preset operating conditions, the target node to be evicted is determined based on the application priority of each application and a preset eviction algorithm. Then, the target node is evicted, eliminating the mutual interference of offline jobs and improving service stability.
[0094] In one embodiment, such as Figure 2 As shown, the specific processing steps of step 102 include:
[0095] Step 202: Within the current detection period, obtain the current instruction average periodicity (CPI) data of each application in the server.
[0096] The server is pre-configured with a detection cycle and a mixed-data collector. The detection cycle is used by the server to update the instruction threshold corresponding to CPI at certain time intervals.
[0097] In practice, during the current detection cycle, the server collects the average periodic data (CPI) of the current commands of each application on the server through a preset mixed-use collector.
[0098] Optionally, the testing cycle can be set to 1 day or 2 days. The testing cycle is set according to management needs. This application embodiment does not limit the testing cycle.
[0099] Step 204: Obtain the CPI of each application in the server within the historical time window to obtain the first historical data set corresponding to each application.
[0100] The historical time window is a preset time period prior to the start of the current detection cycle.
[0101] In implementation, historical time windows are pre-set in the server. For each application within each application, the server obtains the CPI within the historical time window of that application, thus obtaining the first historical data set corresponding to that application.
[0102] In one optional embodiment, the preset time period is 7 days, and the historical time window is the 7 days prior to the current detection period. For each application on the server, the server obtains the CPI of the application for the most recent 7 days to obtain the first historical data set corresponding to that application.
[0103] Optionally, the preset time period can be 7 days or 5 days, depending on the management needs. This application embodiment does not limit the preset time period.
[0104] Step 206: According to the preset distribution algorithm, perform data processing on each first historical data set to obtain the instruction threshold corresponding to the current CPI of each application.
[0105] The distribution algorithm is the 3-Sigma (three-sigma rule) algorithm.
[0106] In practice, the server processes the first historical data set corresponding to each application using the 3-Sigma algorithm to obtain the instruction threshold corresponding to the current CPI of that application.
[0107] In this embodiment, the first historical data set and the current instruction average cycle data corresponding to each application are obtained, and the instruction threshold corresponding to the current CPI of the application is determined based on the first historical data set, thus clarifying the operation status of each application.
[0108] In one embodiment, such as Figure 3 As shown, the specific processing steps of step 104 include:
[0109] Step 302: Determine whether the current CPI of each application exceeds the instruction threshold corresponding to the current CPI twice consecutively.
[0110] In practice, for each application on the server, the server determines whether the current CPI of that application exceeds the instruction threshold corresponding to the current CPI twice consecutively.
[0111] Step 304: If the current CPI of the application exceeds the instruction threshold corresponding to the current CPI twice consecutively, the application is identified as the target application, and the monitoring result is determined to be that there is a target application in the server that does not meet the preset running conditions.
[0112] In implementation, the server is pre-set to operate under the condition that the application's current CPI does not exceed the corresponding instruction threshold twice consecutively. If the application's current CPI exceeds the corresponding instruction threshold twice consecutively, the server identifies the application as the target application and determines that the target application does not meet the pre-set operating conditions. Simultaneously, the server recognizes the target application's failure to meet the pre-set operating conditions as a monitoring result.
[0113] Step 306: If the current CPI of the application does not exceed the instruction threshold corresponding to the current CPI twice consecutively, it is determined that the application meets the preset operating conditions.
[0114] In practice, if the application's current CPI does not exceed the instruction threshold corresponding to the current CPI twice consecutively, the server determines that the application meets the preset operating conditions. If all applications on the server meet the preset operating conditions, the server determines that all applications are running normally and that no offline jobs on the server affect each other.
[0115] In this embodiment, the average cycle data of the current instruction is monitored according to the instruction threshold to obtain the monitoring results, which clarify whether offline operations affect each other.
[0116] In one embodiment, such as Figure 4 As shown, the specific processing steps of step 106 include:
[0117] Step 402: If the monitoring result indicates that there is a target application on the server that does not meet the preset operating conditions, the application with the lowest application priority is determined from the applications on the server according to the preset application priority from high to low, and the application to be expelled is obtained.
[0118] In implementation, application priorities are pre-configured on the server. If the server detects that a target application does not meet the preset operating conditions, it identifies the application with the lowest priority among all applications on the server, in descending order of their preset priorities. The server then designates this lowest-priority application as the application to be evicted.
[0119] Step 404: If the node of the application to be expelled meets the preset expulsion conditions, the node of the application to be expelled is determined as the target node.
[0120] The server is pre-configured with eviction conditions, which are that the number of nodes of the application to be eviction is greater than 1 and the resources occupied by the nodes exceed 5% (percentage).
[0121] During implementation, the server determines the number of nodes of the application to be evicted. If the number of nodes is 1, the server determines that the node does not meet the preset eviction criteria. If the number of nodes is greater than 1, the server checks whether any node among the nodes of the application to be evicted has a resource usage exceeding 5%. If any node among the nodes of the application to be evicted has a resource usage exceeding 5%, the server determines that the node meets the preset eviction criteria. Then, the server designates that node as the target node. If no node among the nodes of the application to be evicted has a resource usage exceeding 5%, the server determines that the node does not meet the preset eviction criteria.
[0122] In an optional embodiment, if there are multiple applications to be expelled, the server determines the node of the application with the most nodes to be expelled as the target node.
[0123] In this embodiment, the application with the lowest application priority is identified as the application to be expelled, and if the node of the application to be expelled meets the preset expulsion conditions, the node of the application to be expelled is identified as the target node, so as to facilitate the subsequent expulsion of the target node.
[0124] In one embodiment, if the node of the application to be evicted does not meet the preset evicting conditions, the application to be evicted needs to be updated, and the target node needs to be determined. For example... Figure 5 As shown, after step 402 is executed, the specific processing steps of this server management method include:
[0125] Step 502: If the node of the application to be expelled does not meet the preset expulsion conditions, the application priority above the application priority of the application to be expelled is determined as the second priority based on the order of application priority from high to low.
[0126] In practice, if the node of the application to be evicted does not meet the preset eviction conditions, the server will determine the application priority above the application priority of the application to be evicted as the next lower priority, according to the application priority from high to low.
[0127] Step 504: Update the second-priority application to the application to be evicted, and determine the node of the application to be evicted as the target node.
[0128] In practice, the server identifies applications with the second-highest priority as those to be evicted. Then, the server identifies the nodes containing these evicted applications as the target nodes.
[0129] In this embodiment, if the node of the application to be expelled meets the preset expulsion conditions, the application with the next lower priority is updated to the application to be expelled, and the node of the application to be expelled is determined as the target node, so as to facilitate the subsequent expulsion of the target node.
[0130] In one embodiment, such as Figure 6 As shown, the specific processing steps in step 108 for evictring the target node in the application to be evictred according to the preset evictment mode include:
[0131] Step 602: If the eviction mode is set to automatic mode, evict the target node and construct an event for evictping the target node.
[0132] In implementation, with the default eviction mode set to automatic (auto), the server directly evicts the target node. Simultaneously, the server generates an event to evict the target node. Then, the server sends this event back to the target user.
[0133] Optionally, the target user can be either an operations and maintenance personnel or a developer; this application embodiment does not limit the target user.
[0134] Step 604: If the eviction mode is manual, construct an event for eviction of the target node and report the event for eviction of the target node.
[0135] In implementation, with the default eviction mode set to manual, the server constructs an event to evict the target node. The server then sends this event back to the target user.
[0136] Step 606: In response to the determination triggering operation for the event of evictping the target node, evict the target node.
[0137] In practice, the server responds to the event of evictment of the target node by triggering a definite action and evicts the target node.
[0138] In an optional embodiment, the server is pre-configured with a mixed-distribution control module. When the server detects that a target application on the server does not meet preset operating conditions, it initiates an eviction request to the MixedNode, i.e., writes data to a field in the MixedNode. The mixed-distribution control module detects an update in the corresponding field of the MixedNode and performs a response operation based on the request type. The request type obtained by the mixed-distribution control module is an eviction request.
[0139] The mixed deployment control module obtains all Pods (nodes) on the server that have a mixed deployment priority. Then, the mixed deployment control module evicts the target nodes according to a preset eviction algorithm, specifically:
[0140] (1) The mixed-distribution control module finds the Pod with the lowest priority and evicts it according to the node eviction policy.
[0141] (2) When there are multiple Pods with the same priority, the mixed deployment control module will evict the Pod of the application with the most corresponding Pods.
[0142] (3) If the application corresponding to the pod to be evicted has only one pod, the mixed deployment control module skips the pod and finds a pod with the next lower priority to evict.
[0143] (4) If the current Pod occupies no more than 5% of the resources, the mixed deployment control module skips the Pod and finds a Pod with the next lower priority to evict.
[0144] (5) If the current eviction policy is auto, the mixed control module directly evictions the Pod and generates a corresponding Event.
[0145] (6) If the current eviction policy is manual, the mixed deployment control module will not eviction the pod, but will only generate the corresponding event and wait for the target personnel to confirm.
[0146] Once all applications on the server meet the preset operating conditions, the mixed deployment control module stops the eviction operation and modifies the relevant fields of MixedNode and Node (worker node in Kubernetes).
[0147] In this embodiment, if the monitoring result indicates that a target application on the server does not meet the preset operating conditions, the target node to be evicted is determined based on the application's priority and a preset eviction algorithm. This eviction of the target node eliminates the mutual interference between offline operations and improves service stability.
[0148] In one embodiment, before obtaining the current instruction average periodicity (CPI) data for each application on the server, it is necessary to determine the recommended mixed-use resources for the server. For example... Figure 7 As shown, before step 102 is executed, the specific processing steps of this server management method also include:
[0149] Step 702: Within the current detection period, for each application on the server, obtain the historical processor data and historical memory data of the application within the historical time window to obtain the second historical data set corresponding to the application.
[0150] The historical time window is a preset time period prior to the start of the current detection cycle.
[0151] In implementation, within the current detection period, the server acquires the historical processor data and historical memory data for each application within the historical time window. Then, the server normalizes the historical processor data and historical memory data for each application. Based on the normalized historical processor data and historical memory data, the server constructs a second historical data set corresponding to that application.
[0152] In one optional embodiment, the preset time period is 7 days. For each application on the server, the server obtains the CPU and memory usage data for the most recent seven days. Then, the server normalizes the CPU and memory usage data and constructs a second historical data set based on the normalized CPU and memory usage data.
[0153] In an optional embodiment, the server obtains the total CPU usage, total memory usage, total disk I / O (input / output) usage, and total network I / O usage for each application on the server over the past seven days. Then, the server normalizes these total CPU usage, total memory usage, total disk I / O usage, and total network I / O usage, respectively, to obtain normalized total CPU usage, total memory usage, total disk I / O usage, and total network I / O usage. These normalized total CPU usage, total memory usage, total disk I / O usage, and total network I / O usage are used to calculate the density coefficient for each dimension of the application. The density coefficient measures the resource demand of the application in that dimension.
[0154] Step 704: Based on the preset prediction model, perform prediction processing on the second historical data set to obtain the application's resource usage prediction sequence.
[0155] The resource usage prediction sequence includes a memory usage prediction subsequence and a CPU usage prediction subsequence.
[0156] The prediction model is the XGBoost algorithm (a supervised machine learning method for classification and regression), used for training with AutoML (an artificial system capable of creating sub-AI). XGBoost stands for Extreme Gradient Boosting. This algorithm is based on decision trees and improves upon other methods such as random forests and gradient boosting. Through the use of various optimization methods, it can handle complex, large datasets well.
[0157] In implementation, the server is pre-configured with the XGBoost algorithm. The server inputs the second historical data set corresponding to the application into the XGBoost algorithm, and the XGBoost algorithm performs prediction processing on the second historical data set to obtain the application's resource usage prediction sequence.
[0158] In an optional embodiment, the server is pre-configured with the XGBoost algorithm. The server acquires CPU and memory usage data for each application for the seven days preceding the current detection period, according to a preset update cycle, to obtain a second historical data set for each application. Then, the server inputs the data into the XGBoost algorithm, along with the resource usage prediction sequence for each application, and updates the XGBoost algorithm accordingly.
[0159] Optionally, the update cycle can be set to, but is not limited to, 7 days, depending on management needs. This application embodiment does not limit the update cycle.
[0160] Step 706: Determine the recommended mixed-use resources provided by the server based on the second historical data set and resource usage prediction sequence of each application.
[0161] There are two ways to trigger the computing server: the server enables the mixed deployment switch and the server reaches the mixed deployment resource computing cycle. Recommended mixed deployment resources include recommended mixed deployment CPU, recommended mixed deployment memory, and the number of service Pods that can be mixed.
[0162] In practice, when the server triggers the computing server's recommended mixed resource allocation, it calculates the second historical data set and resource usage prediction sequence of each application according to the preset recommended mixed resource allocation algorithm to obtain the recommended mixed resource allocation provided by the server.
[0163] Specifically, for each application in each application, the server calculates the predicted CPU usage of the application according to the preset formula for predicted CPU usage. The formula for predicted CPU usage of the application is shown in formula (2) below:
[0164]
[0165] In formula (2), the application's predicted CPU usage is the number of predicted CPU usages for the application within the application's predicted CPU usage subsequence. The application Pod count is the total number of nodes for the application, and the application Pod count on the server is the number of nodes for the application on the server.
[0166] Then, the server calculates the host predicted CPU utilization according to the preset host predicted CPU utilization formula. The host predicted CPU utilization formula is shown in formula (3) below:
[0167]
[0168] In formula (3), N is the predicted CPU usage of the application, and the host CPU capacity is the CPU capacity of the server.
[0169] After obtaining the predicted CPU utilization of the host, the server determines each second application with a mixed-use priority according to the preset application priority. Each second application is a mixed-use application.
[0170] The server determines the predicted CPU usage for mixed-deployment applications according to a preset formula for predicting CPU usage for mixed-deployment applications. The formula for predicting CPU usage for mixed-deployment applications is shown in formula (4) below:
[0171]
[0172] In formula (4), the predicted CPU usage of the mixed application is the predicted CPU usage of any second application, the number of Pods of the mixed application is the number of mixed nodes of the second application, and the number of Pods of the corresponding mixed application on the server is the number of nodes of the mixed application on the server.
[0173] After obtaining the predicted CPU usage for mixed-service applications, the server determines the predicted CPU utilization for mixed-service applications according to the preset formula for predicted CPU utilization. The predicted CPU utilization for mixed-service applications is shown in the following formula (5):
[0174]
[0175] Where N represents the predicted CPU usage for each second application.
[0176] Then, the server determines the recommended mixed-distribution CPUs (cmos.mixed~cpu) according to the preset recommended mixed-distribution CPU formula. The recommended mixed-distribution CPU formula is shown in formula (6) below:
[0177] Recommended mixed-use CPU =
[0178] Current load factor * (host CPU capacity * (host target CPU utilization - ...)
[0179] (Host CPU utilization - Mixed service CPU utilization) + (1 - Current load factor)
[0180] (Host CPU capacity * (Host target CPU utilization - (Host predicted CPU utilization - ...))
[0181] Mixed-user business prediction CPU utilization))))(6
[0182] In formula (6), the current load factor is 0.5 by default. If the prediction effect is good, the current load factor can be reduced, and vice versa.
[0183] Then, the server uses a preset formula to calculate the application's predicted memory usage. The formula for predicting application memory usage is shown in formula (7) below:
[0184]
[0185] In this context, the predicted CPU usage for an application is the predicted memory usage of that application within the predicted memory usage subsequence. The number of application Pods is the total number of nodes for that application, and the number of application Pods on a server is the number of nodes for that application on the server.
[0186] Then, the server calculates the host predicted memory utilization according to the preset host predicted memory utilization formula. The host predicted memory utilization formula is shown in formula (8) below:
[0187]
[0188] In formula (8), N is the predicted memory usage of the application, and the host memory capacity is the memory capacity of the server.
[0189] The server calculates the predicted memory usage for each of the second applications according to the predicted memory usage formula for mixed applications. The predicted memory usage formula is shown in formula (9) below:
[0190]
[0191] In formula (9), the predicted memory usage of the mixed application is the predicted memory usage of any second application, the predicted memory usage of the mixed application is the predicted memory usage of the second application, the number of Pods of the mixed application is the number of mixed nodes of the second application, and the number of Pods of the corresponding mixed application on the server is the number of nodes of the mixed application on the server.
[0192] After obtaining the predicted memory usage of mixed-service applications, the server determines the predicted memory utilization rate of mixed-service applications according to the preset formula for predicted memory utilization rate of mixed-service applications. The predicted memory utilization rate of mixed-service applications is shown in the following formula (10):
[0193]
[0194] Where N represents the predicted memory usage of each second application.
[0195] Then, the server determines the recommended mixed memory (cmos.mixed~memory) according to the preset recommended mixed memory formula. The recommended mixed CPU formula is shown in formula (11) below:
[0196] Recommended mixed memory =
[0197] Current load factor * (host memory capacity * (host target memory utilization - ...)
[0198] (Host memory utilization - Mixed service memory utilization) + (1 - Current load factor) *
[0199] (Host memory capacity * (Host target memory utilization - (Host predicted memory utilization - ...))
[0200] Mixed-deployment business forecast memory utilization))))(11
[0201] In formula (11), the current load factor has a default value of 0.5. If the prediction effect is good, the current load factor can be reduced, and conversely, the current load factor can be increased.
[0202] Then, the server determines the recommended number of mixed Pods (cmos.mixed~podcount) based on the preset formula for the recommended number of mixed Pods. The formula for the recommended number of mixed Pods is shown in formula (12) below:
[0203] Number of business Pods that can be mixed = 110 - maximum number of Pods - reserved number (12)
[0204] In formula (12), the maximum number of Pods is the maximum number of Pods on the node in the past period, and the reserved number is the number of Pods reserved for the node, with a default value of 10.
[0205] Optionally, the mixed-resource calculation cycle can be set to 3 hours, but is not limited to this embodiment. This application does not limit the mixed-resource calculation cycle.
[0206] In an optional embodiment, the server abstracts the idle resources of nodes, adding mixed-CPU (recommended mixed-distribution CPU) and mixed-memory (recommended mixed-distribution memory) resources, i.e., mixed-distribution recommended resources. For example... Figure 8 As shown, the node now contains additional mixed-distribution resources of two types. After the server enables the mixed-distribution switch on the Node and calculates the mixed-distribution resources, it modifies the fields of the MixedNode.
[0207] In one optional embodiment, in a real Kubernetes production environment, the amount of resources requested by an application and the amount of resources actually used often do not match, resulting in a situation where the actual load on a node is low, but other applications cannot be scheduled. To solve this problem, the server adds mixed-deployment resources on top of the original Kubernetes resources for mixed-deployment applications to use, realizing secondary reuse of resources and improving the utilization rate of node resources. For example... Figure 9 As shown, three types of resources are abstracted on the mixed-deployment nodes: hc / mixed-cpu (mixed-deployment CPU), hc / mixed-memory (mixed-deployment memory), and hc / mixed-podcount (number of mixed-deployment nodes).
[0208] exist Figure 9 In the diagram, the left side represents the resource quantity of a server without extended resources (original resource quantity), and the right side represents the resource quantity of a server with extended resources. We abstracted the original CPU, memory, and podcount (number of nodes, actually unused) resources, introducing three extended resources: mixed-cpu, mixed-memory, and mixed-podcount. For low-priority applications, in the admission control module, the request for original CPU resources is changed to 0, and instead, the request for mixed-cpu resources is made. Other requests for original resources also request extended resources, thus reusing the resources that high-priority applications have requested but not used.
[0209] In an optional embodiment, Figure 10 A flowchart for the calculation of recommended mixed-distribution resources. (e.g.) Figure 10 As shown, the server collects a second historical data set and a resource usage prediction sequence. Then, the server performs mixed-distribution resource calculations to obtain recommended mixed-distribution resources. Next, the server updates the recommended mixed-distribution resources and monitors the applications running on the server based on these resources.
[0210] Step 708: Based on the preset application priority, determine the level of recommended mixed resources corresponding to each application priority in the recommended mixed resources.
[0211] In implementation, the server determines the level of recommended mixed resources corresponding to each application priority in the recommended mixed resources based on the preset application priorities.
[0212] In this embodiment, by setting up hybrid resources on the original resources, hybrid applications can use hybrid resources, thereby achieving secondary reuse of resources and improving the utilization rate of node resources.
[0213] In one embodiment, when faced with the need to deploy an application, the decision to deploy the application is made based on a tiered recommendation for mixed resource allocation. For example... Figure 11 As shown, after step 708 is executed, the specific processing steps of this server management method also include:
[0214] Step 1102: In response to the request to deploy the first application on the server, determine the first application priority of the first application.
[0215] In practice, the server responds to a request to deploy the first application on the server and determines the application priority of the first application.
[0216] Step 1104: Based on the priority of the first application, determine the first-level recommended mixed resources corresponding to the first application from the recommended mixed resources of each level.
[0217] In practice, the server determines the first-level recommended mixed resources corresponding to the first application priority from the recommended mixed resources of each level, based on the first application priority.
[0218] Step 1106: Obtain the first-level mixed resources currently occupied by the first application priority, and determine the remaining recommended mixed resources based on the first-level recommended mixed resources and the first-level mixed resources currently occupied by the first application priority.
[0219] In implementation, the server obtains the currently occupied first-level mixed resources of the first application priority. Then, the server subtracts the first-level recommended mixed resources from the currently occupied first-level mixed resources of the first application priority to obtain the remaining recommended mixed resources.
[0220] Step 1108: Based on the remaining recommended mixed resources, determine whether to deploy the first application.
[0221] During implementation, the server determines whether the remaining recommended mixed deployment resources are greater than the predicted resource usage of the first application. If the remaining recommended mixed deployment resources are greater than the predicted resource usage of the first application, the server decides to deploy the first application. If the remaining recommended mixed deployment resources are not greater than the predicted resource usage of the first application, the server decides not to deploy the first application.
[0222] In an optional embodiment, when the first application needs to be deployed, the api-server (a core component in Kubernetes responsible for communication between various functional modules of the cluster) forwards the request to MutatingWebhook (an application programming interface in Kubernetes) for processing. During processing, some fields required for hybrid deployment are added, such as the priority of the hybrid application, resource request specifications, scheduler information, etc. Figure 12 As shown. After the deployment of the first application node is completed, the server modifies some fields of the Pod (node) to make it conform to the standard of mixed deployment Pods, so that it can run smoothly on mixed deployment nodes.
[0223] In an optional embodiment, when scheduling a new application to the node, the server obtains the real-time load of all applications on the server, as well as the predicted future load from the application profiles on the server, to ensure that scheduling the new application will not cause node overload or affect high-priority applications. Figure 13 As shown, the Portrait object contains profile data for the application, recording data such as the application's CPI, cpuIntensity (CPU intensity), memIntensity (memory intensity), netIntensity (network intensity), and predicted values cpuPredict (predicted CPU intensity) and memPredict (predicted memory intensity).
[0224] In this embodiment, in response to the request to deploy the first application, the system determines whether to deploy the application based on the recommended mixed resource allocation based on the level, ensuring that the scheduling of the first application will not cause node overload or affect high-priority applications.
[0225] In one embodiment, the server management method is applied to Figure 14The server management system shown contains a Kubernetes cluster, an application profiling module, a mixed deployment control module, an admission controller, an extended scheduler, and a mixed deployment collector. The application profiling module primarily implements load forecasting, predicting resource usage for the following day based on resource usage data from the past week. This module periodically analyzes and profiles applications based on historical data, utilizing data analysis and machine learning techniques to provide data support for subsequent mixed deployment scheduling. The mixed deployment control module manages mixed deployment nodes, including calculating mixed deployment resources, monitoring node water levels, and evicting applications. The admission controller handles changes to mixed deployment services and selects the mixed deployment scheduler. The extended scheduler implements extended scheduling strategies based on load forecast results and other factors. The mixed deployment collector collects underlying data such as the actual load of nodes, node mixed deployment resources, and CPI.
[0226] It should be understood that although the steps in the flowcharts of the embodiments described above are shown sequentially according to the arrows, these steps are not necessarily executed in the order indicated by the arrows. Unless explicitly stated herein, there is no strict order restriction on the execution of these steps, and they can be executed in other orders. Moreover, at least some steps in the flowcharts of the embodiments described above may include multiple steps or multiple stages. These steps or stages are not necessarily completed at the same time, but can be executed at different times. The execution order of these steps or stages is not necessarily sequential, but can be performed alternately or in turn with other steps or at least some of the steps or stages of other steps.
[0227] Based on the same inventive concept, this application also provides a server management device for implementing the server management method described above. The solution provided by this device is similar to the implementation described in the above method; therefore, the specific limitations in one or more server management device embodiments provided below can be found in the limitations of the server management method described above, and will not be repeated here.
[0228] In one embodiment, such as Figure 15 As shown, a server management device 1500 is provided, including: an acquisition module 1501, a first determination module 1502, a second determination module 1503, and an expulsion module 1504, wherein:
[0229] The acquisition module 1501 is used to acquire the current average periodic data CPI of each application in the server and the instruction threshold corresponding to the current CPI within the current detection period.
[0230] The first determining module 1502 is used to determine the monitoring results of each application based on each current CPI and the instruction threshold corresponding to each current CPI.
[0231] The second determining module 1503 is used to determine the target node in the application to be expelled from each application based on the application priority of each application and the preset expulsion algorithm when the monitoring result shows that there is a target application in the server that does not meet the preset operating conditions.
[0232] The eviction module 1504 is used to evict target nodes in applications to be eviction according to a preset eviction mode until each application in the server meets the preset operating conditions.
[0233] In one exemplary embodiment, the acquisition module 1501 includes:
[0234] The first acquisition submodule is used to acquire the current instruction average periodicity (CPI) data of each application in the server within the current detection period.
[0235] The second acquisition submodule is used to acquire the CPI of each application in the server within the historical time window, and obtain the first historical data set corresponding to each application; the historical time window is a preset time period before the start point of the current detection cycle.
[0236] The first processing submodule is used to process each first historical data set according to a preset distribution algorithm to obtain the instruction threshold corresponding to the current CPI of each application.
[0237] In one exemplary embodiment, the first determining module 1502 includes:
[0238] The first judgment submodule is used to determine whether the current CPI of each application exceeds the instruction threshold corresponding to the current CPI twice consecutively.
[0239] The first determination submodule is used to determine the application as the target application if the current CPI of the application exceeds the instruction threshold corresponding to the current CPI twice consecutively, and to determine the monitoring result as the target application in the server not meeting the preset running conditions.
[0240] The second determining submodule is used to determine that the application meets the preset operating conditions if the current CPI of the application does not exceed the instruction threshold corresponding to the current CPI twice consecutively.
[0241] In one exemplary embodiment, the second determining module 1503 includes:
[0242] The third determination submodule is used to determine the application with the lowest application priority among all applications on the server, based on the preset application priority from high to low, when the monitoring result indicates that there is a target application on the server that does not meet the preset operating conditions, and thus obtain the application to be expelled.
[0243] The fourth determination submodule is used to determine the node of the application to be expelled as the target node if the node of the application to be expelled meets the preset expulsion conditions.
[0244] In one exemplary embodiment, the server management device 1500 further includes:
[0245] The fifth determination submodule is used to determine the application priority above the application priority of the application to be expelled as the next priority based on the order of application priority from high to low when the node of the application to be expelled does not meet the preset expulsion conditions.
[0246] The sixth determination submodule is used to update the second-priority application to the application to be expelled, and to determine the node of the application to be expelled as the target node.
[0247] In one exemplary embodiment, the expulsion module 1504 includes:
[0248] The first eviction submodule is used to evict the target node and construct the event for evict the target node when the eviction mode is automatic.
[0249] The first construction submodule is used to construct the event for evict the target node and to report the event for evict the target node when the eviction mode is manual.
[0250] The second expulsion submodule is used to expel the target node in response to a determined triggering operation for an event targeting the target node.
[0251] In one exemplary embodiment, the server management device 1500 further includes:
[0252] The third acquisition submodule is used to acquire historical processor data and historical memory data of each application on the server within the historical time window during the current detection period, and obtain the second historical data set corresponding to the application; the historical time window is a preset time period before the start point of the current detection period.
[0253] The second processing submodule is used to perform predictive processing on the second historical data set based on a preset prediction model to obtain the application's resource usage prediction sequence.
[0254] The seventh determination submodule is used to determine the recommended mixed-use resources provided by the server based on the second historical data set and resource usage prediction sequence of each application.
[0255] The eighth determination submodule is used to determine the level of recommended mixed resources corresponding to each application priority in the recommended mixed resources based on the preset application priority.
[0256] In one exemplary embodiment, after the eighth determining submodule is executed, the server management device 1500 further includes:
[0257] The ninth determination submodule is used to determine the first application priority of the first application in response to a request to deploy the first application on the server.
[0258] The tenth determination submodule is used to determine the first-level recommended mixed resources corresponding to the first application from the recommended mixed resources of each level according to the priority of the first application.
[0259] The eleventh determination submodule is used to obtain the first-level mixed resources currently occupied by the first application priority, and determine the remaining recommended mixed resources based on the first-level recommended mixed resources and the first-level mixed resources currently occupied by the first application priority.
[0260] The second judgment submodule is used to determine whether to deploy the first application based on the remaining recommended mixed deployment resources.
[0261] Each module in the aforementioned server management device can be implemented entirely or partially through software, hardware, or a combination thereof. These modules can be embedded in or independent of the processor in the computer device in hardware form, or stored in the memory of the computer device in software form, so that the processor can call and execute the operations corresponding to each module.
[0262] In one embodiment, a computer device is provided, which may be a server, and its internal structure diagram may be as follows: Figure 16 As shown, the computer device includes a processor, memory, and a network interface connected via a system bus. The processor provides computing and control capabilities. The memory includes non-volatile storage media and internal memory. The non-volatile storage media stores the operating system, computer programs, and a database. The internal memory provides an environment for the operation of the operating system and computer programs stored in the non-volatile storage media. The database stores server data. The network interface communicates with external terminals via a network connection. When the computer program is executed by the processor, it implements a server management method.
[0263] Those skilled in the art will understand that Figure 16 The structure shown is merely a block diagram of a portion of the structure related to the present application and does not constitute a limitation on the computer device to which the present application is applied. Specific computer devices may include more or fewer components than those shown in the figure, or combine certain components, or have different component arrangements.
[0264] In one embodiment, a computer device is also provided, including a memory and a processor, wherein the memory stores a computer program, and the processor executes the computer program to implement the steps in the above method embodiments.
[0265] In one embodiment, a computer-readable storage medium is provided having a computer program stored thereon that, when executed by a processor, implements the steps in the above method embodiments.
[0266] In one embodiment, a computer program product is provided, including a computer program that, when executed by a processor, implements the steps in the above method embodiments.
[0267] Those skilled in the art will understand that all or part of the processes in the methods of the above embodiments can be implemented by a computer program instructing related hardware. The computer program can be stored in a non-volatile computer-readable storage medium, and when executed, it can include the processes of the embodiments of the above methods. Any references to memory, databases, or other media used in the embodiments provided in this application can include at least one of non-volatile and volatile memory. Non-volatile memory can include read-only memory (ROM), magnetic tape, floppy disk, flash memory, optical memory, high-density embedded non-volatile memory, resistive random access memory (ReRAM), magnetic random access memory (MRAM), ferroelectric random access memory (FRAM), phase change memory (PCM), graphene memory, etc. Volatile memory can include random access memory (RAM) or external cache memory, etc. By way of illustration and not limitation, RAM can take many forms, such as Static Random Access Memory (SRAM) or Dynamic Random Access Memory (DRAM). The databases involved in the embodiments provided in this application may include at least one type of relational database and non-relational database. Non-relational databases may include, but are not limited to, blockchain-based distributed databases. The processors involved in the embodiments provided in this application may be general-purpose processors, central processing units, graphics processing units, digital signal processors, programmable logic devices, quantum computing-based data processing logic devices, etc., and are not limited to these.
[0268] The technical features of the above embodiments can be combined in any way. For the sake of brevity, not all possible combinations of the technical features in the above embodiments are described. However, as long as there is no contradiction in the combination of these technical features, they should be considered to be within the scope of this specification.
[0269] The embodiments described above are merely illustrative of several implementation methods of this application, and while the descriptions are specific and detailed, they should not be construed as limiting the scope of this patent application. It should be noted that those skilled in the art can make various modifications and improvements without departing from the concept of this application, and these all fall within the protection scope of this application. Therefore, the protection scope of this application should be determined by the appended claims.
Claims
1. A server management method, characterized in that, The method includes: Within the current detection period, obtain the current average periodic data CPI of each application in the server and the instruction threshold corresponding to the current CPI; Based on the current CPI and the corresponding instruction threshold for each current CPI, the monitoring results of each application are determined; If the monitoring result indicates that a target application in the server does not meet the preset operating conditions, the target node in the application to be expelled is determined according to the application priority of each application and the preset expulsion algorithm. According to the preset eviction mode, the target node in the application to be eviction is evictioned until each application in the server meets the preset operating conditions; Wherein, when the monitoring result indicates that a target application on the server does not meet the preset operating conditions, determining the target node of the application to be expelled from each application according to the application priority of each application and the preset expulsion algorithm includes: when the monitoring result indicates that a target application on the server does not meet the preset operating conditions, determining the application with the lowest application priority from each application on the server according to the preset application priority from high to low, and obtaining the application to be expelled; when the node of the application to be expelled meets the preset expulsion conditions, determining the node of the application to be expelled as the target node; Wherein, when the monitoring result indicates that a target application on the server does not meet the preset operating conditions, and after determining the application with the lowest application priority among the applications on the server according to the preset application priority from high to low, and obtaining the application to be expelled, the method further includes: when the node of the application to be expelled does not meet the preset expulsion conditions, based on the application priority from high to low, determining the application priority above the application priority of the application to be expelled as the secondary priority; updating the application with the secondary priority as the application to be expelled, and determining the node of the application to be expelled as the target node.
2. The method according to claim 1, characterized in that, The step of obtaining the current average periodicity (CPI) of each application in the server and the instruction threshold corresponding to the current CPI within the current detection period includes: Within the current detection period, obtain the current instruction average periodicity (CPI) data for each application on the server; The CPI of each application in the server within a historical time window is obtained to obtain a first historical data set corresponding to each application; the historical time window is a preset time period before the start point of the current detection cycle. According to the preset distribution algorithm, each of the first historical data sets is processed to obtain the instruction threshold corresponding to the current CPI of each application.
3. The method according to claim 1, characterized in that, The determination of the monitoring results for each application based on the current CPI and the corresponding instruction threshold includes: Determine whether the current CPI of each application exceeds the instruction threshold corresponding to the current CPI twice consecutively; If the current CPI of the application exceeds the instruction threshold corresponding to the current CPI twice consecutively, the application is determined to be the target application, and the monitoring result is determined to be that there is a target application in the server that does not meet the preset running conditions; If the current CPI of the application does not exceed the instruction threshold corresponding to the current CPI twice consecutively, the application is determined to meet the preset operating conditions.
4. The method according to claim 1, characterized in that, The expulsion mode includes automatic mode and manual mode. The process of expelling the target node from the application to be expelled according to the preset expulsion mode includes: When the eviction mode is the automatic mode, the target node is evictioned and an event for eviction of the target node is constructed; When the eviction mode is manual mode, an event for eviction of the target node is constructed and the event for eviction of the target node is fed back. In response to a determined triggering operation for the event of evictring the target node, the target node is evictled.
5. The method according to claim 1, characterized in that, Before acquiring the current instruction average periodicity (CPI) data of each application in the server and the instruction threshold corresponding to the current CPI within the current detection period, the method further includes: Within the current detection period, for each application on the server, the historical processor data and historical memory data of the application within the historical time window are obtained to obtain the second historical data set corresponding to the application. The historical time window is a preset time period prior to the start point of the current detection cycle; Based on a preset prediction model, the second historical data set is processed to obtain the resource consumption prediction sequence of the application. Based on the second historical data set and resource usage prediction sequence of each application, the recommended mixed-use resources provided by the server are determined; Based on preset application priorities, a level of recommended mixed resources is determined for each application priority in the recommended mixed resources.
6. The method according to claim 5, characterized in that, After determining the recommended mixed-use resources corresponding to each application priority based on preset application priorities, the method further includes: In response to a request to deploy a first application on the server, a first application priority for the first application is determined; Based on the first application priority, determine the first-level recommended mixed resources corresponding to the first application from each of the recommended mixed resources of the first level; Obtain the first-level mixed resources currently occupied by the first application priority, and determine the remaining recommended mixed resources based on the first-level recommended mixed resources and the first-level mixed resources currently occupied by the first application priority. Based on the remaining recommended mixed resources, determine whether to deploy the first application.
7. A server management device, characterized in that, The device includes: The acquisition module is used to acquire the current average periodic data CPI of each application in the server and the instruction threshold corresponding to the current CPI within the current detection period. The first determining module is used to determine the monitoring results of each application based on each current CPI and the instruction threshold corresponding to each current CPI; The second determining module is used to determine the target node in the application to be expelled from each application based on the application priority of each application and the preset expulsion algorithm when the monitoring result indicates that there is a target application in the server that does not meet the preset operating conditions. The expulsion module is used to expel the target node in the application to be expelled according to a preset expulsion mode until each application in the server meets the preset operating conditions. The second determining module includes: a third determining submodule, used to determine the application with the lowest application priority among the applications on the server according to the preset application priority from high to low when the monitoring result indicates that there is a target application on the server that does not meet the preset operating conditions, and obtain the application to be expelled; and a fourth determining submodule, used to determine the node of the application to be expelled as the target node when the node of the application to be expelled meets the preset expulsion conditions. The server management device further includes: a fifth determining submodule, used to determine the application priority of the application to be expelled as the next higher priority based on the application priority from high to low when the node of the application to be expelled does not meet the preset expulsion conditions; and a sixth determining submodule, used to update the application of the next higher priority to the application to be expelled and determine the node of the application to be expelled as the target node.
8. A computer device comprising a memory and a processor, wherein the memory stores a computer program, characterized in that, When the processor executes the computer program, it implements the steps of the method according to any one of claims 1 to 6.
9. A computer-readable storage medium having a computer program stored thereon, characterized in that, When the computer program is executed by a processor, it implements the steps of the method according to any one of claims 1 to 6.