CN111538629A - 一种服务器传感器的轮循方法、系统及相关装置 - Google Patents
一种服务器传感器的轮循方法、系统及相关装置 Download PDFInfo
- Publication number
- CN111538629A CN111538629A CN202010327083.0A CN202010327083A CN111538629A CN 111538629 A CN111538629 A CN 111538629A CN 202010327083 A CN202010327083 A CN 202010327083A CN 111538629 A CN111538629 A CN 111538629A
- Authority
- CN
- China
- Prior art keywords
- round
- robin
- thread
- data structure
- sensors
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000007616 round robin method Methods 0.000 title claims abstract description 23
- 238000000034 method Methods 0.000 claims abstract description 43
- 241001522296 Erithacus rubecula Species 0.000 claims description 51
- 230000000977 initiatory effect Effects 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 3
- 230000009286 beneficial effect Effects 0.000 abstract 1
- 238000012544 monitoring process Methods 0.000 description 13
- 230000008569 process Effects 0.000 description 13
- 230000006870 function Effects 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000009471 action Effects 0.000 description 3
- 108010028984 3-isopropylmalate dehydratase Proteins 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000000737 periodic effect Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3058—Monitoring arrangements for monitoring environmental properties or parameters of the computing system or of the computing system component, e.g. monitoring of power, currents, temperature, humidity, position, vibrations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/40—Bus networks
- H04L12/403—Bus networks with centralised control, e.g. polling
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/02—Details
- H04L12/12—Arrangements for remote connection or disconnection of substations or of equipment thereof
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/22—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing
- G06F11/2289—Detection or location of defective computer hardware by testing during standby operation or during idle time, e.g. start-up testing by configuration test
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Arrangements For Transmission Of Measured Signals (AREA)
- Small-Scale Networks (AREA)
Abstract
本申请提供一种服务器传感器的轮循方法,包括:在BMC启动后,获取传感器的属性信息;按照所述属性信息中的轮循周期对所述传感器进行分类;将相同轮循周期的传感器填入至同一个预设数据结构中;利用线程对所述预设数据结构中的传感器进行轮循。本申请可以避免由于采用单线程对不同周期的传感器轮循造成的轮循效率低下的问题,保证每个传感器轮循的独立性,同时将传感器轮循之间的影响降低到了最小。本申请还提供一种服务器传感器的轮循系统和计算机可读存储介质,具有上述有益效果。
Description
技术领域
本申请涉及服务器领域,特别涉及一种服务器传感器的轮循方法、系统及相关装置。
背景技术
BMC(Baseboard Management Controller)是一种专用芯片/控制器(叫做服务器处理器或基板管理控制器(BMC)),是基于IPMI系统的心脏;在IPMI管理平台中,系统管理软件对各个被管理器件的管理,都是通过与BMC通信来实现的。
BMC对服务器各部件的监控功能通过传感器监控来实现。服务器的传感器多种多样,包括温度传感器,电压传感器,功耗传感器,状态传感器等。BMC通过读取每个传感器的读值,判断当前服务器的健康状态,并根据一定的逻辑及算法进行相应的风扇调控,产生并上报系统日志等。
目前BMC的软件系统中,针对传感器的读取方式,主要是将传感器分成了离散型和连续型两种类型,首先遍历所有的传感器,判断传感器类型和遍历周期,到达周期之后则根据传感器类型进入离散型或者连续型读取处理函数中进行处理,然后再遍历下一个传感器。此种方式存在一定的缺陷,首先将传感器分成离散型和连续型两种情况,分类粒度比较小,无法覆盖所有的应用场景,另外,将所有传感器的遍历都放在一个线程中去处理,当传感器的遍历周期比较小或者处理函数中存在延时等待等情况时,无法满足周期性要求,会出现传感器值无法及时更新的情况。
发明内容
本申请的目的是提供一种服务器传感器的轮循方法、系统和计算机可读存储介质,能够降低各传感器之间轮循影响。
为解决上述技术问题,本申请提供一种服务器传感器的轮循方法,具体技术方案如下:
在BMC启动后,获取传感器的属性信息;
按照所述属性信息中的轮循周期对所述传感器进行分类;
将相同轮循周期的传感器填入至同一个预设数据结构中;
利用线程对所述预设数据结构中的传感器进行轮循。
可选的,所述预设数据结构包括环形队列、线性队列或数组。
可选的,将相同轮循周期的传感器填入至同一个预设数据结构中包括:
将相同轮循周期的传感器中优先级高的传感器优先填入至同一个预设数据结构中。
可选的,利用线程对所述预设数据结构中的传感器进行轮循包括:
当所述预设数据结构对应的周期到达时,利用BMC主线程发起子线程对所述预设数据结构中的传感器进行轮循;
其中,所述子线程的数量与所述预设数据结构中的传感器数量相对应。
可选的,利用线程对所述预设数据结构中的传感器进行轮循包括:
利用BMC主线程为每个所述预设数据结构分配一个独立线程;
当所述预设数据结构对应的周期到达时,利用所述独立线程对所述预设数据结构中的传感器进行轮循。
可选的,当达到任一传感器的轮循周期时,还包括:
从预设数据结构中取出目标传感器并获取对应的当前属性信息;
根据所述当前属性信息中的轮循状态判断上一次轮循线程是否完成;
若是,将线程信息填入轮循线程信息结构,并将所述当前属性信息填入预设数据结构的尾部;
若否,将所述当前属性信息填入预设数据结构的尾部。
可选的,还包括:
当所述预设数据结构中所有传感器均发起轮循线程后,进行传感器的轮循周期等待。
可选的,还包括:
定义所述预设数据结构的读偏移量、写偏移量、队列大小和数据指针,以创建所述预设数据结构。
可选的,利用BMC主线程发起的子线程对所述预设数据结构中的传感器进行轮循时,还包括:
在被轮循传感器中记录所述子线程的线程ID、轮循状态字段和I2C总线。
可选的,当所述子线程未得到所述被轮循传感器的数据时,还包括:
判断所述被轮循传感器的轮循时间是否大于所述目标传感器所在的预设数据结构对应的轮循周期时长;
若是,将所述被轮循传感器重新填入所述预设数据结构,并在下一轮循周期到达时重新轮循;
若否,根据所述轮循状态字段判断所述子线程是否读取异常;
若所述子线程读取异常,复位所述I2C总线或根据所述线程ID强制退出所述子线程。
可选的,所述子线程读取异常之后,还包括:
根据所述轮循状态字段生成并上传告警日志。
本申请还提供一种服务器传感器的轮循系统,包括:
获取模块,用于在BMC启动后,获取传感器的属性信息;
分类模块,用于按照所述属性信息中的轮循周期对所述传感器进行分类;
队列填充模块,用于将相同轮循周期的传感器填入至同一个预设数据结构中;
线程管理模块,用于利用线程对所述预设数据结构中的传感器进行轮循。
本申请还提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的方法的步骤。
本申请提供一种服务器传感器的轮循方法,包括:在BMC启动后,获取传感器的属性信息;按照所述属性信息中的轮循周期对所述传感器进行分类;将相同轮循周期的传感器填入至同一个预设数据结构中;利用线程对所述预设数据结构中的传感器进行轮循。
本申请先根据各传感器的轮循后期进行分类,将相同轮循周期的传感器归至同一个预设数据结构,此后传感器轮循周期到达时,由于每个预设数据结构中的传感器的轮循周期相同,此时可以直接对该预设数据结构中的所有传感器直接轮循,避免由于采用单线程对不同周期的传感器轮循造成的轮循效率低下的问题。由于相同轮循周期的传感器在同一预设数据结构中,以预设数据结构作为线程轮循单位,而并非以所有传感器作为轮循目标,可以保证每个传感器轮循的独立性,同时将传感器轮循之间的影响降低到了最小。本申请还提供一种服务器传感器的轮循系统和计算机可读存储介质,具有上述有益效果,此处不再赘述。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例所提供的一种服务器传感器的轮循方法的流程图;
图2为本申请实施例所提供的另一种服务器传感器的轮循方法的流程图;
图3为本申请实施例所提供的又一种服务器传感器的轮循方法的流程图;
图4为本申请实施例所提供的轮循异常处理的流程图;
图5为本申请实施例所提供的传感器轮循过程的流程图;
图6为本申请实施例所提供的一种服务器传感器的轮循系统结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
请参考图1,图1为本申请实施例所提供的一种服务器传感器的轮循方法的流程图,该方法包括:
S101:在BMC启动后,获取传感器的属性信息;
本申请实施例旨在基于预设数据结构实现BMC传感器分类及周期轮循。具体的,在BMC启动后,先获取传感器的属性信息。在此对于属性信息包括哪些信息不做具体限定,但至少包括该传感器的轮循周期。此外,优选的,所述属性信息还可以包括传感器类型、传感器编号和轮循线程信息结构等。
S102:按照属性信息中的轮循周期对传感器进行分类;
S103:将相同轮循周期的传感器填入至同一个预设数据结构中;
此后根据S101中获取到的轮循周期对传感器进行分类,即相同轮循周期的传感器分为一类,并将相同轮循周期的传感器归入同一预设数据结构。在此,对于采用何种预设数据结构不做限定,预设数据结构包括环形队列、线性队列或数组。当然,该预设数据结构还可以为满足数据先入先出的其他数据结构,在此不一一举例限定。
作为一种优选的实施方式,在执行本步骤时,可以将相同轮循周期的传感器中优先级高的传感器优先填入至同一个预设数据结构中。容易理解的是,在服务器中,不同传感器的重要性并不相同,例如服务器的监控类传感器,包括温度传感器或者风扇的相关传感器,其重要性比性能监控传感器要高,能够有效避免服务器故障,保障服务器的正常运行。因此,温度传感器的优先级较高。当然,在此对于服务器中各传感器的优先级不做具体限定和排序,本领域技术人员可以根据实际需求针对传感器进行优先级排序,此后在将传感器填入预设数据结构时,即可将优先级高的传感器优先填入,使得在后续轮循时,可以优先轮循,以获取较为重要的传感器数据。
当然,容易理解的是,本申请实施例默认还需要创建预设数据结构。在此对于如何创建预设数据结构不做具体限定。优选的,可以通过定义预设数据结构的读偏移量、写偏移量、队列大小和数据指针等参数信息,以创建预设数据结构。
S104:利用线程对预设数据结构中的传感器进行轮循。
在将相同轮循周期的传感器填入同一预设数据结构后,可以利用线程对预设数据结构进行轮循。当然,可以理解的是,轮循应满足轮循周期到达,即该预设数据结构中的任一传感器的轮循周期到达时,此时线程应对该预设数据结构中的所有传感器进行轮循。具体轮循顺序可以按照传感器的填入顺序执行。
在此对于如何利用线程对预设数据结构中的传感器进行轮循不做限定,优选的,本申请实施例在此提供两种线程轮循方式:
第一种方式,当预设数据结构对应的周期到达时,利用BMC主线程发起子线程对预设数据结构中的传感器进行轮循,此时,子线程的数量与预设数据结构中的传感器数量相对应。
由于填入预设数据结构中的传感器数量已知,因此,当某一预设数据结构中的任意传感器的轮循周期到达时,意味着该预设数据结构中的所有传感器需要轮循,此时,BMC主线程可以根据该预设数据结构中的传感器数量分配相应的子线程。需要注意的是,通常子线程数量与传感器数量相同,即实现每个子线程获取一个传感器数据。通过这种方式,BMC主线程可以有目的性的对轮循周期到达的传感器实施轮循,相对于采用一个线程轮循所有传感器,本方式采用的线程轮循的轮循针对性强,且可以对所有需要轮循的传感器进行同步数据获取,轮循效率明显提高。此时,本方案对应的实施过程可以如图2所示。
第二种方式,利用BMC主线程为每个预设数据结构分配一个独立线程,当预设数据结构对应的周期到达时,利用独立线程对预设数据结构中的传感器进行轮循。
需要注意的是,第二种方式中,BMC主线程并不直接下发子线程对传感器进行轮循,而是先针对每个预设数据结构分配独立线程,当然,所有的独立线程受BMC主线程管理。而独立线程的数量通常与预设数据结构的数量相同,即每有一个预设数据结构,都存在一个对应的独立线程。此后,在预设数据结构对应的周期到达时,由独立线程对预设数据结构中的传感器进行轮循。需要注意的是,在采用独立线程对预设数据结构中的传感器进行轮循时,可以由独立线程逐一轮循,也可以由独立线程再下发子线程对预设数据结构中的传感器分别轮循。具体采用何种方式可以视预设数据结构中的传感器数量自由设定,在此不做具体限定。相较于第一种方式,第二种方式实现了为每个预设数据结构分配独立线程,采用多个线程直接提高了传感器的轮循效率。同时,将每个预设数据结构的轮循任务分配到对应的独立线程,在后续轮循异常时便于直接寻找异常原因,即直接对轮循异常的预设数据结构对应的独立线程进行检测即可,不仅可以提高轮循效率,还可以提高轮循容错率。每个预设数据结构都单独采用一个独立线程加以管理,这样哪怕传感器的遍历周期比较小或者出现处理函数中存在延时等待等情况时,依旧可以保证传感器值可以及时更新,不会出现因为仅存在一个线程导致各传感器值无法更新的情况。此时,本方案对应的实施过程可以如图3所示。
本申请先根据各传感器的轮循后期进行分类,将相同轮循周期的传感器归至同一个预设数据结构,此后传感器轮循周期到达时,由于每个预设数据结构中的传感器的轮循周期相同,此时可以直接对该预设数据结构中的所有传感器直接轮循,避免由于采用单线程对不同周期的传感器轮循造成的轮循效率低下的问题。由于相同轮循周期的传感器在同一预设数据结构中,以预设数据结构作为线程轮循单位,而并非以所有传感器作为轮循目标,可以保证每个传感器轮循的独立性,同时将传感器轮循之间的影响降低到了最小。
在上述实施例的基础上,利用BMC主线程发起的子线程对预设数据结构中的传感器进行轮循时,还可以在被轮循传感器中记录子线程的线程ID、轮循状态字段和I2C总线。
本实施例对于子线程轮循过程作了进一步限定,即子线程对传感器进行轮循时,由被轮循传感器记录子线程的线程ID、轮循状态字段和I2C总线,以便于在轮循异常时溯源。
在此基础上,作为优选的实施实施例,参见图4,图4为本申请实施例所提供的轮循异常处理的流程图,下文对轮循异常过程和处理作了进一步限定:
S201:当子线程未得到被轮循传感器的数据时,可以判断被轮循传感器的轮循时间是否大于目标传感器所在的预设数据结构对应的轮循周期时长;若是,进入S202;若否,进入S203;
S202:将被轮循传感器重新填入预设数据结构,并在下一轮循周期到达时重新轮循;
S203:根据轮循状态字段判断子线程是否读取异常;若是,进入S204;
S204:复位I2C总线或根据线程ID强制退出子线程。
本实施例旨在线程轮循时未获得传感器数据时,借助于存放在被轮循传感器中的线程属性信息和轮循过程信息(包括但不限定于线程ID、轮循状态字段和I2C总线)进行异常溯源,若是轮循的子线程出现读取异常,则可以复位I2C总线或根据线程ID强制退出子线程。当然,若子线程未读取异常,可以不做任何处理,等待下一次轮循周期到达进行下一次轮循即可。
虽然上述过程限定针对上文所述的第一种方式,但实际采用独立线程轮循时,依旧可以在被轮循传感器中记录子线程的线程ID、轮循状态字段和I2C总线,同时执行子线程未得到被轮循传感器的数据时的后续步骤,在此不做重复描述。
在上述实施例的基础上,作为优选的实施例,子线程读取异常之后,还可以根据轮循状态字段生成并上传告警日志。
在上述实施例的基础上,参见图5,图5为本申请实施例所提供的传感器轮循过程的流程图,当达到任一传感器的轮循周期时,还可以包括如下步骤:
S301:从预设数据结构中取出一个传感器并获取对应的当前属性信息;
S302:根据所述当前属性信息中的轮循状态判断上一次轮循线程是否完成;若是,进入S303;若否,进入S304;
S303:将线程信息填入轮循线程信息结构,并将所述当前属性信息填入预设数据结构的队尾;
S304:将所述当前属性信息填入预设数据结构的队尾。
由于预设数据结构中所有传感器的轮循周期相同,在达到轮循周期时,此时需要对传感器进行轮循,可以从预设数据结构中取出一个传感器并获取其当前属性信息。需要注意的是,当前属性信息也可以包含传感器类型等等信息。
此后根据当前属性信息中的轮循状态判断本预设数据结构的上一次轮循线程是否完成,若完成,将线程信息填入轮循线程信息结构,并将当前属性信息填入队尾。需要注意的是,轮循线程信息结构属于当前属性信息的一部分。
若未完成,则只需将当前属性信息填入预设数据结构的队尾即可,等待到达下一次轮循周期时重新执行上述判断过程。
需要注意的是,若是预设数据结构中所有传感器均发起轮循线程,进行传感器的轮循周期等待。轮循周期等待指所有的传感器轮询线程发起之后,预设数据结构对应的主线程等待每个传感器对应的子线程结束。如果结束,则清空该传感器的线程属性信息。
本申请实施例通过一个预设数据结构结构来存储和管理同一个轮询周期中每个传感器的相关信息,包括每个传感器的线程属性信息(用于标注该传感器是正在监控还是已经监控完成),每个传感器的监控是通过主线程发起一个子线程进行该传感器的监控的,预设数据结构的轮询周期到了之后,如果从预设数据结构中取出来的传感器中的线程属性信息提示已经完成上一轮监控,则主线程(管理预设数据结构中的每个传感器,即预设数据结构对应的线程)发起一个新的子线程(仅用于该传感器的监控)进行该传感器的监控,并将该传感器的子线程信息填充到该传感器的线程属性信息中。当该线程执行完成的时候,则将该传感器的属性信息清除,表示已经轮询完成,如果到达轮询周期该传感器仍然没有完成上一轮的监控(是否完成上一轮监控可以通过该传感器的线程属性信息得到),则填入队列尾部,即本次周期针对该传感器不执行监控,等待下一个周期。
本申请利用预设数据结构先入先出的特性,将BMC中的所有传感器采用预设数据结构进行管理,根据轮循周期将所有的传感器填入不同的预设数据结构,每个线程管理一个预设数据结构,轮循周期到达之后通过子线程完成每个传感器的轮循工作,这样保证了每个传感器轮循的独立性,将传感器轮循之间的影响降低到了最小。
下文以预设数据结构为环形队列、以上文所述的第二种方式作为一种具体应用过程对本申请提供的一种服务器传感器的轮循方法进行描述:
1.创建环形队列,定义环形队列的实现结构,包含读偏移量、写偏移量、环形队列大小及环形队列数据指针及对外呈现的出队入队接口函数;
2.BMC启动之后获取所有传感器的属性信息,包括传感器类型、传感器编号、轮循周期和阈值等,在属性信息中还可以自定义传感器轮循线程信息结构;
3.BMC将传感器按照轮循周期进行分类;
4.BMC按照分类将同一轮循周期的传感器填入到同一个环形队列中;
5.BMC按照创建的环形队列个数发起独立线程,每个独立线程管理一个环形队列;
6.利用独立线程管理对应的环形队列时,如果已经达到该环形队列中传感器的轮循周期,独立线程按照环形队列中传感器的填入顺序进行轮循;
7.独立线程根据传感器的轮循状态判断该传感器的上一次轮循线程是否已经完成,未完成则再次填入环形队列队尾,上一轮循完成则发起线程进行该传感器本周期的轮循工作,并将线程的信息填充传感器轮循线程的信息结构,同时将该传感器属性信息填入队尾;
8.等到环形队列中所有传感器的轮循线程发起之后,进入传感器轮循周期等待;
9.传感器的轮循周期达到之后,重复执行步骤6。
下面对本申请实施例提供的一种服务器传感器的轮循系统结构示意图进行介绍,下文描述的轮循系统与上文描述的一种服务器传感器的轮循方法可相互对应参照。
参见图2,图2为本申请实施例所提供的一种服务器传感器的轮循系统结构示意图,本申请还提供一种服务器传感器的轮循系统,包括:
获取模块100,用于在BMC启动后,获取传感器的属性信息;
分类模块200,用于按照所述属性信息中的轮循周期对所述传感器进行分类;
队列填充模块300,用于将相同轮循周期的传感器填入至同一个预设数据结构中;
线程管理模块400,用于利用线程对所述预设数据结构中的传感器进行轮循。
基于上述实施例,作为优选的实施例,所述队列填充模块300包括:
填充单元,用于将相同轮循周期的传感器中优先级高的传感器优先填入至同一个预设数据结构中。
基于上述实施例,作为优选的实施例,线程管理模块400可以包括:
第一线程管理单元,用于当所述预设数据结构对应的周期到达时,利用BMC主线程发起子线程对所述预设数据结构中的传感器进行轮循;其中,所述子线程的数量与所述预设数据结构中的传感器数量相对应。
基于上述实施例,作为优选的实施例,线程管理模块400可以包括:
第二线程管理单元,用于利用BMC主线程为每个所述预设数据结构分配一个独立线程;以及,当所述预设数据结构对应的周期到达时,利用所述独立线程对所述预设数据结构中的传感器进行轮循。
基于上述实施例,作为优选的实施例,还可以包括:
轮循模块,用于当达到任一传感器的轮循周期时,从预设数据结构中取出目标传感器并获取对应的当前属性信息;根据所述当前属性信息中的轮循状态判断上一次轮循线程是否完成;若是,将线程信息填入轮循线程信息结构,并将所述当前属性信息填入预设数据结构的尾部;若否,将所述当前属性信息填入预设数据结构的尾部。
基于上述实施例,作为优选的实施例,还可以包括:
轮循等待模块,用于当所述预设数据结构中所有传感器均发起轮循线程后,进行传感器的轮循周期等待。
基于上述实施例,作为优选的实施例,还可以包括:
预设数据结构创建模块,用于定义所述预设数据结构的读偏移量、写偏移量、队列大小和数据指针,以创建所述预设数据结构。
基于上述实施例,作为优选的实施例,所述第一线程管理单元还可以包括:
记录子单元,用于利用BMC主线程发起的子线程对所述预设数据结构中的传感器进行轮循时,在被轮循传感器中记录所述子线程的线程ID、轮循状态字段和I2C总线。
基于上述实施例,作为优选的实施例,所述第一线程管理单元还可以包括:
轮循异常处理子单元,用于当所述子线程未得到所述被轮循传感器的数据时,判断所述被轮循传感器的轮循时间是否大于所述目标传感器所在的预设数据结构对应的轮循周期时长;若是,将所述被轮循传感器重新填入所述预设数据结构,并在下一轮循周期到达时重新轮循;若否,根据所述轮循状态字段判断所述子线程是否读取异常;若所述子线程读取异常,复位所述I2C总线或根据所述线程ID强制退出所述子线程。
基于上述实施例,作为优选的实施例,所述第一线程管理单元还可以包括:
异常告警子单元,用于所述子线程读取异常之后,根据所述轮循状态字段生成并上传告警日志。
本申请还提供了一种计算机可读存储介质,其上存有计算机程序,该计算机程序被执行时可以实现上述实施例所提供的步骤。该存储介质可以包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例提供的系统而言,由于其与实施例提供的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以对本申请进行若干改进和修饰,这些改进和修饰也落入本申请权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (13)
1.一种服务器传感器的轮循方法,其特征在于,包括:
在BMC启动后,获取传感器的属性信息;
按照所述属性信息中的轮循周期对所述传感器进行分类;
将相同轮循周期的传感器填入至同一个预设数据结构中;
利用线程对所述预设数据结构中的传感器进行轮循。
2.根据权利要求1所述的轮循方法,其特征在于,所述预设数据结构包括环形队列、线性队列或数组。
3.根据权利要求1所述的轮循方法,其特征在于,将相同轮循周期的传感器填入至同一个预设数据结构中包括:
将相同轮循周期的传感器中优先级高的传感器优先填入至同一个预设数据结构中。
4.根据权利要求1-3任一项所述的轮循方法,其特征在于,利用线程对所述预设数据结构中的传感器进行轮循包括:
当所述预设数据结构对应的周期到达时,利用BMC主线程发起子线程对所述预设数据结构中的传感器进行轮循;
其中,所述子线程的数量与所述预设数据结构中的传感器数量相对应。
5.根据权利要求1-3任一项所述的轮循方法,其特征在于,利用线程对所述预设数据结构中的传感器进行轮循包括:
利用BMC主线程为每个所述预设数据结构分配一个独立线程;
当所述预设数据结构对应的周期到达时,利用所述独立线程对所述预设数据结构中的传感器进行轮循。
6.根据权利要求1所述的轮循方法,其特征在于,当达到任一传感器的轮循周期时,还包括:
从预设数据结构中取出目标传感器并获取对应的当前属性信息;
根据所述当前属性信息中的轮循状态判断上一次轮循线程是否完成;
若是,将线程信息填入轮循线程信息结构,并将所述当前属性信息填入预设数据结构的尾部;
若否,将所述当前属性信息填入预设数据结构的尾部。
7.根据权利要求1所述的轮循方法,其特征在于,还包括:
当所述预设数据结构中所有传感器均发起轮循线程后,进行传感器的轮循周期等待。
8.根据权利要求1所述的轮循方法,其特征在于,还包括:
定义所述预设数据结构的读偏移量、写偏移量、队列大小和数据指针,以创建所述预设数据结构。
9.根据权利要求4所述的轮循方法,其特征在于,利用BMC主线程发起的子线程对所述预设数据结构中的传感器进行轮循时,还包括:
在被轮循传感器中记录所述子线程的线程ID、轮循状态字段和I2C总线。
10.根据权利要求9所述的轮循方法,其特征在于,当所述子线程未得到所述被轮循传感器的数据时,还包括:
判断所述被轮循传感器的轮循时间是否大于所述目标传感器所在的预设数据结构对应的轮循周期时长;
若是,将所述被轮循传感器重新填入所述预设数据结构,并在下一轮循周期到达时重新轮循;
若否,根据所述轮循状态字段判断所述子线程是否读取异常;
若所述子线程读取异常,复位所述I2C总线或根据所述线程ID强制退出所述子线程。
11.根据权利要求10所述的轮循方法,其特征在于,所述子线程读取异常之后,还包括:
根据所述轮循状态字段生成并上传告警日志。
12.一种服务器传感器的轮循系统,其特征在于,包括:
获取模块,用于在BMC启动后,获取传感器的属性信息;
分类模块,用于按照所述属性信息中的轮循周期对所述传感器进行分类;
队列填充模块,用于将相同轮循周期的传感器填入至同一个预设数据结构中;
线程管理模块,用于利用线程对所述预设数据结构中的传感器进行轮循。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-11任一项所述的方法的步骤。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010327083.0A CN111538629A (zh) | 2020-04-23 | 2020-04-23 | 一种服务器传感器的轮循方法、系统及相关装置 |
US17/914,505 US11706050B2 (en) | 2020-04-23 | 2020-09-28 | Polling method and system for server sensors, and related apparatus |
PCT/CN2020/118310 WO2021212748A1 (zh) | 2020-04-23 | 2020-09-28 | 一种服务器传感器的轮循方法、系统及相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010327083.0A CN111538629A (zh) | 2020-04-23 | 2020-04-23 | 一种服务器传感器的轮循方法、系统及相关装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111538629A true CN111538629A (zh) | 2020-08-14 |
Family
ID=71978961
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010327083.0A Pending CN111538629A (zh) | 2020-04-23 | 2020-04-23 | 一种服务器传感器的轮循方法、系统及相关装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11706050B2 (zh) |
CN (1) | CN111538629A (zh) |
WO (1) | WO2021212748A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113032216A (zh) * | 2021-03-26 | 2021-06-25 | 山东英信计算机技术有限公司 | 一种监控方法、装置、设备和介质 |
WO2021212748A1 (zh) * | 2020-04-23 | 2021-10-28 | 苏州浪潮智能科技有限公司 | 一种服务器传感器的轮循方法、系统及相关装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109005226A (zh) * | 2018-07-27 | 2018-12-14 | 郑州云海信息技术有限公司 | 服务器中传感器数据的获取方法、获取系统和相关装置 |
CN109495303A (zh) * | 2018-11-19 | 2019-03-19 | 广州开信通讯系统有限公司 | 获取设备参量信息的方法、设备网络管理装置及系统、电子装置和存储介质 |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5659787A (en) * | 1995-05-26 | 1997-08-19 | Sensormatic Electronics Corporation | Data communication network with highly efficient polling procedure |
CN1230737C (zh) * | 2002-09-23 | 2005-12-07 | 华为技术有限公司 | 一种设备数据轮询调度方法 |
US6772099B2 (en) * | 2003-01-08 | 2004-08-03 | Dell Products L.P. | System and method for interpreting sensor data utilizing virtual sensors |
US7705721B1 (en) * | 2007-03-13 | 2010-04-27 | Network Appliance, Inc. | Apparatus and method for sensing and responding to environmental conditions of a computer system at non-uniform polling intervals |
US8286034B2 (en) * | 2010-07-20 | 2012-10-09 | Oracle America, Inc. | Accurate fault status tracking of variable access sensors |
JP5441875B2 (ja) * | 2010-12-07 | 2014-03-12 | 株式会社日立製作所 | 計算機システム |
US20140156093A1 (en) * | 2012-12-04 | 2014-06-05 | General Electric Company | Auto-discovery of smart meter update interval |
US9264320B1 (en) * | 2014-06-17 | 2016-02-16 | Ca, Inc. | Efficient network monitoring |
CN105528273A (zh) * | 2014-09-30 | 2016-04-27 | 中国移动通信集团浙江有限公司 | 一种服务器主机硬件的监控方法、装置及电子设备 |
US10394604B2 (en) * | 2017-03-15 | 2019-08-27 | Samsung Electronics Co., Ltd. | Method for using local BMC to allocate shared GPU resources inside NVMe over fabrics system |
CN107302465B (zh) * | 2017-08-18 | 2021-06-29 | 郑州云海信息技术有限公司 | 一种PCIe Switch服务器整机管理方法 |
CN108259270A (zh) * | 2018-01-11 | 2018-07-06 | 郑州云海信息技术有限公司 | 一种数据中心统一管理系统设计方法 |
US10948888B2 (en) * | 2018-02-28 | 2021-03-16 | Microsoft Technology Licensing, Llc | Smart building device discovery and control |
US11449332B2 (en) * | 2018-11-30 | 2022-09-20 | Hewlett-Packard Development Company, L.P. | Polling computing devices |
CN111538629A (zh) * | 2020-04-23 | 2020-08-14 | 苏州浪潮智能科技有限公司 | 一种服务器传感器的轮循方法、系统及相关装置 |
-
2020
- 2020-04-23 CN CN202010327083.0A patent/CN111538629A/zh active Pending
- 2020-09-28 WO PCT/CN2020/118310 patent/WO2021212748A1/zh active Application Filing
- 2020-09-28 US US17/914,505 patent/US11706050B2/en active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109005226A (zh) * | 2018-07-27 | 2018-12-14 | 郑州云海信息技术有限公司 | 服务器中传感器数据的获取方法、获取系统和相关装置 |
CN109495303A (zh) * | 2018-11-19 | 2019-03-19 | 广州开信通讯系统有限公司 | 获取设备参量信息的方法、设备网络管理装置及系统、电子装置和存储介质 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021212748A1 (zh) * | 2020-04-23 | 2021-10-28 | 苏州浪潮智能科技有限公司 | 一种服务器传感器的轮循方法、系统及相关装置 |
US11706050B2 (en) | 2020-04-23 | 2023-07-18 | Inspur Suzhou Intelligent Technology Co., Ltd. | Polling method and system for server sensors, and related apparatus |
CN113032216A (zh) * | 2021-03-26 | 2021-06-25 | 山东英信计算机技术有限公司 | 一种监控方法、装置、设备和介质 |
CN113032216B (zh) * | 2021-03-26 | 2023-04-25 | 山东英信计算机技术有限公司 | 一种监控方法、装置、设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2021212748A1 (zh) | 2021-10-28 |
US20230118722A1 (en) | 2023-04-20 |
US11706050B2 (en) | 2023-07-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110297711B (zh) | 批量数据处理方法、装置、计算机设备及存储介质 | |
CN109936604B (zh) | 一种资源调度方法、装置和系统 | |
US20150295970A1 (en) | Method and device for augmenting and releasing capacity of computing resources in real-time stream computing system | |
US10255114B2 (en) | Abnormality detection apparatus, control method, and program | |
CN110737534A (zh) | 任务的处理方法、装置和服务器 | |
US11093352B2 (en) | Fault management in NVMe systems | |
CN109739627B (zh) | 任务的调度方法、电子设备及介质 | |
CN109710416B (zh) | 资源调度方法及装置 | |
CN111381970B (zh) | 集群任务的资源分配方法及装置、计算机装置及存储介质 | |
CN112579263A (zh) | 任务执行方法及装置、存储介质及电子设备 | |
CN106959895B (zh) | 快速释放线程的资源调度方法和系统 | |
CN111538629A (zh) | 一种服务器传感器的轮循方法、系统及相关装置 | |
CN110109741B (zh) | 循环任务的管理方法、装置、电子设备及存储介质 | |
US10069674B2 (en) | Monitoring file system operations between a client computer and a file server | |
CN105022668B (zh) | 一种作业调度方法及系统 | |
US20190286582A1 (en) | Method for processing client requests in a cluster system, a method and an apparatus for processing i/o according to the client requests | |
WO2017008477A1 (zh) | 一种集群视频分析方法和系统 | |
CN112860387A (zh) | 分布式任务调度方法、装置、计算机设备及存储介质 | |
CN112162856A (zh) | Gpu虚拟资源的分配方法、装置、计算机设备和存储介质 | |
CN108415765B (zh) | 任务调度方法、装置及智能终端 | |
US20150026694A1 (en) | Method of processing information, storage medium, and information processing apparatus | |
EP3188026B1 (en) | Memory resource management method and apparatus | |
US20200301732A1 (en) | Information processing system and non-transitory computer readable medium storing program | |
JP7319196B2 (ja) | 車両スケジューリングのために車両相互依存性を解決するためのコンピュータ化されたシステムおよび方法 | |
US9001343B2 (en) | Information processing apparatus and method therefor |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200814 |
|
RJ01 | Rejection of invention patent application after publication |