一种运行状态监测方法、装置和服务器与流程

未命名 10-08 阅读:88 评论:0


1.本技术涉及运行状态监测技术领域,尤其涉及一种运行状态监测方法、装置和服务器。


背景技术:

2.随着云计算、大数据等技术的发展,对服务器的要求越来越高,能够实现各类应用场景的服务器应运而生。这类服务器为了实现各类应用场景的需求,一般集成有多种gpu。
3.服务器在进行相关控制时,需要获取gpu的运行状态数据,且服务器对于各个gpu的运行状态数据的实时性要求较高,因此,如何快速、及时的监测运行状态数据成为当前亟待解决的问题。


技术实现要素:

4.有鉴于此,本技术提供一种运行状态监测方法、装置和服务器,以快速、及时的监测gpu的运行状态。
5.具体地,本技术是通过如下技术方案实现的:本技术第一方面提供一种运行状态监测方法,其特征在于,所述方法应用于服务器,所述服务器包括多个图形处理器gpu,所述服务器包括用于存储所述多个gpu的运行状态数据的存储区域和备份区域,所述存储区域设置有对应于每个所述gpu的存储分区;所述备份区域设置有对应于每个所述存储分区的备份分区;所述方法包括:基于多个处理线程并行采集并更新每个所述存储分区的数据;在所述多个处理线程中的任一处理线程确定目标存储分区的数量达到指定数量时,基于该处理线程将所述目标存储分区的数据备份至目标备份分区,并将所述目标备份分区置于锁定状态;其中,所述目标存储分区为所述多个存储分区中已完成更新的存储分区;所述目标备份分区为所述备份区域中与所述目标存储分区对应的备份分区;在所述目标存储分区的数据备份至所述目标备份分区后,将所述目标备份分区置于解锁状态,以从所述备份区域获取运行状态数据。
6.本技术第二方面提供一种运行状态监测装置,其特征在于,所述装置应用于服务器,所述服务器包括多个图形处理器gpu,所述服务器包括用于存储所述多个gpu的运行状态数据的存储区域和备份区域,所述存储区域设置有对应于每个所述gpu的存储分区;所述备份区域设置有对应于每个所述存储分区的备份分区;所述装置包括更新模块、备份模块和解锁模块;其中,所述更新模块,用于基于多个处理线程并行采集并更新每个所述存储分区的数据;所述备份模块,用于在所述多个处理线程中的任一处理线程确定目标存储分区的数量达到指定数量时,基于该处理线程将所述目标存储分区的数据备份至目标备份分区,并将所述目标备份分区置于锁定状态;其中,所述目标存储分区为所述多个存储分区中已
完成更新的存储分区;所述目标备份分区为所述备份区域中与所述目标存储分区对应的备份分区;所述解锁模块,用于在所述目标存储分区的数据备份至所述目标备份分区后,将所述目标备份分区置于解锁状态,以从所述备份区域获取运行状态数据。
7.本技术第三方面提供一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本技术第一方面提供的任一项所述方法的步骤。
8.本技术第四方面提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现本技术第一方面提供的任一项所述方法的步骤本技术提供的运行状态监测方法、装置和服务器,通过基于多个处理线程并行采集并更新每个所述存储分区的数据,并在所述多个处理线程中的任一处理线程确定目标存储分区的数量达到指定数量时,基于该处理线程将所述目标存储分区的数据备份至目标备份分区,并将所述目标备份分区置于锁定状态;其中,所述目标存储分区为所述多个存储分区中已完成更新的存储分区;所述目标备份分区为所述备份区域中与所述目标存储分区对应的备份分区,进而在所述目标存储分区的数据备份至所述目标备份分区后,将所述目标备份分区置于解锁状态,以从所述备份区域获取运行状态数据。这样,一方面,采用多个处理线程并行采集并更新每个存储分区的数据,这样,由于多个处理线程并行执行采集并更新的操作,可及时、快速的获取运行状态数据,提高运行状态数据的实时性。另一方面,本实施例提供的方法,当某个处理线程在确定目标存储分区的数量达到指定数量时,该处理线程去执行备份操作,将目标存储分区的数据备份至备份区域,此时,由于指定数量小于多个gpu的数量,这样,在备份的同时,针对当前未开始监测的存储分区,其他处理线程可以去采集并更新该存储分区的数据,这样,即使在备份的过程中,处理线程也可以继续执行采集并更新的操作,即处理线程可不停歇的执行采集并更新的操作,可最大限度的利用处理线程,避免处理线程空闲,可进一步及时、快速的获取运行状态数据,进一步提高运行状态数据的实时性。
附图说明
9.图1为本技术提供的运行状态监测方法实施例一的流程图;图2为本技术一示例性实施例示出的一种服务器的示意图;图3为本技术提供的运行状态监测方法实施例二的流程图;图4为本技术提供的运行状态监测方法实施例三的流程图;图5为本技术提供的运行状态监测装置所在服务器的一种硬件结构图;图6为本技术提供的运行状态监测装置实施例一的结构示意图。
具体实施方式
10.这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本技术相一致的所有实施方式。
11.在本技术使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本技术。
在本技术中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
12.应当理解,尽管在本技术可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本技术范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在
……
时”或“当
……
时”或“响应于确定”。
13.本技术提供一种运行状态监测方法、装置和服务器,用以快速、及时的监测gpu的运行状态。
14.本技术提供的运行状态监测方法、装置和服务器,通过基于多个处理线程并行采集并更新每个所述存储分区的数据,并在所述多个处理线程中的任一处理线程确定目标存储分区的数量达到指定数量时,基于该处理线程将所述目标存储分区的数据备份至目标备份分区,并将所述目标备份分区置于锁定状态;其中,所述目标存储分区为所述多个存储分区中已完成更新的存储分区;所述目标备份分区为所述备份区域中与所述目标存储分区对应的备份分区,进而在所述目标存储分区的数据备份至所述目标备份分区后,将所述目标备份分区置于解锁状态,以从所述备份区域获取运行状态数据。这样,一方面,采用多个处理线程并行采集并更新每个存储分区的数据,这样,由于多个处理线程并行执行采集并更新的操作,可及时、快速的获取运行状态数据,提高运行状态数据的实时性。另一方面,本实施例提供的方法,当某个处理线程在确定目标存储分区的数量达到指定数量时,该处理线程去执行备份操作,将目标存储分区的数据备份至备份区域,此时,由于指定数量小于多个gpu的数量,这样,在备份的同时,针对当前未开始监测的存储分区,其他处理线程可以去采集并更新该存储分区的数据,这样,即使在备份的过程中,处理线程也可以继续执行采集并更新的操作,即处理线程可不停歇的执行采集并更新的操作,可最大限度的利用处理线程,避免处理线程空闲,可进一步及时、快速的获取运行状态数据,进一步提高运行状态数据的实时性。
15.下面给出具体的实施例,用以详细介绍本技术的技术方案。
16.图1为本技术提供的运行状态监测方法实施例一的流程图。本实施例提供的方法,应用于服务器,所述方法包括:s101、基于多个处理线程并行采集并更新每个所述存储分区的数据。
17.具体的,所述服务器包括多个图形处理器gpu(graphics processing unit,简称gpu),所述服务器包括用于存储所述多个gpu的运行状态数据的存储区域和备份区域,所述存储区域设置有对应于每个所述gpu的存储分区;所述备份区域设置有对应于每个所述存储分区的备份分区。
18.具体的,服务器包括多个图形处理器gpu,这多个图形处理器gpu可以是不同厂商生产的gpu。例如,一实施例中,服务器包括30个gpu。
19.需要说明的是,gpu的运行状态数据包括表征gpu当前工作状态和性能指标的数据。例如,gpu的运行状态数据可以包括gpu的温度、gpu的使用率、gpu的电压、gpu的功耗等。
20.进一步地,服务器设置有专门用来存储多个gpu的运行状态数据的存储区域,该存
储区域设置有对应于每个gpu的存储分区,该存储分区用来存储与其对应的gpu的运行状态数据。结合上面的例子,服务器包括30个gpu,此时,存储区域包括30个存储分区,存储分区与gpu一一对应,一个存储分区用来存储一个gpu的运行状态数据。
21.进一步的,服务器还设置有专门用来存储多个gpu的运行状态数据的备份区域(具体用来存储运行状态数据对应的备份数据),该备份区域设置有对应于每个gpu的备份分区,该备份分区用来存储与其对应的gpu的运行状态数据。结合上面的例子,服务器包括30个gpu,此时,备份区域包括30个存储分区,备份分区与gpu一一对应,一个备份分区用来存储一个gpu的运行状态数据。
22.例如,一实施例中,图2为本技术一示例性实施例示出的一种服务器的示意图。请参照图2,在图2所示示例中,该服务器包括n个gpu,存储区域1包括n个存储分区,每个存储分区用于存储1个gpu的运行状态数据。备份区域2包括n个备份分区,每个备份分区用于存储1个gpu的运行状态数据。
23.需要说明的是,存储分区的数量、备份分区的数量与服务器包含的gpu的数量相同。进一步的,一实施例中,每个存储分区的大小可以按照与其对应的gpu需要存储的数据量的大小来设定。此外,另一实施例中,每个存储分区的大小可以均按照目标gpu(多个gpu中,需要存储的数据量最大的那个gpu)需要存储的数据量的大小来设定。这样可以保证每一个存储分区都可以存储任意一个gpu的数据。
24.具体实现时,可以先创建多个处理线程。需要说明的是,处理线程的数量是根据实际需要设定的,处理线程的数量可以小于服务器包含的gpu的数量(为了方便说明,将服务器包含的gpu的数量记为n),也可以大于服务器包含的gpu的数量,本实施例中,不对处理线程的数量进行限定。例如,一实施例中,处理线程的数量为10个。
25.具体的,多个处理线程同时采集各个存储分区对应的gpu的运行状态数据,并更新该存储分区存储的数据。有关多个处理线程并行采集并更新存储分区的数据的具体实现过程和实现原理将在下面实施例中详细介绍,此处不再赘述。
26.结合前面的例子,例如,在图2所示实例中,处理线程1采集gpu1的运行状态数据并更新gpu1对应的存储分区11的数据;处理线程2采集gpu2的运行状态数据并更新gpu2对应的存储分区12的数据。
27.s102、在所述多个处理线程中的任一处理线程确定目标存储分区的数量达到指定数量时,基于该处理线程将所述目标存储分区的数据备份至目标备份分区,并将所述目标备份分区置于锁定状态;其中,所述目标存储分区为所述多个存储分区中已完成更新的存储分区;所述目标备份分区为所述备份区域中与所述目标存储分区对应的备份分区。
28.具体的,需要说明的是,指定数量的值小于服务器包含的gpu的数量。此外,指定数量的具体值是根据实际需要设定的,本实施例中,不对指定数量的具体值进行限定。例如,一实施例中,在服务器包含的gpu的数量为30时,指定数量可以为25。
29.具体的,目标存储分区指的是所有存储分区中已完成更新的存储分区。相应的,目标备份分区指的是与目标存储分区对应的备份分区。其中,一个存储分区和其对应的备份分区,用来存储同一个gpu的运行状态数据。
30.需要说明的是,当备份分区被置于锁定状态后,只有该处理线程可以访问该备份分区,换言之,该备份分区的数据不能被读取。
31.结合上面的例子,例如,在图2所示示例中,某一时刻,处理线程1确定目标存储分区的数量达到25,且目标存储分区包括存储分区11到存储分区125,此时,处理线程1就把存储分区11到存储分区125中的各个存储分区的数据备份至对应的备份分区中,例如,在图2所示示例中,根据存储分区与备份分区的对应关系,就备份至备份分区21到备份分区225中,并将备份分区21到备份分区225置于锁定状态,此时,备份分区21到备份分区225处于数据备份过程中,其中的数据不能被读取。
32.s103、在所述目标存储分区的数据备份至所述目标备份分区后,将所述目标备份分区置于解锁状态,以从所述备份区域获取运行状态数据。
33.具体的,备份分区处于解锁状态时,该备份分区的数据可以被读取,这时,如果需要获取gpu的运行状态数据,可从备份区域获取运行状态数据。
34.具体的,在需要时(例如,在需要进行散热控制,或需要进行功耗控制,或需要显示gpu的运行状态数据等),可以从备份区域获取各个gpu的数据,进而对获取到的数据(包括数据头和数据块,下文将详细介绍,此处不再赘述)进行解析,获取到相应的运行状态数据。
35.结合上面的例子,在所述目标存储分区的数据备份至所述目标备份分区后,本步骤中,就将备份分区21到备份分区225置于解锁状态。
36.本实施例提供的方法,首先,通过在服务器上配置用于存储多个gpu的运行状态数据的存储区域和备份区域,并在存储区域设置对应于每个gpu的存储分区,在备份区域设置有对应于每个存储分区的备份分区,这样,通过建立如上存储配置,可将每个gpu的运行状态数据存储到对应的位置,可统筹管理每个gpu的运行状态数据。
37.进一步的,本实施例提供的方法,通过基于多个处理线程并行采集并更新每个所述存储分区的数据,并在所述多个处理线程中的任一处理线程确定目标存储分区的数量达到指定数量时,基于该处理线程将所述目标存储分区的数据备份至目标备份分区,并将所述目标备份分区置于锁定状态;其中,所述目标存储分区为所述多个存储分区中已完成更新的存储分区;所述目标备份分区为所述备份区域中与所述目标存储分区对应的备份分区,进而在所述目标存储分区的数据备份至所述目标备份分区后,将所述目标备份分区置于解锁状态,以从所述备份区域获取运行状态数据。这样,一方面,采用多个处理线程并行采集并更新每个存储分区的数据,这样,由于多个处理线程并行执行采集并更新的操作,可及时、快速的获取运行状态数据,提高运行状态数据的实时性。另一方面,本实施例提供的方法,当某个处理线程在确定目标存储分区的数量达到指定数量时,该处理线程去执行备份操作,将目标存储分区的数据备份至备份区域,此时,由于指定数量小于多个gpu的数量,这样,在备份的同时,针对当前未开始监测的存储分区,其他处理线程可以去采集并更新该存储分区的数据,这样,即使在备份的过程中,处理线程也可以继续执行采集并更新的操作,即处理线程可不停歇的执行采集并更新的操作,可最大限度的利用处理线程,避免处理线程空闲,可进一步及时、快速的获取运行状态数据,进一步提高运行状态数据的实时性。
38.图3为本技术提供的运行状态监测方法实施例二的流程图。本实施例提供的方法,在上述实施例的基础上,所述基于所述多个处理线程并行采集并更新每个所述存储分区的数据,包括:s301、基于所述多个处理线程中的每个处理线程遍历所述多个存储分区,在遍历至状态信息为未开始监测状态的第一存储分区时,将所述第一存储分区的状态信息更新为
采集状态。
39.需要说明的是,存储分区的数据包括数据头和数据块,其中,数据头包括用于标识gpu是否在位的标识信息、用于标识gpu种类的种类信息、以及用于标识存储分区的状态的状态信息;数据块包括gpu的运行状态数据。
40.状态信息指的是存储分区的状态,包括未开始监测状态、采集状态和完成状态。例如,一实施例中,用0表征未开始监测状态,用1表征采集状态,用2表征完成状态。其中,当存储分区处于未开始监测状态时,此时,表征当前时刻没有处理线程在采集并更新该存储分区的数据,任何处理线程可去采集并更新该存储分区的数据;进一步的,当存储分区处于采集状态时,表征当前时刻某个处理线程正在采集并更新该存储分区的数据,其他处理线程不能再去采集并更新该处理分区的数据。进一步的,当存储分区处于完成状态时,表征当前时刻该存储分区的数据已被某个处理线程采集并更新。
41.具体的,处理线程在遍历每个存储分区时,可根据存储分区存储的数据的数据头中的状态信息来确定该存储分区当前所出的状态。
42.其中,第一存储分区指的是状态信息为未开始检测状态的存储分区。结合上面的例子,例如,处理线程1开始遍历多个存储分区,当其遍历到存储分区11时,发现存储分区11的数据的数据头中状态信息为未开始检测状态,此时,处理线程1确定由本线程来采集并更新存储分区11的数据,进一步的,处理线程1将存储分区11的状态信息更新为采集状态,以避免其他处理线程再来采集并更新存储分区11的数据。
43.s302、采集所述第一存储分区对应的第一gpu的运行状态,并根据采集结果更新所述第一存储分区的数据。
44.具体的,第一gpu指的是第一存储分区对应的gpu。结合上面的例子,存储分区11对应的gpu为gpu1,处理线程1在采集gpu1的运行状态时,在gpu1不在位时,此时,无法采集到运行状态数据,采集结果仅包含用于标识gpu不在位的标识信息,此时,就更新存储分区11存储的数据的数据头,即就将存储分区11存储的数据中的数据头中的标识信息更新为不在位。
45.进一步的,在gpu1在位时,此时,可以采集到运行状态数据,采集结果除了包含用于标识gpu在位的标识信息,还包含采集到的运行状态数据,此时,就更新存储分区11存储的数据的数据头和数据块,即就将存储分区11存储的数据中的数据头中的标识信息更新为在位,并将数据块更新为当前采集到的运行状态数据。
46.s303、在成功更新所述第一存储分区存储的数据后,将所述第一存储分区的状态信息更新为完成状态。
47.结合上面的例子,例如,处理线程1更新完存储分区11的数据后,将存储分区11的状态信息更新为完成状态。结合上面的例子,就将存储分区的状态信息更新为2。
48.s304、更新本线程当前已遍历的存储分区的数量。
49.具体的,具体实现时,将本线程当前已遍历的存储分区的数量记为x,本步骤中,就把x更新为x+1,即把本线程当前已遍历的存储分区的数量更新为当前值加1后的值。
50.s305、在本线程当前已遍历的存储分区的数量小于所述多个gpu的数量时,继续遍历,直至本线程当前已遍历的存储分区的数目等于所述多个gpu的数量。
51.结合上面的例子,例如,多个gpu的数量为30,当处理线程1已遍历的存储分区的数
量为20时,此时,处理线程1已遍历的存储分区的数量小于多个gpu的数量,此时,继续遍历,直至处理线程1已遍历的存储分区的数量达到30时,结束本轮遍历。
52.本实施例提供的方法,通过基于所述多个处理线程中的每个处理线程遍历所述多个存储分区,在遍历至状态信息为未开始监测状态的第一存储分区时,将所述第一存储分区的状态信息更新为采集状态,并采集所述第一存储分区对应的第一gpu的运行状态,并根据采集结果更新所述第一存储分区的数据,进而在成功更新所述第一存储分区存储的数据后,将所述第一存储分区的状态信息更新为完成状态,并更新本线程当前已遍历的存储分区的数量,从而在本线程当前已遍历的存储分区的数量小于所述多个gpu的数量时,继续遍历,直至本线程当前已遍历的存储分区的数目等于所述多个gpu的数量。给出了一种利用多个处理线程并行采集并更新每个存储分区的数据的实现方案,基于该方案,可及时、快速的监测gpu的运行状态,实时性强,效率高。
53.图4为本技术提供的运行状态监测方法实施例三的流程图。请参照图4,本实施例提供的方法,所述方法包括:s401、遍历所述多个存储分区,判断当前遍历到的存储分区的状态信息是否为未开始监测状态。若是,执行步骤s402,若否,执行步骤s408。
54.s402、将所述存储分区的状态信息更新为采集状态。
55.s403、采集所述存储分区对应的gpu的运行状态,并根据采集结果更新所述存储分区的数据。
56.s404、在成功更新所述存储分区存储的数据后,将所述存储分区的状态信息更新为完成状态。
57.s405、更新本线程当前已遍历的存储分区的数量。
58.具体的,有关步骤s401-s405的具体实现过程可以参考上述实施例的描述,此处不再赘述。
59.s406、判断本线程当前已遍历的存储分区的数量是否等于所述多个gpu的数量,若小于所述多个gpu的数量,执行步骤s401,若等于所述多个gpu的数量,执行步骤s407。
60.s407、按照与上一次遍历相反的遍历顺序,再次遍历所述多个存储区域。
61.结合上面的例子,例如,多个gpu的数量为30,当处理线程1已遍历的存储分区的数量为20时,此时,处理线程1已遍历的存储分区的数量小于多个gpu的数量,处理线程1按照本轮遍历的遍历顺序继续遍历,例如,本轮遍历的遍历顺序为从前往后遍历,此时,则继续遍历第21个存储分区。
62.进一步的,当处理线程1已遍历的存储分区的数量为30时,此时,处理线程1已遍历的存储分区的数量等于多个gpu的数量,即处理线程1已完成本轮遍历,则按照与上一次遍历相反的遍历顺序,再次遍历所述多个存储区域。结合上面的例子,例如,本轮遍历的遍历顺序为从前往后遍历,此时,则按照从后往前的顺序,再次遍历多个存储分区,即按照从gpu30到gpu1的顺序,再次遍历所有的存储分区。
63.s408、判断当前遍历到的存储分区的状态信息是否为完成状态。若是,执行步骤s409,若否,执行步骤s405。
64.s409、更新目标存储分区的数量。
65.具体的,为方便区分,将目标存储分区的数量记为y,本步骤中,就把y更新为y+1,
即把目标存储分区的数量更新为当前值加1后的值。
66.s410、判断目标存储分区的数量是否等于所述指定数量,若等于所述指定数量,执行步骤s411,若小于所述指定数量,执行步骤s405。
67.参见前面的介绍,指定数量的值小于服务器包含的gpu的数量,例如,指定数量为25。
68.s411、将所述目标存储分区的数据备份至目标备份分区,并将所述目标备份分区置于锁定状态;其中,所述目标存储分区为所述多个存储分区中已完成更新的存储分区;所述目标备份分区为所述备份区域中与所述目标存储分区对应的备份分区。
69.s412、在所述目标存储分区的数据备份至所述目标备份分区后,将所述目标备份分区置于解锁状态,以从所述备份区域获取运行状态数据。
70.具体的,有关步骤s411-s412的具体实现过程可以参考上述实施例中的描述,此处不再赘述。
71.s413、将所述目标存储分区的状态信息更新为未开始监测状态,并将目标存储分区的数量更新为初始值,再次执行步骤s405。
72.具体的,目标存储分区的数量的初始值为0。结合上面的例子,例如,处理线程1将存储分区11到存储分区125的数据备份至备份分区21到备份分区225后,将存储分区11到存储分区125的状态信息更新为未开始监测状态,并将目标存储分区的数量(当前已完成更新的存储分区的数量)更新为0,以待下一轮更新。
73.本实施例提供的运行状态监测方法,通过基于多个处理线程并行采集并更新每个所述存储分区的数据,并在所述多个处理线程中的任一处理线程确定目标存储分区的数量达到指定数量时,基于该处理线程将所述目标存储分区的数据备份至目标备份分区,并将所述目标备份分区置于锁定状态;其中,所述目标存储分区为所述多个存储分区中已完成更新的存储分区;所述目标备份分区为所述备份区域中与所述目标存储分区对应的备份分区,进而在所述目标存储分区的数据备份至所述目标备份分区后,将所述目标备份分区置于解锁状态,以从所述备份区域获取运行状态数据。这样,一方面,采用多个处理线程并行采集并更新每个存储分区的数据,这样,由于多个处理线程并行执行采集并更新的操作,可及时、快速的获取运行状态数据,提高运行状态数据的实时性。另一方面,本实施例提供的方法,当某个处理线程在确定目标存储分区的数量达到指定数量时,该处理线程去执行备份操作,将目标存储分区的数据备份至备份区域,此时,由于指定数量小于多个gpu的数量,这样,在备份的同时,针对当前未开始监测的存储分区,其他处理线程可以去采集并更新该存储分区的数据,这样,即使在备份的过程中,处理线程也可以继续执行采集并更新的操作,即处理线程可不停歇的执行采集并更新的操作,可最大限度的利用处理线程,避免处理线程空闲,可进一步及时、快速的获取运行状态数据,进一步提高运行状态数据的实时性。
74.与前述运行状态监测方法的实施例相对应,本技术还提供了运行状态监测装置的实施例。
75.本技术提供的运行状态监测装置的实施例可以应用在服务器上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在服务器的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,为本技术提供的运行状态监测
装置所在服务器的一种硬件结构图,除了图5所示的处理器、内存、网络接口、以及非易失性存储器之外,实施例中装置所在的服务器通常根据该运行状态监测装置的实际功能,还可以包括其他硬件,对此不再赘述。
76.图6为本技术提供的运行状态监测装置实施例一的结构示意图。请参照图6,本实施例提供的装置,所述装置应用于服务器,所述服务器包括多个图形处理器gpu,所述服务器包括用于存储所述多个gpu的运行状态数据的存储区域和备份区域,所述存储区域设置有对应于每个所述gpu的存储分区;所述备份区域设置有对应于每个所述存储分区的备份分区;所述装置可以包括更新模块610、备份模块620和解锁模块630;其中,所述更新模块610,用于基于多个处理线程并行采集并更新每个所述存储分区的数据;所述备份模块620,用于在所述多个处理线程中的任一处理线程确定目标存储分区的数量达到指定数量时,基于该处理线程将所述目标存储分区的数据备份至目标备份分区,并将所述目标备份分区置于锁定状态;其中,所述目标存储分区为所述多个存储分区中已完成更新的存储分区;所述目标备份分区为所述备份区域中与所述目标存储分区对应的备份分区;所述解锁模块630,用于在所述目标存储分区的数据备份至所述目标备份分区后,将所述目标备份分区置于解锁状态,以从所述备份区域获取运行状态数据。
77.本实施例提供的装置,可用以执行图1所示方法实施例的技术方案,其实现原理和技术效果类似,此处不再赘述。
78.本实施例提供的运行状态监测装置,通过基于多个处理线程并行采集并更新每个所述存储分区的数据,并在所述多个处理线程中的任一处理线程确定目标存储分区的数量达到指定数量时,基于该处理线程将所述目标存储分区的数据备份至目标备份分区,并将所述目标备份分区置于锁定状态;其中,所述目标存储分区为所述多个存储分区中已完成更新的存储分区;所述目标备份分区为所述备份区域中与所述目标存储分区对应的备份分区,进而在所述目标存储分区的数据备份至所述目标备份分区后,将所述目标备份分区置于解锁状态,以从所述备份区域获取运行状态数据。这样,一方面,采用多个处理线程并行采集并更新每个存储分区的数据,这样,由于多个处理线程并行执行采集并更新的操作,可及时、快速的获取运行状态数据,提高运行状态数据的实时性。另一方面,本实施例提供的方法,当某个处理线程在确定目标存储分区的数量达到指定数量时,该处理线程去执行备份操作,将目标存储分区的数据备份至备份区域,此时,由于指定数量小于多个gpu的数量,这样,在备份的同时,针对当前未开始监测的存储分区,其他处理线程可以去采集并更新该存储分区的数据,这样,即使在备份的过程中,处理线程也可以继续执行采集并更新的操作,即处理线程可不停歇的执行采集并更新的操作,可最大限度的利用处理线程,避免处理线程空闲,可进一步及时、快速的获取运行状态数据,进一步提高运行状态数据的实时性。
79.可选的,所述更新模块610,具体用于:基于所述多个处理线程中的每个处理线程遍历所述多个存储分区,在遍历至状态信息为未开始监测状态的第一存储分区时,将所述第一存储分区的状态信息更新为采集状态;采集所述第一存储分区对应的第一gpu的运行状态,并根据采集结果更新所述第
一存储分区的数据;在成功更新所述第一存储分区存储的数据后,将所述第一存储分区的状态信息更新为完成状态;更新本线程当前已遍历的存储分区的数量;在本线程当前已遍历的存储分区的数量小于所述多个gpu的数量时,继续遍历,直至本线程当前已遍历的存储分区的数目等于所述多个gpu的数量。
80.可选的,在遍历至状态信息为完成状态的存储分区时,所述更新模块610,具体用于:更新目标存储分区的数量;在目标存储分区的数量小于所述指定数量时,执行更新本线程当前已遍历的存储分区的数量的步骤;在目标存储分区的数量等于所述指定数量时,执行将所述目标存储分区的数据备份至目标备份分区的步骤。
81.可选的,在所述目标存储分区的数据备份至所述目标备份分区之后,所述更新模块610,具体用于:将所述目标存储分区的状态信息更新为未开始监测状态,并将目标存储分区的数量更新为初始值;执行更新本线程当前已遍历的存储分区的数量的步骤。
82.可选的,在遍历至状态信息为采集状态的存储分区时,所述更新模块610,具体用于:执行更新本线程当前已遍历的存储分区的数量的步骤。
83.可选的,在本线程当前已遍历的存储分区的数量等于所述多个gpu的数量时,所述更新模块610,具体用于:按照与上一次遍历相反的遍历顺序,再次遍历所述多个存储区域。
84.请继续参照图5,本技术还提供一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现本技术第一方面提供的任一项所述方法的步骤。
85.本技术还提供一种计算机可读存储介质,其上存储有计算机程序所述程序被处理器执行时实现本技术第一方面提供的任一项所述方法的步骤。
86.上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
87.对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本技术方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
88.以上所述仅为本技术的较佳实施例而已,并不用以限制本技术,凡在本技术的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本技术保护的范围之内。

