CN110309036B - 一种cpu占用率检测方法及检测设备 - Google Patents

一种cpu占用率检测方法及检测设备 Download PDF

Info

Publication number
CN110309036B
CN110309036B CN201810258157.2A CN201810258157A CN110309036B CN 110309036 B CN110309036 B CN 110309036B CN 201810258157 A CN201810258157 A CN 201810258157A CN 110309036 B CN110309036 B CN 110309036B
Authority
CN
China
Prior art keywords
thread
operating system
data plane
storage area
time period
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.)
Active
Application number
CN201810258157.2A
Other languages
English (en)
Other versions
CN110309036A (zh
Inventor
徐永新
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN201810258157.2A priority Critical patent/CN110309036B/zh
Publication of CN110309036A publication Critical patent/CN110309036A/zh
Application granted granted Critical
Publication of CN110309036B publication Critical patent/CN110309036B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3452Performance evaluation by statistical analysis

Abstract

本申请实施例公开了一种CPU占用率检测方法及检测设备,该检测设备包括虚拟网络设备和用于计算CPU占用率的统计工具,该虚拟网络设备运行在检测设备的客户机操作系统上,该虚拟网络设备包括至少一个数据面线程,其中,应用于该检测设备的方法包括:通过统计工具获取第一时长,该第一时长为第一数据面线程在预设时间段内处理事务的总时长,该第一数据面线程为虚拟网络设备包括的数据面线程;通过统计工具将第一时长与预设时间段的比值确定为CPU占用率。可见,通过实施本申请实施例,得到的CPU占用率可以体现出数据面线程或虚拟核的实际负载情况。

Description

一种CPU占用率检测方法及检测设备
技术领域
本申请涉及通信技术领域,尤其涉及一种CPU占用率检测方法及检测设备。
背景技术
网络功能虚拟化(network function virtualization,NFV)的核心思想是将传统的物理网络设备的功能使用软件的方式在虚拟机上面实现。这种方式使得传统的分离的单个物理网络设备能够以软件的方式集中部署在一台物理设备上,共享物理资源,提升了网络设备部署和升级以及运维的效率,并降低了成本。例如,在不采用网络功能虚拟化的情况下,需要部署路由器、交换机和防火墙设备这三种等多种物理网络设备。采用网络功能虚拟化之后,可将路由器、交换机和防火墙设备通过虚拟化技术集成到通用服务器,例如,x86服务器上。然后通过通用服务器执行路由器、交换机和防火墙的功能。
图1是一种通过NFV技术集成网络设备功能的设备的层次结构示意图。如图1所示,该设备包括物理服务器、主机操作系统(hostOS)、虚拟化层、客户机操作系统(guestOS)、虚拟网络设备的控制面和数据面。其中,物理服务器由中央处理器(central processingunit,CPU)、存储器、硬盘和网卡等组成。hostOS为直接运行在物理服务器上的操作系统,例如,hostOS可以为直接运行在物理服务器上的linux操作系统。虚拟化层是运行在hostOS上的用于实现虚拟机的机制。guestOS是运行在虚拟机里面的操作系统,例如,guestOS可以为运行在虚拟机中的linux操作系统。控制面和数据面运行在guestOS上。控制面和数据面用于实现虚拟网络设备(如虚拟路由器、虚拟交换机和虚拟防火墙等)的功能。控制面用于处理控制信息。数据面用于处理网络设备接口上的报文,例如,快速转发网络设备接口上的报文。
图2是一种数据面线程、虚拟核和物理核绑定关系的示意图。如图2所示,C1/C2/C3/C4分别是物理服务器CPU上面4个物理核,Ca/Cb/Cc/Cd是虚拟机里面的虚拟核,虚拟核实质上是运行在HostOS上的线程。每个虚拟核分别一一绑定到物理核。每个数据面线程又一一绑定到虚拟核。
为了保证网络设备的转发高性能,低时延,即使数据面线程没有需要处理的事务,一个数据面线程也一直占据一个虚拟核。线程的CPU占用率等于该线程的运行时间占据CPU总的运行时间的百分比。因此,从guestOS角度看,数据面线程永远运行并且独占一个虚拟核,那么该数据面线程的CPU占用率永远是100%。从hostOS的角度看,虚拟核是运行在hostOS上的一个线程,该虚拟核永远运行并且独占一个物理核,那么该虚拟核的CPU占用率永远是100%。可见,从guestOS看到的数据面线程的CPU占用率永远是100%,从hostOS看到的虚拟核的CPU占用率也永远是100%,通过这种方式计算得到的CPU占用率,无法体现数据面线程或虚拟核的实际负载情况。
发明内容
本申请提供了一种CPU占用率检测方法及检测设备,计算得到的CPU占用率能够体现数据面线程或虚拟核的实际负载情况。
第一方面,本申请提供了一种CPU占用率检测方法,应用于检测设备,检测设备包括虚拟网络设备和用于计算CPU占用率的统计工具,虚拟网络设备运行在检测设备的客户机操作系统上,虚拟网络设备包括至少一个数据面线程,该方法包括:通过统计工具获取第一时长,该第一时长为第一数据面线程在预设时间段内处理事务的总时长,该第一数据面线程为虚拟网络设备包括的数据面线程;通过统计工具将第一时长与预设时间段的比值确定为CPU占用率。
可见,通过第一方面所描述的方法,检测设备检测到的CPU占用率是根据数据面线程在预设时间段内处理事务的总时长计算得到的。因此,该CPU占用率可以体现出数据面线程或与数据面线程绑定的虚拟核的实际繁忙程度,即CPU占用率可以体现出数据面线程或与数据面线程绑定的虚拟核的实际负载情况。
在第一种可能的实施方式中,检测设备还通过目标线程向存储区域写入第一数据面线程在预设时间段内处理事务的所有处理时长,该目标线程为运行在客户机操作系统上的线程;相应地,检测设备通过统计工具获取第一时长的具体实施方式为:通过统计工具从存储区域中获取第一数据面线程在预设时间段内处理事务的所有处理时长;通过统计工具根据从存储区域中获取的所有处理时长,计算得到第一时长。
通过实施该实施方式,可准确地获取第一时长。
在第二种可能的实施方式中,上述统计工具为运行在客户机操作系统下的工具,上述存储区域为客户机操作系统与目标线程之间共享的存储区域,或上述存储区域为统计工具与目标线程之间共享的存储区域;上述CPU占用率为第一数据面线程的CPU占用率。
在该实施方式中,由于第一数据面线程是运行在客户机操作系统下的,因此,可通过运行在客户机操作系统下的统计工具来获取第一时长,并将第一时长与预设时间段的比值确定为第一数据面线程的CPU占用率。通过该实施方式可准确地确定出第一数据面线程的CPU占用率。
可选地,检测设备通过运行在客户机操作系统下的统计工具,将第一时长与预设时间段的比值确定为第一数据面线程的CPU占用率之后,可通过运行在客户机操作系统下的统计工具显示第一数据面线程的CPU占用率。这样有利于用户了解第一数据面线程对应的虚拟核的CPU占用率。
在第三种可能的实施方式中,上述统计工具为运行在主机操作系统下的工具,上述存储区域为主机操作系统与目标线程之间共享的存储区域;上述CPU占用率为与第一数据面线程绑定的虚拟核的CPU占用率。
在该实施方式中,由于第一数据面线程对应的虚拟核是运行在主机操作系统下的,因此,可通过运行在主机操作系统下的统计工具来获取第一时长,并将第一时长与预设时间段的比值确定为第一数据面线程对应的虚拟核的CPU占用率。通过该实施方式可准确地确定出第一数据面线程对应的虚拟核的CPU占用率。
可选地,检测设备通过运行在主机操作系统下的统计工具,将第一时长与预设时间段的比值确定为第一数据面线程对应的虚拟核的CPU占用率之后,可通过运行在主机操作系统下的统计工具显示第一数据面线程对应的虚拟核的CPU占用率。这样有利于用户了解第一数据面线程对应的虚拟核的CPU占用率。
在第五种可能的实施方式中,检测设备还包括主机操作系统,主机操作系统具有私有存储区域;检测设备通过运行在客户机操作系统中的第一线程发送第一数据面线程在预设时间段内处理事务的所有处理时长至第二线程,该第二线程为运行在主机操作系统下的线程;通过第二线程将该所有处理时长写入私有存储区域;检测设备通过统计工具获取第一时长的具体实施方式为:通过运行在主机操作系统下的统计工具,从私有存储区域中获取第一数据面线程在预设时间段内处理事务的所有处理时长;通过运行在主机操作系统下的统计工具根据从私有存储区域中获取的所有处理时长,计算得到第一时长;通过统计工具将第一时长与预设时间段的比值确定为CPU占用率的具体实施方式为:通过运行在主机操作系统下的统计工具将第一时长与预设时间段的比值确定为与第一数据面线程绑定的虚拟核的CPU占用率。
通过实施该实施方式,主机操作系统并不与客户机操作系统上的线程之间共享存储区域,主机操作系统具有私有存储区域,客户机操作系统上的线程不能直接在主机操作系统的私有存储区域写入数据,这样能够提高客户机操作系统存储区域的安全性。
第二方面,提供了一种检测设备,该检测设备可执行上述第一方面或第一方面可能的实施方式中的方法。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的单元。该单元可以是软件和/或硬件。基于同一发明构思,该检测设备解决问题的原理以及有益效果可以参见上述第一方面或第一方面可能的实施方式中以及有益效果,重复之处不再赘述。
第三方面,提供了一种检测设备,该检测设备包括:处理器、存储器、通信接口;处理器、通信接口和存储器相连;其中,通信接口可以为收发器。通信接口用于实现与其他网元之间的通信。其中,一个或多个程序被存储在存储器中,该处理器调用存储在该存储器中的程序以实现上述第一方面或第一方面可能的实施方式中的方案,该检测设备解决问题的实施方式以及有益效果可以参见上述第一方面或第一方面可能的实施方式以及有益效果,重复之处不再赘述。
第四方面,提供了一种计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面的方法或第一方面的可能的实施方式中实现方式中的方法。
第五方面,提供了一种检测设备的芯片产品,执行上述第一方面或第一方面的任意可能的实施方式中的方法。
第六方面,提了供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面的方法或第一方面的可能的实施方式中实现方式中的方法。
附图说明
图1是一种通过NFV技术集成网络设备功能的设备的层次结构示意图;
图2是一种数据面线程、虚拟核和物理核绑定关系的示意图;
图3是本申请实施例提供的一种虚拟网络设备的CPU占用率检测方法的流程示意图;
图4~图9是本申请实施例提供的检测设备检测CPU占用率的示意图;
图10是本申请实施例提供的一种检测设备的结构示意图;
图11是本申请实施例提供的另一种检测设备的结构示意图。
具体实施方式
下面结合附图对本申请具体实施例作进一步的详细描述。
为使计算得到的CPU占用率能够体现数据面线程或与数据面线程绑定的虚拟核的实际负载情况,本申请公开了一种CPU占用率检测方法及检测设备。
本发明实施例中的检测设备为通过NFV技术集成虚拟网络设备的设备。例如,检测设备可以为通过NFV技术集成虚拟网络设备的x86服务器等。如图1所示,检测设备包括物理服务器、主机操作系统(hostOS)、虚拟化层、客户机操作系统(guestOS)和虚拟网络设备。虚拟网络设备包括的控制面和数据面。其中,虚拟网络设备可以为虚拟路由器、虚拟交换机和虚拟防火墙设备等。
其中,物理服务器由物理CPU、存储器、硬盘和网卡等物理器件组成。主机操作系统为直接运行在物理服务器上的操作系统。虚拟化层是运行在主机操作系统上的用于实现虚拟机的机制。客户机操作系统是运行在虚拟机里面的操作系统。虚拟网络设备运行在客户机操作系统上,即虚拟网络设备包括的控制面和数据面运行在客户机操作系统上。控制面的控制面线程用于处理控制信息。数据面的数据面线程用于处理网络设备接口上的报文,例如,快速转发网络设备接口上的报文。
另外检测设备还包括物理CPU、虚拟CPU和用于计算CPU占用率的统计工具,图1中未示出。检测设备的物理CPU包括至少一个物理核,检测设备的虚拟CPU包括至少一个虚拟核,检测设备的虚拟CPU运行在主机操作系统上,虚拟核相当于运行在主机操作系统上的线程。虚拟网络设备的数据面线程与虚拟核一一绑定,虚拟核与物理核一一绑定。例如图2所示,以物理CPU包括多个物理核,虚拟CPU包括多个虚拟核为例。如图2所示,数据面线程1与虚拟核Ca绑定,虚拟核Ca与物理核C1绑定。其他数据面线程同理,在此不赘述。
检测设备的客户机操作系统上可运行一个用于计算CPU占用率的统计工具,检测设备的主机操作系统上可运行一个用于计算CPU占用率的统计工具。
请参见图3,图3是本申请实施例提供的CPU占用率检测方法的流程示意图。如图3所示,该CPU占用率检测方法包括如下步骤301和302。
步骤301、检测设备通过统计工具获取第一时长。
其中,该第一时长为第一数据面线程在预设时间段内处理事务的总时长。其中,第一数据面线程可以是运行在检测设备的客户机操作系统上的虚拟网络设备的任意一个数据面线程。例如,如图2所示,第一数据面线程可以为数据面线程1~4中的任意一个。
第一数据面线程在预设时间段内处理的事务可以包括收发数据包、对数据包进行其他处理和处理定时器事件等。
可选地,检测设备以设定的时间周期计算CPU占用率,该预设时间段为一个时间周期的时长,例如可以为0.5秒。
步骤302、检测设备通过统计工具将第一时长与预设时间段的比值确定为CPU占用率。
本申请实施例中,检测设备获取第一时长之后,将第一时长与预设时间段的比值确定为CPU占用率。
举例来说,预设时间段为0.5秒,第一数据面线程在预设时间段进行了两次收发数据包,第一次收发数据包的处理时长为100毫秒、第二次收发数据包的处理时长为150毫秒。因此,第一数据面线程在预设时间段内收发数据包的总时长为250毫秒,即第一时长为250毫秒。检测设备将250毫秒与0.5秒的比值确定为CPU占用率,即CPU占用率为50%。
可见,通过实施图3所描述的方法,检测设备检测到的CPU占用率是根据数据面线程在预设时间段内处理事务的总时长计算得到的。因此,CPU占用率可以体现出数据面线程或与数据面线程绑定的虚拟核的实际繁忙程度,即CPU占用率可以体现出数据面线程或与数据面线程绑定的虚拟核的实际负载情况。
可选地,检测设备确定CPU占用率之后,可通过统计工具显示CPU占用率。这样,可便于用户了解数据面线程或与数据面线程绑定的虚拟核的CPU占用率。用户基于获取到的数据面线程或与数据面线程绑定的虚拟核的实际负载情况,可以确定网络流量的大小或判断CPU是否能满足用户的业务需求或判断不同业务配置对不同的CPU的消耗,或可利用数据面线程的负载数据决定是否动态扩展收缩数据面线程的数量等等。
在第一种可能的实施方式中,检测设备可通过目标线程向存储区域写入第一数据面线程在预设时间段内处理事务的所有处理时长,该目标线程为运行在客户机操作系统上的线程;步骤301,即通过统计工具获取第一时长的具体实施方式为:通过统计工具从存储区域中获取第一数据面线程在预设时间段内处理事务的所有处理时长;通过统计工具根据从存储区域中获取的所有处理时长,计算得到第一时长。其中,存储区域可以是内存区域,或可以是硬盘等存储区域。通过这样,可准确地获取第一时长。
具体地,检测设备可通过第一数据面线程确定在预设时间段内处理事务的所有处理时长。例如,第一数据面线程在接收到数据包之后,获取当前CPU时钟为T1,在第一数据面线程处理完数据包之后,获取当前CPU时钟为T2。第一数据面线程确定第一数据面线程在预设时间段内处理数据包的处理时长DT=T2-T1。
该目标线程可以为运行在客户机操作系统上的第一数据面线程。也就是说,第一数据面线程确定DT之后,可将DT直接写入存储区域。
目标线程也可以为运行在客户机操作系统上的除第一数据线程之外的线程。也就是说,第一数据面线程确定DT之后,可通过运行在客户机操作系统上的其他线程将DT写入存储区域。
可选地,通过统计工具根据从存储区域中获取的所有处理时长,计算得到第一时长的具体实施方式为:通过统计工具将从存储区域中获取的所有处理时长之和确定为第一时长。
举例来说,以目标线程为第一数据面线程为例。第一数据面线程确定DT之后,将DT写入存储区域。若第一数据面线程向存储区域写入了第一数据面线程在预设时间段内处理事务的处理时长DT1和DT2,则检测设备通过统计工具从存储区域中获取DT1和DT2,并将DT1和DT2之和确定为第一时长。检测设备通过统计工具将第一时长与预设时间段的比值确定为CPU占用率。如果该统计工具为运行在客户机操作系统的工具,则确定的CPU占用率为第一数据面线程的CPU占用率。如果该统计工具为运行在主机操作系统的工具,则确定的CPU占用率为与第一数据面线程绑定的虚拟核的CPU占用率。
在第二种可选的实施方式中,步骤301和302中统计工具为运行在客户机操作系统下的工具,上述存储区域为客户机操作系统与目标线程之间共享的第一存储区域,或上述存储区域为统计工具与目标线程之间共享的第一存储区域。相应地,上述CPU占用率为第一数据面线程的CPU占用率。本申请实施例中的第一数据面线程的CPU占用率是指第一数据面线程对虚拟CPU的占有率。客户机操作系统与目标线程之间共享的第一存储区域是指客户机操作系统与目标线程均可使用的存储区域。统计工具与目标线程之间共享的第一存储区域是指统计工具与目标线程均可使用的存储区域。第一存储区域是客户机操作系统的存储区域。
在该实施方式中,由于第一数据面线程是运行在客户机操作系统下的,因此,可通过运行在客户机操作系统下的统计工具来获取第一时长,并将第一时长与预设时间段的比值确定为第一数据面线程的CPU占用率。通过第三种可能的实施方式可准确地确定出第一数据面线程的CPU占用率。
运行在客户机操作系统下的统计工具可以为客户机操作系统自身的统计工具,即通用统计工具,如linux的top工具。或者,运行在客户机操作系统下的统计工具也可以是专用统计工具,专用统计工具指不是客户机操作系统自身的统计工具,即专用统计工具可以是开发人员根据本申请的方案专门设计的统计工具。
可选地,当步骤301和302中统计工具为运行在客户机操作系统下的通用统计工具时,上述存储区域为客户机操作系统与目标线程之间共享的第一存储区域。运行在客户机操作系统下的通用统计工具需要通过客户机操作系统的标准接口来从共享的该第一存储区域中获取第一数据面线程在预设时间段内处理事务的所有处理时长。例如,客户机操作系统为linux时,客户机操作系统与目标线程之间共享的第一存储区域可以为linux的/proc/stat文件系统。
举例来说,如图4所示,图4以客户机操作系统与目标线程之间共享第一存储区域,第一数据面线程为数据面线程1,目标线程为数据面线程1为例。数据面线程1确定DT之后,将DT写入客户机操作系统与目标线程之间共享的第一存储区域。若数据面线程1向第一存储区域写入了数据面线程1在预设时间段内处理事务的处理时长DT1和DT2,则检测设备通过运行在客户机操作系统下的通用统计工具,通过客户机操作系统的标准接口从第一存储区域中获取DT1和DT2,并将DT1和DT2之和确定为第一时长。检测设备通过运行在客户机操作系统下的通用统计工具将第一时长与预设时间段的比值确定为数据面线程1的CPU占用率。
可选地,当步骤301和302中统计工具为运行在客户机操作系统下的专用统计工具时,上述存储区域为运行在客户机操作系统下的专用统计工具与目标线程之间共享的第一存储区域。当步骤301和302中统计工具为运行在客户机操作系统下的专用统计工具时,专用统计工具不需要通过客户机操作系统的标准接口来从共享的第一存储区域获取第一数据面线程在预设时间段内处理事务的所有处理时长,统计工具可直接从共享的第一存储区域获取第一数据面线程在预设时间段内的所有处理时长。
举例来说,如图5所示,图5以运行在客户机操作系统下的专用统计工具与目标线程之间共享第一存储区域,第一数据面线程为数据面线程1,目标线程为数据面线程1为例。数据面线程1确定DT之后,将DT写入客户机操作系统的专用统计工具与目标线程之间共享的第一存储区域。若数据面线程1向第一存储区域写入了数据面线程1在预设时间段内处理事务的处理时长DT1和DT2,则检测设备通过运行在客户机操作系统下的专用统计工具,从第一存储区域中获取DT1和DT2,并将DT1和DT2之和确定为第一时长。检测设备通过运行在客户机操作系统下的专用统计工具将第一时长与预设时间段的比值确定为数据面线程1的CPU占用率。
在第三种可选的实施方式中,步骤301和302中统计工具为运行在主机操作系统下的工具,上述存储区域为主机操作系统与目标线程之间共享的第二存储区域。相应地,302步骤中确定的CPU占用率为与第一数据面线程绑定的虚拟核的CPU占用率。本申请实施例中的与第一数据面线程绑定的虚拟核的CPU占用率是指与第一数据面线程绑定的虚拟核对物理CPU的占用率。主机操作系统与目标线程之间共享的第二存储区域是指主机操作系统与目标线程均可使用的存储区域。第二存储区域是主机操作系统的存储区域。
在该实施方式中,由于第一数据面线程对应的虚拟核是运行在主机操作系统下的,因此,可通过运行在主机操作系统下的统计工具来获取第一时长,并将第一时长与预设时间段的比值确定为第一数据面线程对应的虚拟核的CPU占用率。通过该实施方式可准确地确定出第一数据面线程对应的虚拟核的CPU占用率。
可选地,运行在主机操作系统下的统计工具可以为主机操作系统自身的统计工具,即通用统计工具,例如,linux的top工具。运行在主机操作系统下的通用统计工具需要通过主机操作系统的标准接口来从共享的第二存储区域获取第一数据面线程在预设时间段内处理事务的所有处理时长。在一种可能的实施方式中,主机操作系统为linux时,该存储区域可以为linux的/proc/stat文件系统。
举例来说,如图6所示,图6以主机操作系统与目标线程之间共享第二存储区域,第一数据面线程为数据面线程1,目标线程为数据面线程1为例。数据面线程1确定DT之后,将DT写入主机操作系统与目标线程之间共享的第二存储区域。若数据面线程1向第二存储区域写入了数据面线程1在预设时间段内处理事务的处理时长DT1和DT2,则检测设备通过运行在主机操作系统下的通用统计工具,从第二存储区域中获取DT1和DT2,并将DT1和DT2之和确定为第一时长。检测设备通过运行在主机操作系统下的通用统计工具将第一时长与预设时间段的比值确定为与数据面线程1绑定的虚拟核Ca的CPU占用率。
在第四种可能的实施方式中,检测设备的主机操作系统具有私有存储区域;检测设备可通过运行在客户机操作系统中的第一线程发送第一数据面线程在预设时间段内处理事务的所有处理时长至第二线程,该第二线程为运行在主机操作系统下的线程;检测设备通过第二线程将所有处理时长写入私有存储区域;相应地,步骤301,即检测设备通过统计工具获取第一时长的具体实施方式为:检测设备通过运行在主机操作系统下的统计工具,从私有存储区域中获取第一数据面线程在预设时间段内处理事务的所有处理时长;检测设备通过运行在主机操作系统下的统计工具根据从私有存储区域中获取的所有处理时长,计算得到第一时长。步骤302,即检测设备通过统计工具将第一时长与预设时间段的比值确定为CPU占用率,包括:通过运行在主机操作系统下的统计工具将第一时长与预设时间段的比值确定为与第一数据面线程绑定的虚拟核的CPU占用率。
这样,主机操作系统并不与客户机操作系统上的线程之间共享存储区域,主机操作系统具有私有存储区域,客户机操作系统上的线程不能直接在主机操作系统的私有存储区域写入数据,这样能够提高客户机操作系统存储区域的安全性。
可选地,检测设备可以通过运行在主机操作系统下的统计工具根据从私有存储区域中获取的所有处理时长,计算得到第一时长的具体实施方式为:检测设备通过运行在主机操作系统下的统计工具将从私有存储区域中获取的所有处理时长之和确定为第一时长。
举例来说,如图7所示,图7以第一数据面线程为数据面线程1为例。数据面线程1确定DT之后,将DT写入数据面线程1与第一线程之间共享的第一存储区域。若数据面线程1向第一存储区域写入了数据面线程1在预设时间段内处理事务的处理时长DT1和DT2,则检测设备通过第一线程从第一存储区域读取DT1和DT2,并将DT1和DT2发送至第二线程。第二线程接收DT1和DT2之后,将DT1和DT2写入主机操作系统的私有存储区域。运行在主机操作系统下的通用统计工具,从私有存储区域中获取DT1和DT2,并将DT1和DT2之和确定为第一时长。运行在主机操作系统下的通用统计工具将第一时长与预设时间段的比值确定为与数据面线程1绑定的虚拟核Ca的CPU占用率。
在第五种可能的实施方式中,检测设备通过运行在客户机操作系统下的统计工具获取第一时长。通过运行在客户机操作系统下的统计工具,将第一时长与预设时间段的比值确定为第一数据面线程的CPU占用率。并且,检测设备通过运行在主机操作系统下的统计工具获取第一时长。检测设备通过运行在主机操作系统下的统计工具将第一时长与预设时间段的比值确定为与第一数据面线程绑定的虚拟核的CPU占用率。这样,检测设备在客户机操作系统下能计算第一数据面线程的CPU占用率,并且在主机操作系统下能计算第一数据面线程对应的虚拟核的CPU占用率。
检测设备通过运行在客户机操作系统下的统计工具将第一时长与预设时间段的比值确定为第一数据面线程的CPU占用率之后,可以通过运行在客户机操作系统下的统计工具显示第一数据面线程的CPU占用率。检测设备通过运行在主机操作系统下的统计工具将第一时长与预设时间段的比值确定为与第一数据面线程绑定的虚拟核的CPU占用率之后,可以通过运行在主机操作系统下的统计工具显示与第一数据面线程绑定的虚拟核的CPU占用率。
这样用户既能知道第一数据面线程的CPU占用率,也能知道与第一数据面线程绑定的虚拟核的CPU占用率。
可选的,运行在客户机操作系统下的统计工具获取第一时长和确定第一数据面线程的CPU占用率的方式可参见上述第一种可选的实施方式和第二种可选的实施方式中的描述。运行在主机操作系统下的统计工具获取第一时长和确定与第一数据面线程绑定的虚拟核的CPU占用率的方式可参见上述第一种可选的实施方式和第三种可选的实施方式中的描述,或参见第四种可选的实施方式中的描述,在此不赘述。
值得一提的是,在第四种可选的实施方式中的第一线程也与目标线程共享第一存储区域。也就是说,目标线程、客户机操作系统/运行在客户机操作系统上的统计工具和第一线程三者共享第一存储区域。第一线程从第一存储区域中获取第一数据面线程在预设时间段内处理事务的所有处理时长,并发送该所有处理时长值第二线程。
举例来说,如图8所示,图8以客户机操作系统与目标线程之间共享第一存储区域,第一数据面线程为数据面线程1,目标线程为数据面线程1为例。数据面线程1确定DT之后,将DT写入客户机操作系统与数据面线程1之间共享的第一存储区域。若数据面线程1向第一存储区域写入了数据面线程1在预设时间段内处理事务的处理时长DT1和DT2,则检测设备通过运行在客户机操作系统下的通用统计工具,从第一存储区域中获取DT1和DT2,并将DT1和DT2之和确定为第一时长。检测设备通过运行在客户机操作系统下的通用统计工具将第一时长与预设时间段的比值确定为数据面线程1的CPU占用率。
客户机操作系统、数据面线程1与第一线程三者共享的第一存储区域。若数据面线程1向第一存储区域写入了数据面线程1在预设时间段内处理事务的处理时长DT1和DT2,则检测设备通过第一线程从第一存储区域读取DT1和DT2,并将DT1和DT2发送至第二线程。第二线程接收DT1和DT2之后,将DT1和DT2写入主机操作系统的私有存储区域。运行在主机操作系统下的通用统计工具,从私有存储区域中获取DT1和DT2,并将DT1和DT2之和确定为第一时长。检测设备通过运行在主机操作系统下的通用统计工具将第一时长与预设时间段的比值确定为数据面线程1对应的虚拟核的CPU占用率。
也就是说,数据面线程可以共享内存的方式向运行在客户机操作系统上的通用统计工具共享第一数据面线程处理事务的处理时间,从而在客户机操作系统上的通用统计工具可根据获取的处理时间确定数据面线程的CPU占用率。数据面线程可通过第一线程和第二线程间网络通信的方式向运行在主机操作系统上的通用统计工具共享第一数据面线程处理事务的处理时间,从而在主机操作系统上的通用统计工具可根据获取的处理时间确定数据面线程对应的虚拟核的CPU占用率。
再举例来说,如图9所示,图9以运行在客户机操作系统下的专用统计工具与目标线程之间共享第一存储区域,第一数据面线程为数据面线程1,目标线程为数据面线程1为例。数据面线程1确定DT之后,将DT写入客户机操作系统的专用统计工具与数据面线程1之间共享的第一存储区域。若数据面线程1向第一存储区域写入了数据面线程1在预设时间段内处理事务的处理时长DT1和DT2,则检测设备通过运行在客户机操作系统下的专用统计工具,从第一存储区域中获取DT1和DT2,并将DT1和DT2之和确定为第一时长。检测设备通过运行在客户机操作系统下的专用统计工具将第一时长与预设时间段的比值确定为数据面线程1的CPU占用率。
客户机操作系统的专用统计工具、数据面线程1与第一线程三者共享的第一存储区域。若数据面线程1向第一存储区域写入了数据面线程1在预设时间段内处理事务的处理时长DT1和DT2,则检测设备通过第一线程从第一存储区域读取DT1和DT2,并将DT1和DT2发送至第二线程。第二线程接收DT1和DT2之后,将DT1和DT2写入主机操作系统的私有存储区域。运行在主机操作系统下的通用统计工具,从私有存储区域中获取DT1和DT2,并将DT1和DT2之和确定为第一时长。检测设备通过运行在主机操作系统下的通用统计工具将第一时长与预设时间段的比值确定为与数据面线程1绑定的虚拟核的CPU占用率。
也就是说,数据面线程可以共享内存的方式向运行在客户机操作系统上的专用统计工具共享第一数据面线程处理事务的处理时间,从而在客户机操作系统上的专用统计工具可根据获取的处理时间确定数据面线程的CPU占用率。数据面线程可通过第一线程和第二线程间网络通信的方式向运行在主机操作系统上的通用统计工具共享第一数据面线程处理事务的处理时间,从而在主机操作系统上的通用统计工具可根据获取的处理时间确定数据面线程对应的虚拟核的CPU占用率。
本发明实施例可以根据上述方法示例对设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本发明实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
请参见图10,图10是本发明实施提供的一种检测设备。该检测设备包括虚拟网络设备和用于计算CPU占用率的统计工具,虚拟网络设备运行在检测设备的客户机操作系统上,虚拟网络设备包括至少一个数据面线程,该检测设备包括:获取模块1001和确定模块1002。其中:
获取模块1001,用于通过统计工具获取第一时长,该第一时长为第一数据面线程在预设时间段内处理事务的总时长,该第一数据面线程为虚拟网络设备包括的数据面线程;确定模块1002,用于通过统计工具将第一时长与预设时间段的比值确定为CPU占用率。
在第一种可能的实施方式中,检测设备还包括:写入模块,用于通过目标线程向存储区域写入第一数据面线程在预设时间段内处理事务的所有处理时长,该目标线程为运行在客户机操作系统上的线程;获取模块通过统计工具获取第一时长的方式具体为:通过统计工具从存储区域中获取第一数据面线程在预设时间段内处理事务的所有处理时长;通过统计工具根据从存储区域中获取的所有处理时长,计算得到第一时长。
在第二种可能的实施方式中,上述统计工具为运行在客户机操作系统下的工具,上述存储区域为客户机操作系统与目标线程之间共享的第一存储区域,或上述存储区域为统计工具与目标线程之间共享的第一存储区域;上述CPU占用率为第一数据面线程的CPU占用率。
在第三可能的实施方式中,检测设备还包括主机操作系统,上述统计工具为运行在主机操作系统下的工具,上述存储区域为主机操作系统与目标线程之间共享的第二存储区域;上述CPU占用率为与第一数据面线程绑定的虚拟核的CPU占用率。
在第四可能的实施方式中,检测设备还包括主机操作系统,该主机操作系统具有私有存储区域;检测设备还包括:发送模块,用于通过运行在客户机操作系统中的第一线程发送第一数据面线程在预设时间段内处理事务的所有处理时长至第二线程,该第二线程为运行在主机操作系统下的线程;写入模块,用于通过第二线程将所有处理时长写入私有存储区域;获取模块通过统计工具获取第一时长的方式具体为:通过运行在主机操作系统下的统计工具,从私有存储区域中获取第一数据面线程在预设时间段内处理事务的所有处理时长;通过运行在主机操作系统下的统计工具根据从私有存储区域中获取的所有处理时长,计算得到第一时长;确定模块通过统计工具将第一时长与预设时间段的比值确定为CPU占用率的具体方式为:通过运行在主机操作系统下的统计工具将第一时长与预设时间段的比值确定为与第一数据面线程绑定的虚拟核的CPU占用率。
请参见图11,图11是本申请实施例公开的一种检测设备的结构示意图。如图11所示,该检测设备1100包括处理器1101、存储器1102和通信接口1103。其中,处理器1101、存储器1102和通信接口1103相连。
其中,处理器1101可以是中央处理器(central processing unit,CPU),通用处理器,协处理器,数字信号处理器(digital signal processor,DSP),专用集成电路(application-specific integrated circuit,ASIC),现场可编程门阵列(fieldprogrammable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。该处理器1101也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等等。
其中,通信接口1103用于实现与其他网元之间的通信。
其中,处理器1101调用存储器1102中存储的程序代码,可执行上述方法实施例中检测设备所执行的步骤。
基于同一发明构思,本申请实施例中提供的各设备解决问题的原理与细节可参见本申请提供的CPU占用率检测方法部分,为简洁描述,在这里不再赘述。
在本申请实施例中,对方法和设备的描述各有侧重,细节之处可以相互参考。
最后应说明的是:以上各实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述各实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (2)

1.一种中央处理器CPU占用率检测方法,应用于检测设备,所述检测设备包括虚拟网络设备和用于计算CPU占用率的统计工具,所述虚拟网络设备运行在所述检测设备的客户机操作系统上,所述虚拟网络设备包括至少一个数据面线程,所述检测设备还包括主机操作系统,所述主机操作系统具有私有存储区域;其特征在于,所述方法包括:
通过运行在所述客户机操作系统中的第一数据面线程向第一存储区域写入所述第一数据面线程在预设时间段内处理事务的所有处理时长,所述第一存储区域为第一线程、客户机操作系统和所述第一数据面线程共享的存储区域;
通过运行在所述客户机操作系统下的统计工具从所述第一存储区域中获取所述第一数据面线程在所述预设时间段内处理事务的所有处理时长;
通过运行在所述客户机操作系统下的统计工具根据从所述第一存储区域中获取的所有处理时长,计算得到第一时长;
通过运行在所述客户机操作系统下的统计工具将所述第一时长与所述预设时间段的比值确定为所述第一数据面线程的CPU占用率;
通过运行在所述客户机操作系统中的第一线程从所述第一存储区域中获取所述第一数据面线程在所述预设时间段内处理事务的所有处理时长;
通过所述第一线程使用网络通信的方式发送所述第一数据面线程在所述预设时间段内处理事务的所有处理时长至第二线程,所述第二线程为运行在所述主机操作系统下的线程;
通过所述第二线程将所述所有处理时长写入所述私有存储区域;
通过运行在所述主机操作系统下的统计工具,从所述私有存储区域中获取所述第一数据面线程在所述预设时间段内处理事务的所有处理时长;
通过运行在所述主机操作系统下的统计工具根据从所述私有存储区域中获取的所述所有处理时长,计算得到所述第一时长;
通过运行在所述主机操作系统下的统计工具将所述第一时长与所述预设时间段的比值确定为与所述第一数据面线程绑定的虚拟核的CPU占用率。
2.一种检测设备,所述检测设备包括虚拟网络设备和用于计算CPU占用率的统计工具,所述虚拟网络设备运行在所述检测设备的客户机操作系统上,所述虚拟网络设备包括至少一个数据面线程,所述检测设备还包括主机操作系统,所述主机操作系统具有私有存储区域;其特征在于,所述检测设备包括:
写入模块,用于通过运行在所述客户机操作系统中的第一数据面线程向第一存储区域写入所述第一数据面线程在预设时间段内处理事务的所有处理时长,所述第一存储区域为第一线程、客户机操作系统和所述第一数据面线程共享的存储区域;
获取模块,用于通过运行在所述客户机操作系统下的统计工具从所述第一存储区域中获取所述第一数据面线程在所述预设时间段内处理事务的所有处理时长;
所述获取模块,还用于通过运行在所述客户机操作系统下的统计工具根据从所述第一存储区域中获取的所有处理时长,计算得到第一时长;
确定模块,用于通过运行在所述客户机操作系统下的统计工具将所述第一时长与所述预设时间段的比值确定为所述第一数据面线程的CPU占用率;
所述获取模块,还用于通过运行在所述客户机操作系统中的第一线程从所述第一存储区域中获取所述第一数据面线程在所述预设时间段内处理事务的所有处理时长;
发送模块,用于通过所述第一线程使用网络通信的方式发送所述第一数据面线程在所述预设时间段内处理事务的所有处理时长至第二线程,所述第二线程为运行在所述主机操作系统下的线程;
所述写入模块,还用于通过所述第二线程将所述所有处理时长写入所述私有存储区域;
所述获取模块,用于通过运行在所述主机操作系统下的统计工具,从所述私有存储区域中获取所述第一数据面线程在所述预设时间段内处理事务的所有处理时长;
所述获取模块,还用于通过运行在所述主机操作系统下的统计工具根据从所述私有存储区域中获取的所述所有处理时长,计算得到所述第一时长;
确定模块,用于通过运行在所述主机操作系统下的统计工具将所述第一时长与所述预设时间段的比值确定为与所述第一数据面线程绑定的虚拟核的CPU占用率。
CN201810258157.2A 2018-03-27 2018-03-27 一种cpu占用率检测方法及检测设备 Active CN110309036B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810258157.2A CN110309036B (zh) 2018-03-27 2018-03-27 一种cpu占用率检测方法及检测设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810258157.2A CN110309036B (zh) 2018-03-27 2018-03-27 一种cpu占用率检测方法及检测设备

Publications (2)

Publication Number Publication Date
CN110309036A CN110309036A (zh) 2019-10-08
CN110309036B true CN110309036B (zh) 2023-02-10

Family

ID=68074061

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810258157.2A Active CN110309036B (zh) 2018-03-27 2018-03-27 一种cpu占用率检测方法及检测设备

Country Status (1)

Country Link
CN (1) CN110309036B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111414295B (zh) * 2020-03-09 2023-06-30 浙江大华技术股份有限公司 一种cpu占用率的统计方法、装置、设备及介质
CN113849384B (zh) * 2021-08-27 2023-07-25 苏州浪潮智能科技有限公司 一种raid系统后台任务测试时长确定方法和装置

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100613201B1 (ko) * 2000-08-28 2006-08-18 마이크로코넥트 엘엘씨 씨피유 사용량 측정 방법
US7698705B1 (en) * 2004-10-19 2010-04-13 Oracle America, Inc. Method and system for managing CPU time consumption
JP4871174B2 (ja) * 2007-03-09 2012-02-08 株式会社日立製作所 仮想計算機システム
US8429665B2 (en) * 2010-03-19 2013-04-23 Vmware, Inc. Cache performance prediction, partitioning and scheduling based on cache pressure of threads
CN102447723B (zh) * 2010-10-12 2015-09-09 运软网络科技(上海)有限公司 客户端虚拟化架构
CN102110043A (zh) * 2010-12-30 2011-06-29 上海顶竹通讯技术有限公司 一种cpu占用率的计算方法及装置
JP5799797B2 (ja) * 2011-12-21 2015-10-28 富士通株式会社 算出方法、算出プログラム及びコンピュータ
CN105700951B (zh) * 2014-11-25 2021-01-26 中兴通讯股份有限公司 一种实现cpu业务迁移的方法及装置
CN105243008A (zh) * 2015-11-02 2016-01-13 上海新炬网络信息技术有限公司 一种基于宿主机的虚拟机性能监控方法
CN105847385B (zh) * 2016-04-20 2018-11-13 南京邮电大学 一种基于运行时长的云计算平台虚拟机调度方法
CN107590061A (zh) * 2017-09-29 2018-01-16 郑州云海信息技术有限公司 一种服务器虚拟化cpu性能测试方法

Also Published As

Publication number Publication date
CN110309036A (zh) 2019-10-08

Similar Documents

Publication Publication Date Title
US10506434B2 (en) System for accelerated network route update through exclusive access to routing tables
US10768960B2 (en) Method for affinity binding of interrupt of virtual network interface card, and computer device
US10411953B2 (en) Virtual machine fault tolerance method, apparatus, and system
US10698717B2 (en) Accelerator virtualization method and apparatus, and centralized resource manager
US7587492B2 (en) Dynamic performance management for virtual servers
US8832688B2 (en) Kernel bus system with a hyberbus and method therefor
US8863138B2 (en) Application service performance in cloud computing
US9547605B2 (en) Method for data backup, device and system
US9489230B1 (en) Handling of virtual machine migration while performing clustering operations
US11030136B2 (en) Memory access optimization for an I/O adapter in a processor complex
Garzarella et al. Virtual device passthrough for high speed VM networking
WO2012177359A2 (en) Native cloud computing via network segmentation
CN106354559A (zh) 云桌面资源的处理方法及装置
CN108989151B (zh) 用于网络或应用性能管理的流量采集方法
CN110309036B (zh) 一种cpu占用率检测方法及检测设备
US20160345283A1 (en) Method and apparatus for adjacent node registration, and method and system for cross-node registration
WO2018166366A1 (zh) 用于虚拟网络功能扩容的方法和装置
Lettieri et al. A study of I/O performance of virtual machines
CN109271268B (zh) 一种基于dpdk的智能容错方法
CN108512673B (zh) 一种云服务质量监控方法、装置及服务器
CN110770712B (zh) 运算方法、芯片、系统、可读存储介质及计算机程序产品
CN114500414A (zh) 以太网交换机及网络系统
CN114489930A (zh) 一种虚拟机热迁移方法、装置及系统
JP6657910B2 (ja) 帯域設定方法、帯域設定プログラム、情報処理装置及び情報処理システム
CN111124890A (zh) 一种分布式数据库性能测试方法、系统、终端及存储介质

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
GR01 Patent grant
GR01 Patent grant