Alarm control method and device of baseboard management controller
By using a first-in-first-out circular queue and outlier removal techniques, the problem of insufficient intelligence in sensor data processing in the BMC false alarm prevention method is solved, achieving more accurate and real-time alarm judgment and reducing the occurrence of false alarms.
Patent Information
- Application Number
- CN202511639662.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2025-11-10
- Publication Date
- 2026-02-13
- Estimated Expiration
- 2045-11-10
AI Technical Summary
Existing BMC false alarm prevention methods are relatively simple and direct in processing sensor data, ignoring outliers such as transient and non-continuous data caused by objective reasons such as hardware initialization and signal interference, resulting in a large number of unnecessary false alarms and poor false alarm prevention effect.
The sensor data is stored in a first-in-first-out circular queue. After deleting outliers, the average value is calculated to generate an alarm signal, ensuring the reliability and accuracy of the alarm judgment.
It improves the accuracy of BMC alarm judgment, reduces false alarms caused by momentary outlier data, and enhances the accuracy and real-time performance of monitoring.
Smart Images

Figure CN121116762B_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present application relates to the technical field of security management, and in particular to an alarm control method and device of a baseboard management controller. BACKGROUND
[0002] A baseboard management controller (BMC) is a special microcontroller embedded on a server motherboard, which can perform out-of-band management on the server and monitor the health status of a series of hardware components in real time. However, the BMC may produce instantaneous false alarms in the monitoring process due to some abnormal data points of sensor data, causing serious waste of operation and maintenance resources. In order to solve this problem, a BMC false alarm prevention processing mechanism has emerged.
[0003] In related technologies, the BMC false alarm prevention processing mechanism mainly includes two methods: a delay judgment method, when the BMC detects that a sensor value exceeds a threshold value, an alarm is not immediately triggered, but a timer is started for delay, and the BMC continuously reads the sensor during the delay period, if the value still continuously exceeds the threshold value after the delay ends, it is determined as a valid alarm and triggered, if the value falls within the normal range during the delay period, the threshold value exceeding event is ignored, the core logic of this method is to alarm only for continuous abnormality; and a multiple sampling average method, the BMC continuously reads a sensor N times (for example, 3 times) in a very short time of one reading operation, then takes an arithmetic average of the N readings, and compares the average value with the threshold value, as shown in formula (1). Figure 1
[0004] However, in related technologies, the delay judgment method may cause alarm delay, for a real and rapidly developing event, the best opportunity for early intervention is missed, which violates the original intention of real-time out-of-band management; the multiple sampling average method is only suitable for resisting small random noise, but has poor inhibition effect on large instantaneous values, for example, an average value of (85+35+35) / 3≈51.67℃ is obtained by taking an average of an instantaneous value of 85℃ and two normal values of 35℃, which may still be higher than the threshold value, and still leads to false alarm, and frequent continuous reading also increases the bus load; and both methods for processing sensor data are relatively simple and direct, ignoring the data sensitivity of outliers caused by objective reasons such as hardware initialization and signal interference, lack of intelligent judgment on data credibility and stability, and thus still may trigger a large number of unnecessary false alarms, the false alarm prevention effect is poor, and needs to be solved urgently. SUMMARY
[0005] The application provides an alarm control method and device of a baseboard management controller, to at least solve the problems in the prior art that the processing of sensor data by the false alarm prevention alarm processing method of the BMC is relatively simple and direct, the data sensitivity of outliers caused by objective reasons such as hardware initialization and signal interference is ignored, intelligent judgment on data reliability and stability is lacking, and thus a large number of unnecessary false alarms may still be triggered, and the false alarm prevention effect is poor.
[0006] The application provides an alarm control method of a baseboard management controller, comprising the following steps: obtaining an initial circular queue corresponding to at least one sensor satisfying a target monitoring condition; reading current sensing data of the at least one sensor, storing the current sensing data at the tail of the initial circular queue corresponding to the at least one sensor, deleting data at the head of the initial circular queue corresponding to the at least one sensor, and obtaining a current circular queue corresponding to the at least one sensor; in the case that the number of valid values in the current circular queue meets a target number, sorting the valid values according to a target rule to obtain an ordered sequence of the valid values, identifying outliers in the ordered sequence, deleting the outliers in the ordered sequence, calculating the mean value of the ordered sequence after deletion, generating an alarm signal of the at least one sensor according to the mean value, and controlling the baseboard management controller to respond to the alarm signal.
[0007] The application also provides an alarm control device of a baseboard management controller, comprising: a first obtaining module configured to obtain an initial circular queue corresponding to at least one sensor satisfying a target monitoring condition; a first updating module configured to read current sensing data of the at least one sensor, store the current sensing data at the tail of the initial circular queue corresponding to the at least one sensor, delete data at the head of the initial circular queue corresponding to the at least one sensor, and obtain a current circular queue corresponding to the at least one sensor; and an alarm module configured to, in the case that the number of valid values in the current circular queue meets a target number, sort the valid values according to a target rule to obtain an ordered sequence of the valid values, identify outliers in the ordered sequence, delete the outliers in the ordered sequence, calculate the mean value of the ordered sequence after deletion, generate an alarm signal of the at least one sensor according to the mean value, and control the baseboard management controller to respond to the alarm signal.
[0008] The application also provides an electronic device, comprising: a memory configured to store a computer program; and a processor configured to execute the computer program to implement the steps of the alarm control method of the baseboard management controller.
[0009] The application further provides a nonvolatile computer readable storage medium, and the computer readable storage medium stores a computer program.
[0010] The application further provides a computer program product, which comprises a computer program.
[0011] By the application, the current sensing data of at least one sensor can be stored in an initial circular queue, the oldest head data in the initial circular queue is deleted, a current circular queue is obtained, and an outlier value in the valid values in the current circular queue is deleted, and then an alarm signal is generated according to the valid values in the ordered sequence after the deletion of the outlier value. The technical problem that the processing of the sensor data by the BMC false alarm prevention processing method in the related art is relatively simple and direct, the data sensitivity of the outlier points caused by objective reasons such as hardware initialization and signal interference is ignored, the intelligent judgment on the data reliability and stability is lack, and a large number of unnecessary false alarms can still be triggered, and the false alarm prevention effect is poor can be solved. The latest sensor data is saved in the current circular queue relied on by the BMC for alarm judgment through the advanced and outgoing circular queue, the reliability of the judgment basis is improved, the accuracy of the BMC alarm judgment is fundamentally improved, and the technical effect that the BMC false alarm caused by the instantaneous outlier data is reduced to the maximum extent through the processing that the outlier value is deleted and the numerical mean of the valid values is calculated. BRIEF DESCRIPTION OF DRAWINGS
[0012] In order to more clearly illustrate the embodiments of the application, the drawings needed in the embodiments will be briefly introduced. Obviously, the drawings in the following description are only some embodiments of the application, and other drawings can be obtained by those skilled in the art without creative labor.
[0013] Figure 1 Flow chart of the multiple sampling and mean value method of one embodiment of the application;
[0014] Figure 2 Flow chart of the alarm control method of the substrate management controller provided by the embodiment of the application;
[0015] Figure 3 Schematic diagram of the BMC threshold sensor monitoring architecture comprising a data preprocessing engine of one embodiment of the application;
[0016] Figure 4A BMC false alarm prevention alarm workflow diagram based on a data preprocessing engine for an embodiment of the present application;
[0017] Figure 5 A structural schematic diagram of an alarm control device of a substrate management controller according to an embodiment of the present application.
[0018] Reference signs:
[0019] Wherein, 10 - alarm control device of substrate management controller; 100 - first acquisition module, 200 - first update module, 300 - alarm module. DETAILED DESCRIPTION
[0020] The technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the drawings in the embodiments of the present application. Obviously, the described embodiments are only part of the embodiments of the present application, rather than all the embodiments of the present application. Based on the embodiments in the present application, all other embodiments obtained by those skilled in the art without creative work fall within the protection scope of the present application.
[0021] It should be noted that, in the description of the present application, the terms "comprise", "contain" or any other variants thereof are intended to cover non-exclusive inclusion, so that the process, method, article or device comprising a series of elements not only includes those elements, but also includes other elements not explicitly listed or inherent to such process, method, article or device. The terms "first", "second" and the like in the present application are used to distinguish similar objects, and are not used to describe a specific order or sequence.
[0022] In order to enable those skilled in the art to better understand the present application, the present application will be further described in detail below with reference to the drawings and specific embodiments.
[0023] The embodiments of the present application also provide an alarm control method of a substrate management controller. The method is described in detail in combination with the execution process of the alarm control method of the substrate management controller.
[0024] Specifically, Figure 2 A flowchart of an alarm control method of a substrate management controller according to an embodiment of the present application.
[0025] As Figure 2 shown, the alarm control method of the substrate management controller comprises the following steps:
[0026] In step S201, an initial cyclic queue corresponding to at least one sensor satisfying a target monitoring condition is acquired.
[0027] It can be understood that the baseboard management controller (BMC) is a special microcontroller embedded on the server motherboard, and is also the core hardware for implementing the intelligent platform management interface (IPMI) architecture. The BMC can perform out-of-band management on the connected server, and monitor the health status of a series of hardware components in the server in real time, including but not limited to the temperature / voltage of CPU (Central Processing Unit), GPU (Graphics Processing Unit) and memory, the output voltage of various voltage sources, fan speed, hard disk state and the running status of power supply unit (PSU) and the like.
[0028] In some embodiments, the application can obtain an initial circular queue corresponding to at least one sensor satisfying a target monitoring condition through the baseboard management controller. The target monitoring condition can be understood here as that at least one sensor and its data acquisition object (various hardware components in the server) can be monitored by the baseboard management controller.
[0029] The at least one sensor can be understood here as at least one threshold sensor that acquires real-time sensing data of the hardware components (CPU, GPU, memory, voltage source, etc.) in the server for the baseboard management controller to monitor the health of the hardware components in the server, for example, CPU temperature sensor, GPU temperature sensor, CPU voltage sensor, GPU voltage sensor, etc.
[0030] The threshold sensor generally has two working modes. One is to judge the comparison result of the acquired sensing data and the threshold by itself, and directly output the comparison result, such as overheating, overload, etc. The other is to only acquire the sensing data and transmit it to the back-end system (such as BMC), and the back-end system compares the sensing data with the threshold to finally output the corresponding result. The working mode of the threshold sensor in the embodiment of the application is the second one, which only acquires the sensing data and transmits the data to the BMC for judgment.
[0031] The initial circular queue can be understood here as an initial array that does not store the sensing data (such as the temperature / voltage of CPU, GPU and memory) acquired by the at least one sensor. There is no valid sensing data acquired by the at least one sensor in the initial circular queue.
[0032] It should be noted that the data read by the BMC in the embodiments of the present application is although the sensing data collected by the sensor, but the sensing data itself reflects the actual state of the data collection object of the sensor, and thus the monitoring effect finally achieved is to monitor the data collection object of the sensor.
[0033] For example, the BMC can periodically read the sensing data collected by the threshold type sensor from the sensor chips distributed at various places of the motherboard through a bus protocol such as I2C (Inter-Integrated Circuit), SMBus (System Management Bus), PMBus (Power Management Bus), and the like.
[0034] The embodiments of the present application can collect the initial cyclic queue of at least one sensor satisfying a certain monitoring condition, and provide a data basis for analyzing the sensing data collected by the at least one sensor and judging the real situation of the hardware component corresponding to the at least one sensor.
[0035] Optionally, in an embodiment of the present application, before collecting the initial cyclic queue corresponding to at least one sensor satisfying a target monitoring condition, the method further comprises: constructing a first-in-first-out cyclic queue corresponding to the at least one sensor; obtaining a plurality of element values of the first-in-first-out cyclic queue; and replacing the plurality of element values with a preset invalid value to obtain the initial cyclic queue corresponding to the at least one sensor.
[0036] In some embodiments, the queue form of the initial cyclic queue in the present application can be but is not limited to a first-in-first-out cyclic queue. Therefore, before collecting the initial cyclic queue corresponding to at least one sensor satisfying a certain monitoring condition, the present application can first construct a first-in-first-out cyclic queue corresponding to the at least one sensor.
[0037] Each sensor corresponds to a first-in-first-out cyclic queue, and the initial cyclic queue corresponding to each sensor can be obtained after the first-in-first-out cyclic queue is initialized. The initial cyclic queue can be used to store the sensing data collected by each sensor.
[0038] The first-in-first-out cyclic queue in the embodiments of the present application has a certain fixed length, and can only store a fixed number of sensing data of at least one sensor. The nature of first-in-first-out can always store the latest data and discard the oldest data according to the update of the sensing data, so as to ensure that the data in the queue can reflect the latest and most real state of the hardware component corresponding to the at least one sensor at any time and any place, and at the same time, the memory occupation of the baseboard management controller can be reduced as much as possible.
[0039] The specific length of the first-in first-out circular queue (initial circular queue) can be set or adjusted by a person skilled in the art according to actual conditions, and is only exemplarily described in the embodiments of the present application without specific limitation.
[0040] In the embodiments of the present application, after the first-in first-out circular queue corresponding to at least one sensor is constructed, a plurality of element values in the first-in first-out circular queue can be obtained, and the element values are replaced with preset invalid values, so that a first-in first-out circular queue in which all data in the queue is the preset invalid value is obtained. The first-in first-out circular queue in which all queue elements corresponding to each sensor are the preset invalid value is the initial circular queue corresponding to each sensor.
[0041] The preset invalid value can be understood as a preset invalid value here, which is used to represent that the data point in the initial circular queue does not have a valid value, i.e., does not have valid sensor data.
[0042] For example, the present application can allocate a first-in first-out (FIFO) circular queue (for example, DataWindow) with a length of N=10 for each threshold type sensor (such as a CPU temperature sensor) that needs to be filtered, and initialize all elements to a specific invalid value 0xFFFF, indicating that the data point does not have a valid reading (valid sensor data).
[0043] In summary, various hardware components in a server monitored by a BMC can correspond to a plurality of sensors, and each sensor corresponds to various types of sensor data of each hardware component. For example, a CPU temperature sensor / GPU temperature sensor / memory temperature sensor monitors temperature data of a CPU / GPU / memory, and a CPU voltage (current) sensor / GPU voltage (current) sensor / memory voltage (current) sensor monitors voltage (current) type data of a CPU / GPU / memory. The embodiments of the present application can construct a corresponding first-in first-out circular queue for each sensor, and then initialize each first-in first-out circular queue, i.e., replace all element values in each first-in first-out circular queue with a certain invalid value, and use each initialized first-in first-out circular queue as an initial circular queue corresponding to each sensor.
[0044] The embodiments of the present application can construct a corresponding first-in first-out circular queue for each sensor, and initialize the first-in first-out circular queue by replacing all element values in the first-in first-out circular queue with a certain invalid value. The initial circular queue corresponding to each sensor obtained can be used to store sensor data of each sensor and be read by a BMC, so that the validity and invalidity of data in the queue can be effectively determined when it is determined whether the hardware component corresponding to the sensor should be alarmed.
[0045] In step S202, the current sensing data of the at least one sensor is read, the current sensing data is stored in the tail of the initial circular queue corresponding to the at least one sensor, and the head data of the initial circular queue corresponding to the at least one sensor is deleted, to obtain the current circular queue corresponding to the at least one sensor.
[0046] In actual implementation, after obtaining the initial circular queue corresponding to the at least one sensor, the current sensing data collected by the at least one sensor can be read, for example, the current data of various components collected by each sensor can be read by using the BMC, such as the current temperature / current voltage of the CPU, GPU and memory, the current output voltage of various voltage sources, the current rotating speed of the fan, the current state of the hard disk, the current running condition of the power supply unit (PSU), and the like.
[0047] After the current sensing data of each sensor is collected, the current sensing data of each sensor can be stored in the tail of the initial circular queue corresponding to each sensor, and the head data of the initial circular queue corresponding to each sensor is deleted, so as to ensure that the latest current sensing data of the sensor is added to the initial circular queue in time, and the oldest data in the initial circular queue is deleted, to generate the current circular queue of the at least one sensor.
[0048] It should be noted that since the initial circular queue is initially replaced by a certain invalid value at the time of initialization, the oldest data can be a certain invalid value, or can be valid sensing data of the sensor.
[0049] It should be noted that the current sensing data of the at least one sensor refers to the current sensing data updated over time, and the current time is taken as the reference, the current sensing data at the previous second is the current sensing data at the previous second, the current sensing data at the current time is the current sensing data at the current time, and the current sensing data at the next second is the current sensing data at the next second.
[0050] The same is true for the current circular queue, the current circular queue of the at least one sensor refers to the current circular queue updated over time, and the current time is taken as the reference, the current circular queue corresponding to the previous second is the current circular queue at the previous second, the current circular queue corresponding to the current time is the current circular queue at the current time, and the current circular queue corresponding to the next second is the current circular queue at the next second.
[0051] The initial circular queue referred to here is the circular queue before the current sensing data is added to form the current circular queue, therefore, the initial circular queue is also updated over time, and the current time is taken as the reference, the initial circular queue at the previous second can be understood as the circular queue at the previous second of the current circular queue.
[0052] The embodiment of the present application can utilize the characteristic that the initial cyclic queue is a first-in first-out cyclic queue, dynamically maintain the fixed data amount of the monitoring window according to the rule of queuing new data at the tail and dequeuing old data at the head, so that the BMC always obtains the latest valid data of the hardware component, avoids invalid or too old data from interfering with the hardware state judgment, synchronizes the hardware running dynamics in real time, does not need to store a large amount of historical data, greatly reduces the storage and computing resource consumption of the BMC, facilitates the reservation of recent data for subsequent alarm analysis, and improves the accuracy, real-time performance and running efficiency of BMC monitoring as a whole.
[0053] Optionally, in an embodiment of the present application, reading the current sensing data of the at least one sensor comprises: obtaining the working characteristics and priority level of the at least one sensor; determining the sensing data update frequency of the at least one sensor according to the working characteristics of the at least one sensor; and determining the data reading period of the current sensing data according to the priority level and the sensing data update frequency, so as to read the current sensing data according to the data reading period.
[0054] In some embodiments, in order to balance the characteristics that the working characteristics of different sensors are different and the speed of data change is different, when reading the current sensing data of the at least one sensor, the working characteristics of the at least one sensor can be determined first to determine the sensing data update frequency of the at least one sensor, and then the priority level and the sensing data update frequency of the at least one sensor can be determined to determine the data reading period of the current sensing data, so that the current sensing data of each sensor is read according to the data reading period of the current sensing data of each sensor.
[0055] The working characteristics of the sensor can be understood as the working properties of the sensor itself or the working properties of the monitoring object thereof, such as the frequency of collecting data by itself, the response speed of the monitoring object, etc.; and the data reading period refers to the fixed time interval at which the BMC reads the sensing data periodically.
[0056] For example, when monitoring the components in the server, the BMC can first obtain the working characteristics and priority level of different sensors. For example, the working characteristics of the CPU temperature sensor is that the temperature of the monitoring object (CPU) changes fast, and the corresponding priority level is high, so the data collection frequency of the sensor itself is high; the working characteristics of the case environment temperature sensor is that the temperature of the monitoring object (case and environment) changes slowly, and the priority level is low, so the data collection frequency of the case environment temperature sensor itself is low. Correspondingly, the working characteristics of the CPU temperature sensor is that the temperature of the monitoring object changes fast, and the data collection frequency of the sensor itself is high, so the sensing data update frequency is high; the working characteristics of the case environment temperature sensor is that the temperature of the monitoring object changes slowly, and the data collection frequency of the sensor itself is low, so the sensing data update frequency is low.
[0057] Thus, the application can determine the data reading period of the CPU temperature sensor and the chassis environment temperature sensor according to the priority level and the sensing data update frequency of the CPU temperature sensor and the priority level and the sensing data update frequency of the chassis environment temperature sensor respectively, for example, the CPU temperature sensor is set to 1 second / once of data reading period, and the chassis environment temperature sensor is set to 10 seconds / once of data reading period, so as to read the corresponding sensing data respectively according to the two data reading periods.
[0058] The embodiments of the application can allocate different data reading periods to different sensors according to the priority level and the sensing data update frequency of the different sensors, so that the BMC can allocate reading resources as needed, for example, short period is used for monitoring the core hardware and the sensor with fast data change to ensure the real-time performance of data reading, and long period is used for monitoring the non-core environment and the sensor with slow data change to reduce the reading frequency, which can avoid high-frequency reading from occupying too much BMC storage and computing resources while ensuring the monitoring data of the key hardware not to be delayed, thereby improving the efficiency of the overall monitoring and the utilization rate of the BMC resources.
[0059] Optionally, in an embodiment of the application, when the valid values in the current circular queue meet the target number, before sorting the valid values according to the target rule, the method further includes: traversing the plurality of elements in the current circular queue; counting the number of invalid values same as the preset invalid value in the plurality of elements, and comparing the number of invalid values with the preset invalid value number threshold; if the number of invalid values is greater than or equal to the preset invalid value number threshold, generating an invalid alarm signal of the at least one sensor; otherwise, determining that the valid values in the current circular queue meet the target number.
[0060] Based on the related description of other embodiments, it can be understood that the embodiments of the application can replace the element values in the constructed first-in-first-out circular sequence with a certain invalid value, thereby obtaining the initial circular sequence corresponding to the at least one sensor.
[0061] Thus, in some embodiments, after obtaining the current circular queue corresponding to the at least one sensor, in order to improve the alarm judgment efficiency of the BMC, the application can detect the number of invalid values in the current circular queue before detecting the valid values in the current circular queue, so that it can be judged according to the effective degree of the data whether to generate the invalid alarm signal of the at least one sensor.
[0062] Specifically, the embodiment of the present application can traverse the plurality of elements in the current circular queue to count the number of invalid values same as a certain invalid value (i.e., a pre-set invalid value) in the plurality of elements, and then compare the number of invalid values with a pre-set invalid value quantity threshold. The pre-set invalid value quantity threshold can be understood as a certain invalid data quantity upper limit standard pre-set for judging whether the invalid values in the current circular queue are too many or sufficient to affect the BMC alarm judgment.
[0063] If the number of invalid values same as a certain invalid value in the plurality of elements in the current circular queue reaches the invalid value quantity threshold, i.e., the number of invalid values same as a certain invalid value in the plurality of elements in the current circular queue is greater than or equal to the invalid value quantity threshold, it can be determined that at least one sensor has not collected sufficient valid sensor data to support the judgment of whether the data collection object of the at least one sensor is alarmed or not, and at this time the BMC can generate an invalid alarm signal of the at least one sensor to inform the upstream logic of the BMC that reliable values cannot be obtained this time, and the judgment is not triggered temporarily.
[0064] On the contrary, if the number of invalid values same as a certain invalid value in the plurality of elements in the current circular queue does not reach (is less than) the invalid value quantity threshold, it can be determined that at least one sensor has collected sufficient valid sensor data to support the judgment of whether the data collection object of the at least one sensor is alarmed or not, and at this time the BMC can further identify the valid values in the current circular queue to make the judgment of whether the data collection object of the at least one sensor is alarmed or not.
[0065] The embodiment of the present application can first detect the number of invalid values in the current circular queue, and when the number of invalid values reaches a certain invalid value quantity threshold, an invalid alarm signal can be generated to inform the upstream logic that there is currently insufficient valid data to support reliable judgment, so that the BMC confirms the validity of the data before making the hardware alarm judgment, thereby avoiding false triggering or missed triggering of the alarm based on unreliable data; when the number of invalid values does not reach the invalid value quantity threshold, the valid data is further identified to determine whether the hardware is abnormal, which improves the accuracy of the alarm judgment and reduces the subsequent invalid judgment process by screening the validity of the data in advance.
[0066] Optionally, in an embodiment of the present application, the method further comprises: obtaining the queue length of the first-in-first-out circular queue corresponding to the at least one sensor; and determining the invalid value quantity threshold according to the queue length.
[0067] Based on the related description of other embodiments, it can be understood that the present application can determine whether to continue detecting valid values or directly generate an invalid alarm signal according to the comparison result of the number of invalid values in the current circular queue and the invalid value quantity threshold.
[0068] In actual implementation, the application can but not limited to determine the specific invalid value quantity threshold according to the queue length of the corresponding first-in-first-out circular queue of at least one sensor (the queue length of the initial circular queue and the current circular queue is the same as the queue length).
[0069] For example, the application can but not limited to set the invalid value quantity threshold to 40% of the queue length of the first-in-first-out circular queue, that is, when the queue length of the first-in-first-out circular queue is 10 data points, the invalid value quantity threshold can be set to 4. If the number of invalid values in the current circular queue reaches 4, an invalid alarm signal (such as an invalid result "-1" or the like identifier) can be directly returned, informing the upstream logic of the BMC that reliable values cannot be obtained this time, and the judgment is temporarily not triggered.
[0070] It should be noted that the relationship / proportion between the queue length of the specific circular queue (the first-in-first-out circular queue / the initial circular queue / the current circular queue) and the invalid value quantity threshold can be determined or adjusted by a person skilled in the art according to actual conditions, and the application embodiment is only exemplary and not specifically limited.
[0071] It should be noted that since the queue length of the circular queue corresponding to different sensors in the application embodiment can be set by a person skilled in the art according to actual needs, the invalid value quantity threshold corresponding to the queue length of the circular queue corresponding to different sensors can also be different, and therefore each sensor can use different circular queue length and invalid value quantity threshold, and the relationship / proportion between the circular queue length and the invalid value quantity threshold corresponding to the same sensor can also be different.
[0072] For example, the circular queue length of the CPU temperature sensor is 10, and the invalid value quantity threshold can be 4 or 5; the circular queue length of the GPU temperature sensor is 8, and the invalid value quantity threshold can be 3 or 4.
[0073] In actual application, in order to reduce the calculation burden of the BMC, a person skilled in the art can also set all sensors to a unified fixed queue length (such as 10) and a unified fixed invalid value quantity threshold (such as 4) according to actual needs.
[0074] The embodiment of the application can determine the invalid value quantity threshold according to the queue length of the circular queue, so that the setting of the invalid value quantity threshold can be more in line with the actual needs of the current application scenario, and can flexibly adapt to the queue length adjustment needs in different scenarios, avoiding false judgments caused by the invalid value quantity threshold deviating from the actual situation of the queue length, for example, setting too high leading to insufficient valid data but easily entering valid value detection, and setting too low leading to easily invalid alarm signals.
[0075] In step S203, in the case that the valid values in the current circular queue meet the target quantity, the valid values are sorted according to a target rule to obtain an ordered sequence of valid values, an outlier value in the ordered sequence is identified, the outlier value in the ordered sequence is deleted, and a numerical mean of the ordered sequence after deletion is calculated, so as to generate an alarm signal of at least one sensor according to the numerical mean, and control the baseboard management controller to respond to the alarm signal.
[0076] As understood by those skilled in the art, when the sensing data of the threshold type sensor exceeds the set threshold, the BMC will trigger an alarm of the corresponding level, and notify the administrator through logs, simple network management protocol traps, emails or panel indicator lights, thereby ensuring stable operation of the data center and realizing predictive maintenance of the server.
[0077] However, such threshold type sensors face a common and thorny challenge: transient false positives. The causes of such false positives mainly include but are not limited to:
[0078] 1. Unstable power-on initialization: During the initial stage of power-on or restart of the server, the hardware power supply, clock signal and internal state of the chip are all in a process of establishing from zero to stability. During this period, the sensor itself or its power supply and reference voltage may produce slight fluctuations, causing the digital values output by the sensor to have short-term spikes or glitches. These values may be far beyond the stable temperature range of the component after normal operation.
[0079] 2. Communication signal integrity: The physical communication link (such as SMBus) between the BMC and the sensor may be affected by electromagnetic interference, crosstalk or impedance mismatch on the motherboard, causing occasional bit errors during data transmission, thereby reading back a completely wrong value.
[0080] 3. Environmental noise: Large equipment start-stop, electrostatic discharge and other events in the data center environment may also introduce transient noise through coupling.
[0081] From a statistical point of view, these abnormal data are outliers, which are characterized by instantaneous appearance, large amplitude and non-sustainability. For example, a healthy CPU may report an 85°C reading within 1 second after starting, but all subsequent readings are stable at 35°C. If the BMC immediately triggers a UCR alarm for this 85°C reading, it is obviously a false alarm.
[0082] Based on this, the application can eliminate outliers in the sensor collected sensor data (the essence of outliers is outlier data, which will be transmitted in the form of a value during transmission. For ease of explanation, it is referred to as an outlier value here and in the following embodiments) before performing alarm judgment, thereby effectively reducing false alarms of the BMC.
[0083] As a possible implementation, the embodiment of the application can determine that the valid values (the essence of valid values is also valid sensor data, which will be transmitted in the form of a value during transmission. For ease of explanation, it is referred to as a valid value here and in the following embodiments) in the current cycle queue meet the target number, reaching the standard for BMC alarm judgment, when the current cycle queue of at least one sensor is obtained and it is detected that the number of invalid values in the current cycle queue does not exceed the invalid value number threshold. The current cycle queue can be further used to perform final BMC alarm judgment using the valid values in the current cycle queue.
[0084] In the case where the valid values meet the target number, the embodiment of the application can sort the valid values in the current cycle queue according to a target rule to obtain an ordered sequence in which the sorting of the valid values is completed, facilitating the identification and deletion of outliers in the ordered sequence.
[0085] The target number can be understood here as the theoretical number of valid values obtained by subtracting the number of invalid values in the current cycle queue from the queue length of the current cycle queue. For example, the entire queue length of the current cycle queue is 10, and the number of invalid values is 3, so the target number of valid values should be 10-3=7. The target rule here refers to a certain standard or strategy referred to when sorting the valid values in the current cycle queue.
[0086] That is, the embodiment of the application sorts the valid values according to a certain rule to identify and eliminate transient outliers that have a certain untrustworthiness when it is detected that the number of invalid values in the current cycle queue is less than a certain invalid value number threshold and the number of valid values in the current cycle queue reaches a certain number.
[0087] Then, the embodiment of the present application can further aggregate the valid values after removing the instantaneous outlier values, such as calculating the mean value of the ordered sequence after removal, which is the robust average of multiple readings in a recent period of time, and can better reflect the comprehensive value of the real and stable trend of the data collection object of the sensor, suppress the influence of instantaneous fluctuations, and provide the processed and more reliable data to the subsequent threshold comparison logic, thereby fundamentally reducing the probability of false alarms.
[0088] Finally, the embodiment of the present application generates an alarm signal of at least one sensor according to the mean value, and controls the baseboard management controller to respond to the alarm signal to determine whether to alarm or not alarm the data collection object of at least one sensor.
[0089] For example, if the returned mean value is greater than or equal to a certain alarm threshold (the alarm threshold can be set or adjusted by a professional in the technical field according to the actual situation, and the embodiment of the present application is only exemplary and not limited), the BMC generates an alarm signal of "triggering alarm" this time, and notifies the system administrator according to the alarm signal of "triggering alarm" to alarm the data collection object corresponding to at least one sensor; if the returned value is less than a certain alarm threshold, the BMC generates an alarm signal of "not triggering alarm" this time, and does not take any action in response to the alarm signal of "not triggering alarm".
[0090] Additionally, after obtaining the valid values after removing the outlier values, the embodiment of the present application can draw these retained valid values as a sensor data curve, and the processed sensor data curve is more smooth and reliable, which can be used for alarm and can also provide higher quality performance monitoring and trend prediction data source for the upper management system, and provide a solid data foundation for future artificial intelligence-based predictive maintenance.
[0091] The embodiment of the present application can first confirm that the valid values meet the requirements through the current circular queue, then remove the instantaneous outliers by sorting and identifying the valid values, and finally calculate the mean value based on the remaining data, and judge the alarm based on the mean value, which can effectively filter the outlier data generated by the sensor due to instantaneous abnormalities, make the mean value for alarm judgment more consistent with the real and stable state of the hardware, and fundamentally reduce the false alarm of the BMC, thereby ensuring the stable operation of the data center and assisting the predictive maintenance of the server.
[0092] Optionally, in an embodiment of the present application, when the valid values reach the target number, the valid values are sorted according to the target rule, including: constructing a temporary array with the same length as the initial circular queue; obtaining the element position of the valid values in the current circular queue; copying the valid values to the temporary array according to the element position to obtain an unordered array of the valid values; and sorting the valid values in the unordered array in ascending order to complete the sorting of the valid values.
[0093] In some embodiments, considering the continuous operation characteristics and storage occupation problems of the at least one sensor, the present application can copy the valid values from the current circular queue to the temporary array for processing by constructing a temporary array, so that the current circular queue of the at least one sensor can continue to work normally, thereby achieving the technical effect of completing the data storage and data processing of the at least one sensor using only two queues.
[0094] Specifically, the embodiment of the present application can first construct a temporary array with the same length as the initial circular queue, and obtain the element position of the valid values in the current circular queue, so as to copy the valid values to the temporary array according to the element position corresponding to the current circular queue. The valid values in the temporary array are also closely arranged together according to the arrangement mode of the valid values in the current circular queue, avoiding the increase of workload caused by blank element positions when sorting the valid values in the temporary array.
[0095] After copying the valid values to the temporary array according to the element position, the temporary array becomes an unordered array of valid values that is identical to the current circular queue and the arrangement of the valid values contained therein. At this time, the embodiment of the present application can further sort the valid values in the unordered array in ascending order (the minimum value is on the left and the maximum value is on the right) to complete the sorting of the valid values.
[0096] It can be understood that the BMC belongs to a special embedded system, and its computing resources are very limited. The main frequency of the processor chip of the mainstream BMC is 400MHz, and the supporting BMC memory is generally 128MB of memory, and the available memory during runtime is even only a few tens of MB. In such a limited resource environment, the BMC needs to realize stable, accurate and efficient management of the running state of the entire server, which puts extremely high requirements on the resource utilization efficiency of the BMC firmware code.
[0097] Based on this, for the use scenario characteristics that the length of the temporary array is short and the threshold sensor data of the BMC usually changes continuously, the embodiment of the present application can but is not limited to implement the ascending sorting of the valid values by the insertion sorting method, which has the highest efficiency and implementation simplicity, so as to adapt to the extremely limited embedded environment of the BMC resources.
[0098] Because the bubble sort is even if the data has been basically ordered, still need to repeatedly scan from head to tail many times to confirm that they are completely ordered, many comparisons and scanning are unproductive. Quick sort is too meticulous, may be for the arrangement of only 10 data and make a set of complex rules, preparation (recursion, partition) overhead than the time of the real card sorting, for small tasks, quick sort is too heavy. And insertion sort process only need to start from the second element of the array (temporary array / unordered array), compare it with the previous elements in turn, find its correct position and insert (ascending order, the minimum value on the left, the maximum value on the right), can gradually build the effective values in unordered array in ascending order, complete the ascending order of effective values in the invalid array.
[0099] The embodiment of the application can copy the effective values from the current circular queue to the temporary array to ensure the normal operation of the current circular queue, and sort the effective values in the unordered array in ascending order by using the insertion sort, so that the sensor continuous operation and data processing requirements are considered in the case of only two queues, the data processing efficiency is improved, the calculation and storage resources of the BMC are saved to the maximum extent, and the resource limitation of the BMC embedded environment is effectively adapted.
[0100] The embodiment of the application can use the insertion sort and the mean value calculation method and other operations with low computational complexity to adapt to the BMC embedded environment with limited computing resources, without additional hardware cost, and can be realized only by software algorithm upgrade, easily integrated into the existing BMC firmware, with strong compatibility and low deployment cost.
[0101] Optionally, in an embodiment of the application, after copying the effective values to the temporary array, the method further comprises: collecting new sensor data of the at least one sensor after the monitoring window is updated; storing the new sensor data at the tail of the current circular queue, and deleting the data at the head of the current circular queue to obtain a new current circular queue of the at least one sensor.
[0102] Based on the related description of other embodiments, it can be understood that when the effective values are analyzed and processed, the effective values can be copied into the temporary array, and then the analysis and processing are performed, so that the current circular queue can continue to be dynamically updated according to the rule that the new data is enqueued at the tail and the oldest data at the head is deleted.
[0103] In some embodiments, the application can continue to collect new sensor data of at least one sensor after copying the valid values to the temporary array, and update the monitoring window (a window in which the BMC reads sensor data, and the window reads data once every time it is updated, and in the case of a first-in first-out circular queue (initial circular queue / current circular queue) with a length of 10, the window always maintains the latest 10 data), so as to continue to store the new sensor data of the at least one sensor at the tail of the current circular queue, and delete the head data of the current circular queue according to the updating rule of the queue.
[0104] At this time, the data in the current circular queue has been updated again, and a new current circular queue of the at least one sensor is formed, and the BMC can again make alarm judgment according to the valid values in the new current circular queue.
[0105] In short, the current circular queue in the embodiments of the application is updated with the update of the sensor data, and each update of the sensor data produces a latest current circular queue. The current circular queue does not refer to a circular queue at a certain moment, but refers to current circular queues corresponding to multiple moments.
[0106] Similarly, after obtaining the latest current circular queue with the update of the monitoring window, the BMC can still copy it to the temporary array, and at this time, because at least one round of alarm judgment has been performed, the temporary array can no longer be created, but the valid values in the latest current circular queue can be copied to the existing temporary array for analysis and processing to make alarm judgment.
[0107] The embodiments of the application can copy the valid values to the temporary array for processing without affecting the continuous dynamic update of the current circular queue according to the new-in old-out (first-in first-out) rule, and the current circular queue continuously generates the latest current circular queue with the update of the monitoring window for the BMC to repeatedly make alarm judgment. The application can keep the BMC to always make hardware state judgment based on the latest and nearest valid data while not interrupting the real-time data collection of the sensor, which avoids data collection discontinuity and ensures that the latest data is used for alarm judgment each time, and balances the continuity of hardware monitoring and the accuracy of alarm judgment.
[0108] Optionally, in an embodiment of the application, the outlying values in the ordered sequence are identified to delete the outlying values in the ordered sequence, including: determining the number of tailings at both ends of the ordered sequence based on a target tailing ratio; determining at least one first extreme value and at least one second extreme value in the ordered sequence based on the number of tailings, wherein the second extreme value is greater than or equal to the first extreme value; and deleting the outlying values at both ends of the ordered sequence based on the at least one first extreme value and the at least one second extreme value.
[0109] In some embodiments, when identifying and deleting outliers in the ordered sequence, the application can first determine the number of values to be truncated at both ends of the ordered sequence of valid values according to the target truncation ratio, and then determine the outliers to be deleted in the ordered sequence according to the number of values to be truncated at both ends of the ordered sequence and delete them.
[0110] The target truncation ratio can be understood as a proportion standard for determining the number of extreme values to be deleted at both ends of the ordered sequence of valid values, such as 0.2, and the number of outliers to be deleted at both ends is 0.2 of the number of valid values in the entire ordered sequence. The specific target truncation ratio can be determined by a person skilled in the art according to the actual situation, and the embodiments of the application are only exemplary and not limited.
[0111] Specifically, after the valid values are sorted in ascending order, the smallest valid value is on the left and the largest valid value is on the right in the ordered sequence of valid values, and the valid values gradually increase from left to right. At this time, there are at least one first extreme value (the first extreme value can be understood as the extreme minimum value on the left end of the ordered sequence) and at least one second extreme value (the second extreme value can be understood as the extreme maximum value on the right end of the ordered sequence) in the ordered sequence, which are located at the left and right ends of the ordered sequence, respectively. The at least one first extreme value and the at least one second extreme value at both ends are outliers in the ordered sequence.
[0112] It should be noted that the extreme maximum value (second extreme value) / extreme minimum value (first extreme value) only refers to one data in the conventional sense, and in the embodiments of the application, it can include multiple data that are relatively large or small at one end for ease of explanation.
[0113] In order to minimize the impact of outliers, the embodiments of the application can, but are not limited to, use the truncated mean method to delete the at least one first extreme value and the at least one second extreme value at both ends of the ordered sequence, and then calculate the average of the remaining valid values as the basis for the final alarm judgment.
[0114] In combination with the counting of invalid values and the design of the truncation ratio, the embodiments of the application can automatically suppress the output of the alarm result at the initial stage of the BMC system when the data is not stable, and provide high-quality filtering effect when the data is stable, thereby effectively improving the robustness and practical application ability of the application, and adapting to various hardware platforms and running environments.
[0115] The embodiment of the application can first determine the number of extreme outliers at both ends of the ordered sequence of effective values according to the target trimming ratio, and then delete the extreme outliers at both ends of the ordered sequence by using the trimming mean method, so as to accurately delete the abnormal value interference of the instantaneous data points that may exist in the ordered sequence, and make the value mean calculated subsequently more reflect the real and stable running state of the hardware component, so as to further reduce the false alarm probability of the BMC caused by outliers and improve the reliability of the hardware monitoring alarm.
[0116] Optionally, in an embodiment of the application, before determining the number of extreme values at both ends of the ordered sequence based on the target trimming ratio, the method further comprises: calculating the actual number of effective values in the ordered sequence; and determining the target trimming ratio according to the actual number of effective values.
[0117] Based on the related description of other embodiments, it can be understood that the application can determine the extreme values at both ends of the ordered sequence of effective values according to a certain trimming ratio. However, if the trimming ratio is set too small, the instantaneous outliers may be missed; and if the trimming ratio is set too large, too many data are filtered out, which does not meet the real-time requirement of BMC monitoring and management.
[0118] In actual execution process, in order to avoid missing the instantaneous outliers (outlier values) while maintaining the richness of effective values, the application can first calculate the actual number of effective values in the ordered sequence, so as to determine the target trimming ratio according to the actual number of effective values in the ordered sequence.
[0119] For example, since the instantaneous outliers of the threshold type sensor monitored by the BMC have the characteristic of discreteness, the application can but not limited to set the target trimming ratio K = 0.2 in the case that the calculation amount of at most 10 data can ensure that the instantaneous outliers are filtered out cleanly and the real-time requirement of BMC monitoring and management is met.
[0120] In formula, when there are M effective data in the ordered sequence, the target trimming ratio, that is, the number of outliers to be removed at both ends of the ordered sequence, is:
[0121] trim_count = floor(M * K)
[0122] Wherein, trim_count is the number of outliers to be removed at both ends of the ordered sequence, floor is a floor function, M is the number of effective values, and K is the trimming ratio.
[0123] For example, if M=7 and K=0.2, trim_count = 1, i.e. when there are 7 valid data, 1 maximum extreme value and 1 minimum extreme value at both ends of the ordered sequence are removed; if M=10 and K=0.2, trim_count = 2, i.e. when there are 10 valid data, 2 maximum extreme values and 2 minimum extreme values at both ends of the ordered sequence are removed.
[0124] It should be noted that the correspondence between the actual number of valid values and the target tailing ratio can be set or adjusted by a person skilled in the art according to actual needs, and the embodiment of the present application is only exemplary and not specifically limited.
[0125] When there are 10 valid data, 2 maximum extreme values and 2 minimum extreme values at both ends of the ordered sequence are removed, there are still 6 data in the middle, and the mean value of the 6 data can be calculated to obtain the numerical mean value in the embodiment of the present application.
[0126] The embodiment of the present application can determine the target tailing ratio according to the actual number of valid values in the ordered sequence to determine the number of extreme values to be removed at both ends of the ordered sequence, which can avoid the problem of missing instantaneous outliers due to too small tailing ratio or filtering too many valid data due to too large tailing ratio, and can accurately remove abnormal values according to the dispersion of outliers while retaining sufficient amount of valid data.
[0127] Optionally, in an embodiment of the present application, generating an alarm signal of the at least one sensor according to the numerical mean value comprises: matching the numerical mean value with a pre-set hierarchical alarm table to obtain an actual interval of the numerical mean value in the pre-set hierarchical alarm table; and determining the alarm signal of the at least one sensor according to the actual interval.
[0128] In some embodiments, in order to ensure that the generated alarm signal can effectively remind the system administrator of the actual situation of the component corresponding to the at least one sensor, the present application can but not limited to match the numerical mean value with a pre-set hierarchical alarm table, so as to determine the actually generated alarm signal according to the actual interval of the numerical mean value in the pre-set hierarchical alarm table.
[0129] The pre-set hierarchical alarm table here refers to a table of different alarm levels pre-set according to the range of hardware parameters (such as temperature, voltage), for example, different numerical mean values corresponding to CPU temperature are divided into normal, warning, and emergency intervals, and the specific hierarchical alarm table can be set by a person skilled in the art according to actual needs, and the embodiment of the present application is only exemplary and not specifically limited.
[0130] For example, assuming that the BMC is monitoring the CPU temperature, the method in the foregoing embodiment is used to calculate the mean value of the data after removing outliers as 55℃; the pre-set CPU temperature grading alarm table is: "normal (30-50℃), warning (51-60℃), emergency (>60℃)"; the mean value 55℃ is matched with the table, and it is found that the actual interval is the warning interval, so the BMC can determine the alarm signal of the CPU temperature warning, and notify the system administrator through email or panel indicator light.
[0131] The embodiment of the present application can match the mean value with a certain grading alarm table to determine the actual interval of the mean value, and then generate the corresponding alarm signal, so that the BMC can accurately trigger the grading alarm based on the processed reliable data, the administrator can quickly and clearly determine the severity of the hardware exception, and thus the high emergency problem can be processed in a targeted manner, the server fault response efficiency is improved, and the stable operation of the data center is ensured.
[0132] The alarm control method of the baseboard management controller in the embodiment of the present application is described in detail below with one specific embodiment.
[0133] Figure 3 The BMC threshold sensor monitoring architecture diagram of one embodiment of the present application includes a data preprocessing engine, Figure 4 The BMC false alarm prevention workflow diagram based on the data preprocessing engine of one embodiment of the present application is shown in FIG. Figure 3 and Figure 4 As shown in the figures, the present application can integrate the first-in-first-out circular queue (used later to store the sensor historical readings in the recent period of time), the deletion of outlier values, and the calculation process of the mean value (the data filtering function in the figure, used to remove invalid values, sort, and remove extreme values (outliers) based on all data in the current circular queue, and calculate a robust output value (mean value) that can represent the current real state) into a BMC data preprocessing engine, and integrate the data preprocessing engine in the threshold sensor monitoring module of the BMC. Specifically, the engine can be embedded on the critical path after the BMC reads the original sensor value and before the threshold comparison logic, to ensure that all data used for alarm decision-making is processed by the engine.
[0134] The data preprocessing engine in the embodiment of the present application hardly introduces additional delay: for a real and continuous over-threshold event, after new valid data enters the window, the output value will quickly and stably reflect the real overheating trend after a few cycles of filtering, and trigger the alarm, thereby effectively solving the contradiction between "reducing false alarms" and "timely alarming", and not drowning the real signal while reducing noise, thereby effectively improving the overall reliability and serviceability of the server system.
[0135] The final BMC threshold sensor monitoring system includes but is not limited to BMC sensor driver unit, BMC data preprocessing engine, BMC "comparison and alarm" unit. Based on the BMC threshold sensor monitoring system, the specific work flow of BMC false alarm prevention can be but not limited to as follows:
[0136] 1. Initialization and data caching:
[0137] In the BMC firmware, a FIFO circular queue DataWindow with a length of N=10 is allocated for each threshold type sensor that needs to be filtered, and all its elements are initialized to a specific invalid value 0xFFFF, indicating that the data point has not yet had a valid reading;
[0138] 2. Update the data window:
[0139] The BMC sensor driver unit reads the CPU temperature sensor once every fixed period (such as every 1 second) through I2C (Inter-Integrated Circuit, Inter-Integrated Circuit) to obtain a raw reading RawValue. The newly read RawValue is stored in the tail of the DataWindow queue, and the oldest data point in the head is squeezed out, always keeping the latest 10 readings in the window.
[0140] 3. Call the filtering function:
[0141] After updating the window each time, call the filtering function to obtain the filtered value;
[0142] 4. Internal processing of the filtering function:
[0143] Step A: Count invalid values: traverse the DataWindow queue and count the number of invalid elements with value 0xFFFF, invalid_count;
[0144] Step B: Data validity judgment: if the number of invalid values in the DataWindow queue that are the same as the initial invalid value 0xFFFF is too large, it means that the system may have just started and has not accumulated enough data to make a reliable judgment. A threshold value T_invalid for invalid values can be set, and for a data window with N=10, T_invalid can be set to 4. If invalid_count>= T_invalid (i.e. invalid_count>=4), the filtering function directly returns an invalid result -1, and the BMC informs the upstream logic that "this time cannot obtain a reliable value, and the judgment is not triggered";
[0145] Step C: Prepare valid data set: if invalid_count < T_invalid, create a temporary array TempValidData with the same length of 10. When TempValidData is created for the first time, copy all valid data (non-0xFFFF value) in DataWindow to TempValidData. At this time, there should be 7 valid values, which participate in the sorting of the TempValidData array. Subsequent read values, that is, the tail values of the DataWindow queue, are also not the initial invalid value 0xFFFF, and can be directly placed in the TempValidData array for sorting in step D;
[0146] Step D: Sort valid data in ascending order: use insertion sort to sort all valid data in TempValidData in ascending order to realize the ordered arrangement of valid data in TempValidData array, with the minimum value on the left and the maximum value on the right;
[0147] Step E: Calculate the trimmed mean: after step D, the TempValidData array is sorted in ascending order, with the minimum value on the left and the maximum value on the right. Therefore, the minimum and maximum extreme values are located at the left (head) and right (tail) of the array, respectively. In order to exclude the influence of the minimum and maximum extreme values (outliers at the head and tail after sorting), the arithmetic mean is not directly taken, but the trimmed mean method is used:
[0148] (1) Determine a trimming ratio K: if K is set too small, it may miss the transient outliers. If K is set too large, too much data is filtered out, which does not meet the real-time requirements of BMC monitoring and management. Since the transient outliers of the threshold type sensor of the BMC have the characteristics of discreteness, for a calculation amount of at most 10 data, setting K=0.2 can ensure that the transient outliers are filtered out cleanly and meet the real-time requirements of BMC monitoring and management. The formula can be but is not limited to:
[0149] trim_count = floor(M * K)
[0150] Wherein, trim_count is the number of outliers to be deleted at both ends of the ordered sequence, floor is the floor function, M is the number of valid values, and K is the trimming ratio;
[0151] (2) Calculate the trimmed mean. When there are 10 valid data, the first 2 data and the last 2 data of the sorted array are discarded. The arithmetic mean of the remaining M-2*trim_count data (i.e. 10-2*2=6 data) is calculated;
[0152] Step F: return result: the filtering function returns the calculated arithmetic mean value FilteredValue to the data preprocessing engine, and the data preprocessing engine returns the BMC;
[0153] 5. Final decision:
[0154] The BMC receives the return value of the filtering function. If the return value is an invalid flag, no threshold comparison is performed in this cycle. If the return value is a valid filtered value, the value is compared with preset threshold values of different levels to determine whether an alarm is triggered, and the specific alarm level is fed back to the system administrator in the case of triggering an alarm.
[0155] From the above description of the embodiments, those skilled in the art can clearly understand that the method according to the above embodiments can be implemented by means of software and a necessary general hardware platform, and of course, it can also be implemented by hardware, but in many cases, the former is a better embodiment.
[0156] The embodiment of the present application also provides an alarm control device 10 of a baseboard management controller, as shown in the figure, the alarm control device 10 of the baseboard management controller comprises a first acquisition module 100, a first update module 200 and an alarm module 300. Figure 5 The first acquisition module 100 is used for acquiring an initial cyclic queue corresponding to at least one sensor satisfying a target monitoring condition.
[0157] The first update module 200 is used for reading current sensing data of the at least one sensor, storing the current sensing data into a tail of the initial cyclic queue corresponding to the at least one sensor, and deleting head data of the initial cyclic queue corresponding to the at least one sensor, to obtain a current cyclic queue corresponding to the at least one sensor.
[0158] The alarm module 300 is used for, in the case that valid values in the current cyclic queue satisfy a target quantity, sorting the valid values according to a target rule to obtain an ordered sequence of the valid values, identifying outlier values in the ordered sequence, deleting the outlier values in the ordered sequence, and calculating a value mean of the ordered sequence after deletion, to generate an alarm signal of the at least one sensor according to the value mean, and control the baseboard management controller to respond to the alarm signal.
[0159] Optionally, in an embodiment of the present application, the alarm control device 10 of the baseboard management controller further comprises a construction module, a second acquisition module and an initialization module.
[0160] The construction module is used for constructing the initial cyclic queue corresponding to the at least one sensor.
[0161] The construction module is configured to construct a first-in-first-out cyclic queue corresponding to the at least one sensor before collecting an initial cyclic queue corresponding to the at least one sensor that meets a target monitoring condition.
[0162] The second acquisition module is configured to acquire a plurality of element values of the first-in-first-out cyclic queue.
[0163] The initialization module is configured to replace the plurality of element values with a preset invalid value to obtain an initial cyclic queue corresponding to the at least one sensor.
[0164] Optionally, in an embodiment of the present application, the first updating module 200 comprises a first acquisition unit, a first determination unit and a reading unit.
[0165] The first acquisition unit is configured to acquire a working feature and a priority level of the at least one sensor.
[0166] The first determination unit is configured to determine a sensor data updating frequency of the at least one sensor according to the working feature of the at least one sensor.
[0167] The reading unit is configured to determine a data reading period of current sensor data according to the priority level and the sensor data updating frequency, and to read the current sensor data according to the data reading period.
[0168] Optionally, in an embodiment of the present application, the first updating module 200 further comprises a traversal module, a comparison module and a generation module.
[0169] The traversal module is configured to traverse a plurality of elements in a current cyclic queue before sorting valid values in the current cyclic queue according to a target rule in a case where the valid values in the current cyclic queue meet a target quantity.
[0170] The comparison module is configured to count a quantity of invalid values same as a preset invalid value in the plurality of elements, and compare the quantity of invalid values with a preset invalid value quantity threshold.
[0171] The generation module is configured to generate an invalid alarm signal of the at least one sensor in a case where the quantity of invalid values is greater than or equal to the preset invalid value quantity threshold; otherwise, determine that the valid values in the current cyclic queue meet the target quantity.
[0172] Optionally, in an embodiment of the present application, the first updating module 200 further comprises a third acquisition module and a first determination module.
[0173] The third acquisition module is configured to acquire a queue length of the first-in-first-out cyclic queue corresponding to the at least one sensor.
[0174] The first determination module is configured to determine the preset invalid value quantity threshold according to the queue length.
[0175] Optionally, in an embodiment of the present application, the alarm module 300 comprises a constructing unit, a second acquiring unit, a copying unit and a sorting unit.
[0176] The constructing unit is configured to construct a temporary array with the same length as the initial circular queue.
[0177] The second acquiring unit is configured to acquire the element positions of the valid values in the current circular queue.
[0178] The copying unit is configured to copy the valid values to the temporary array according to the element positions to obtain an unordered array of the valid values.
[0179] The sorting unit is configured to sort the valid values in the unordered array in ascending order to complete the sorting of the valid values.
[0180] Optionally, in an embodiment of the present application, the alarm module 300 further comprises a collecting module and a second updating module.
[0181] The collecting module is configured to collect new sensing data of at least one sensor after the valid values are copied to the temporary array.
[0182] The second updating module is configured to store the new sensing data at the tail of the current circular queue and delete the data at the head of the current circular queue to obtain a new current circular queue of the at least one sensor.
[0183] Optionally, in an embodiment of the present application, the alarm module 300 comprises a second determining unit, a third determining unit and a deleting unit.
[0184] The second determining unit is configured to determine the number of tail cuts at both ends of the ordered sequence based on a target tail cut ratio.
[0185] The third determining unit is configured to determine at least one first extreme value and at least one second extreme value in the ordered sequence based on the number of tail cuts, wherein the second extreme value is greater than or equal to the first extreme value.
[0186] The deleting unit is configured to delete the outlying values at both ends of the ordered sequence based on the at least one first extreme value and the at least one second extreme value.
[0187] Optionally, in an embodiment of the present application, the alarm module 300 further comprises a calculating module and a second determining module.
[0188] The calculating module is configured to calculate the actual number of valid values in the ordered sequence before determining the number of tail cuts at both ends of the ordered sequence based on the target tail cut ratio.
[0189] The second determining module is configured to determine the target tail cut ratio according to the actual number of valid values.
[0190] Optionally, in one embodiment of the present application, the alarm module 300 comprises a matching unit and a fourth determining unit.
[0191] The matching unit is configured to match the numerical mean value with the pre-set graded alarm table to obtain an actual interval in which the numerical mean value is located in the pre-set graded alarm table.
[0192] The fourth determining unit is configured to determine the alarm signal of the at least one sensor according to the actual interval.
[0193] The features of the embodiments of the alarm control device of the baseboard management controller can be referred to the related descriptions of the embodiments of the alarm control method of the baseboard management controller, which will not be repeated here.
[0194] The embodiments of the present application further provide an electronic device, comprising a memory and a processor, the memory stores a computer program, and the processor is configured to run the computer program to execute the steps in any of the above embodiments of the alarm control method of the baseboard management controller.
[0195] The embodiments of the present application further provide a non-volatile computer readable storage medium, which stores a computer program, wherein the computer program is configured to execute the steps in any of the above embodiments of the alarm control method of the baseboard management controller when running.
[0196] In one exemplary embodiment, the above computer readable storage medium can include, but is not limited to, a U disk, a read-only memory (ROM), a random access memory (RAM), a mobile hard disk, a magnetic disk or an optical disk, and various media that can store computer programs.
[0197] The embodiments of the present application further provide a computer program product, which comprises a computer program, and the computer program is executed by a processor to implement the steps in any of the above embodiments of the alarm control method of the baseboard management controller.
[0198] The embodiments of the present application further provide another computer program product, which comprises a non-volatile computer readable storage medium, and the non-volatile computer readable storage medium stores a computer program, and the computer program is executed by a processor to implement the steps in any of the above embodiments of the alarm control method of the baseboard management controller.
[0199] Those skilled in the art will further realize that the mechanisms of the various examples described herein are capable of being implemented using computer software, firmware, hardware, or combinations of them, and that the various examples give the necessary control signals and data information to a responsible application-specific computer or network component to cause the computer or network component to implement various aspects of the mechanisms effectively. The computer software referred to herein can be stored in main memory and / or secondary memory application specific or general compute devices during execution thereof. Further, the software that embodies the various examples can be initialized into a computer or other network component during various stages of manufacturing processes as specified to produce the appropriate hardware, firmware, or software components.
[0200] The above provides a heterogeneous computing system and a three-dimensional Fourier transform performance evaluation method thereof. The principles and implementation manners of the present application are described by using specific examples. The above description of the examples is only used to help understand the method and core idea of the present application. It should be pointed out that, for those skilled in the art, some improvements and modifications can be made to the present application without departing from the principles of the present application, and these improvements and modifications also fall within the protection scope of the claims of the present application.
Claims
1. A method for controlling alarms of a baseboard management controller, the method comprising: The method comprises the following steps: obtaining an initial circular queue corresponding to at least one sensor satisfying a target monitoring condition; reading current sensing data of the at least one sensor, storing the current sensing data at the tail of the initial circular queue corresponding to the at least one sensor, and deleting data at the head of the initial circular queue corresponding to the at least one sensor to obtain a current circular queue corresponding to the at least one sensor; in a case where a number of valid values in the current circular queue satisfies a target number, sorting the valid values according to a target rule to obtain an ordered sequence of the valid values, identifying outlier values in the ordered sequence, deleting the outlier values in the ordered sequence, and calculating a mean value of the ordered sequence after deletion to generate an alarm signal of the at least one sensor according to the mean value and control a baseboard management controller to respond to the alarm signal; the identifying the outlier values in the ordered sequence and deleting the outlier values in the ordered sequence comprises: determining a number of tail cut-offs based on a target cut-off proportion; determining at least one first extreme value and at least one second extreme value in the ordered sequence based on the number of tail cut-offs, wherein the second extreme value is greater than or equal to the first extreme value; and deleting the outlier values at both ends of the ordered sequence based on the at least one first extreme value and the at least one second extreme value.
2. The method of claim 1, wherein, Before obtaining the initial circular queue corresponding to the at least one sensor satisfying the target monitoring condition, the method further comprises: constructing a first-in-first-out circular queue corresponding to the at least one sensor; obtaining a plurality of element values of the first-in-first-out circular queue; replacing the plurality of element values with a preset invalid value to obtain the initial circular queue corresponding to the at least one sensor.
3. The method of claim 1, wherein, The reading of the current sensing data of the at least one sensor comprises: obtaining a working feature and a priority level of the at least one sensor; determining a sensing data update frequency of the at least one sensor according to the working feature of the at least one sensor; determining a data reading period of the current sensing data according to the priority level and the sensing data update frequency to read the current sensing data according to the data reading period.
4. The method of claim 1, wherein, Before sorting the valid values in the current circular queue according to the target rule in a case where the number of valid values in the current circular queue satisfies the target number, the method further comprises: traversing a plurality of elements in the current circular queue; counting a number of invalid values same as a preset invalid value in the plurality of elements and comparing the number of invalid values with a preset invalid value number threshold; if the number of invalid values is greater than or equal to the preset invalid value number threshold, generating an invalid alarm signal of the at least one sensor, otherwise, determining that the number of valid values in the current circular queue satisfies the target number.
5. The method of claim 4, wherein, The method further comprises: obtaining a queue length of the first-in-first-out circular queue corresponding to the at least one sensor; determining the preset invalid value number threshold according to the queue length.
6. The method of claim 1, wherein, The sorting the valid values according to the target rule when the valid values reach a target number comprises: constructing a temporary array with the same length as the initial circular queue; acquiring an element position of the valid values corresponding to the current circular queue; copying the valid values to the temporary array according to the element position to obtain an unordered array of the valid values; sorting the valid values in the unordered array in ascending order to complete the sorting of the valid values.
7. The method of claim 6, wherein, After copying the valid values to the temporary array, the method further comprises: collecting new sensing data of at least one sensor after the monitoring window is updated; storing the new sensing data at the tail of the current circular queue and deleting the data at the head of the current circular queue to obtain a new current circular queue of the at least one sensor.
8. The method of claim 1, wherein, The generating an alarm signal of the at least one sensor according to the value mean comprises: matching the value mean with a pre-set hierarchical alarm table to obtain an actual interval of the value mean in the pre-set hierarchical alarm table; determining the alarm signal of the at least one sensor according to the actual interval.
9. An electronic device, comprising: The method comprises: a memory for storing a computer program; a processor for executing the computer program to implement the steps of the alarm control method of the baseboard management controller according to any one of claims 1 to 8.
Citation Information
Patent Citations
Alarm method and device, electronic equipment, storage medium and program product
CN118802471A
Alarm event processing method, transmission system, processing device, medium and product
CN120342836A