技术特征:
1.一种运行状态监测方法,其特征在于,所述方法应用于服务器,所述服务器包括多个图形处理器gpu,所述服务器包括用于存储所述多个gpu的运行状态数据的存储区域和备份区域,所述存储区域设置有对应于每个所述gpu的存储分区;所述备份区域设置有对应于每个所述存储分区的备份分区;所述方法包括:基于多个处理线程并行采集并更新每个所述存储分区的数据;在所述多个处理线程中的任一处理线程确定目标存储分区的数量达到指定数量时,基于该处理线程将所述目标存储分区的数据备份至目标备份分区,并将所述目标备份分区置于锁定状态;其中,所述目标存储分区为所述多个存储分区中已完成更新的存储分区;所述目标备份分区为所述备份区域中与所述目标存储分区对应的备份分区;在所述目标存储分区的数据备份至所述目标备份分区后,将所述目标备份分区置于解锁状态,以从所述备份区域获取运行状态数据。2.根据权利要求1所述的方法,其特征在于,所述基于多个处理线程并行采集并更新每个所述存储分区的数据,包括:基于所述多个处理线程中的每个处理线程遍历所述多个存储分区,在遍历至状态信息为未开始监测状态的第一存储分区时,将所述第一存储分区的状态信息更新为采集状态;采集所述第一存储分区对应的第一gpu的运行状态,并根据采集结果更新所述第一存储分区的数据;在成功更新所述第一存储分区的数据后,将所述第一存储分区的状态信息更新为完成状态;更新本线程当前已遍历的存储分区的数量;在本线程当前已遍历的存储分区的数量小于所述多个gpu的数量时,继续遍历,直至本线程当前已遍历的存储分区的数目等于所述多个gpu的数量。3.根据权利要求2所述的方法,其特征在于,在遍历至状态信息为完成状态的存储分区时,所述方法还包括:更新目标存储分区的数量;在目标存储分区的数量小于所述指定数量时,执行更新本线程当前已遍历的存储分区的数量的步骤;在目标存储分区的数量等于所述指定数量时,执行将所述目标存储分区的数据备份至目标备份分区的步骤。4.根据权利要求 3所述的方法,其特征在于,在所述目标存储分区的数据备份至所述目标备份分区之后,所述方法还包括:将所述目标存储分区的状态信息更新为未开始监测状态,并将目标存储分区的数量更新为初始值;执行更新本线程当前已遍历的存储分区的数量的步骤。5.根据权利要求2所述的方法,其特征在于,在遍历至状态信息为采集状态的存储分区时,所述方法还包括:执行更新本线程当前已遍历的存储分区的数量的步骤。6.根据权利要求2-5任一项所述的方法,其特征在于,在本线程当前已遍历的存储分区的数量等于所述多个gpu的数量时,所述方法还包括:
按照与上一次遍历相反的遍历顺序,再次遍历所述多个存储区域。7.一种运行状态监测装置,其特征在于,所述装置应用于服务器,所述服务器包括多个图形处理器gpu,所述服务器包括用于存储所述多个gpu的运行状态数据的存储区域和备份区域,所述存储区域设置有对应于每个所述gpu的存储分区;所述备份区域设置有对应于每个所述存储分区的备份分区;所述装置包括更新模块、备份模块和解锁模块;其中,所述更新模块,用于基于多个处理线程并行采集并更新每个所述存储分区的数据;所述备份模块,用于在所述多个处理线程中的任一处理线程确定目标存储分区的数量达到指定数量时,基于该处理线程将所述目标存储分区的数据备份至目标备份分区,并将所述目标备份分区置于锁定状态;其中,所述目标存储分区为所述多个存储分区中已完成更新的存储分区;所述目标备份分区为所述备份区域中与所述目标存储分区对应的备份分区;所述解锁模块,用于在所述目标存储分区的数据备份至所述目标备份分区后,将所述目标备份分区置于解锁状态,以从所述备份区域获取运行状态数据。8.根据权利要求7所述的装置,其特征在于,所述更新模块,具体用于:基于所述多个处理线程中的每个处理线程遍历所述多个存储分区,在遍历至状态信息为未开始监测状态的第一存储分区时,将所述第一存储分区的状态信息更新为采集状态;采集所述第一存储分区对应的第一gpu的运行状态,并根据采集结果更新所述第一存储分区的数据;在成功更新所述第一存储分区的数据后,将所述第一存储分区的状态信息更新为完成状态;更新本线程当前已遍历的存储分区的数量;在本线程当前已遍历的存储分区的数量小于所述多个gpu的数量时,继续遍历,直至本线程当前已遍历的存储分区的数目等于所述多个gpu的数量。9.一种服务器,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-6任一项所述方法的步骤。10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1-6任一项所述方法的步骤。

技术总结
本申请提供的运行状态监测方法,应用于服务器,所述服务器包括多个图形处理器GPU,所述服务器包括用于存储多个GPU的运行状态数据的存储区域和备份区域,存储区域设置有对应于每个GPU的存储分区;备份区域设置有对应于每个存储分区的备份分区,所述方法包括:基于多个处理线程并行采集并更新每个存储分区的数据;在多个处理线程中的任一处理线程确定已完成更新的目标存储分区的数量达到指定数量时,基于该处理线程将目标存储分区的数据备份至目标备份分区,并将目标备份分区置于锁定状态;在目标存储分区的数据备份至目标备份分区后,将目标备份分区置于解锁状态。本申请提供的运行状态监测方法、装置和服务器,可及时、快速的监测运行状态数据。监测运行状态数据。监测运行状态数据。


技术研发人员:公衍宾 俞跃渊 万大炎
受保护的技术使用者:安擎计算机信息股份有限公司
技术研发日:2023.08.31
技术公布日:2023/10/6
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