监测系统性能的方法及装置制造方法

文档序号:6627800阅读:195来源:国知局
监测系统性能的方法及装置制造方法
【专利摘要】本发明公开了一种监测系统性能的方法及装置。其中,该方法包括:创建计算机系统中每个部件的数据收集器,每个数据收集器保存一个监控列表,监控列表记录了与数据收集器关联的性能计数器的计数器标识;设置每个性能计数器所对应的监测阈值,构成监测阈值集合;运行任意一个或多个部件的数据收集器,通过数据收集器读取与数据收集器关联的性能计数器的计数值;将任意一个性能计数器的计数值和对应的监测阈值进行比对,确定计算机系统中的每个部件的性能值。本发明解决了现有技术中各个性能计数器间没有联系,导致的无法根据各个单独性能计数器的数值监测系统性能的问题。
【专利说明】监测系统性能的方法及装置

【技术领域】
[0001]本发明涉及计算机领域,具体而言,涉及一种监测系统性能的方法及装置。

【背景技术】
[0002]在服务器使用过程中,会出现由于系统资源耗尽造成系统反应慢或者无响应现象。针对此问题,Windows提供了 “性能监视”工具。它能实时采集、分析系统内的应用程序、服务、驱动程序等的性能数据,以此来分析系统的瓶颈、监视组件的表现,最终帮助用户进行系统资源的合理调配。
[0003]目前Windows性能计数器针对各种对象提供了数百个性能计数器,各计数器之间没有显性联系。从数百个计数器中如何组合才能定位服务器性能瓶颈是个难题。
[0004]针对现有技术中各个性能计数器间没有联系,导致的无法根据各个单独性能计数器的数值监测系统性能的问题,目前尚未提出有效的解决方案。


【发明内容】

[0005]本发明的主要目的在于提供一种监测系统性能的方法及装置,以解决现有技术中各个性能计数器间没有联系,导致的无法根据各个单独性能计数器的数值监测系统性能的问题。
[0006]为了实现上述目的,根据本发明实施例的一个方面,提供了一种监测系统性能的方法。该方法包括:创建计算机系统中每个部件的数据收集器,每个数据收集器保存一个监控列表,监控列表记录了与数据收集器关联的性能计数器的计数器标识;设置每个性能计数器所对应的监测阈值,构成监测阈值集合;运行任意一个或多个部件的数据收集器,通过数据收集器读取与数据收集器关联的性能计数器的计数值;将任意一个性能计数器的计数值和对应的监测阈值进行比对,确定计算机系统中的每个部件的性能值。
[0007]为了实现上述目的,根据本发明实施例的另一方面,提供了一种监测系统性能的装置,该装置包括:创建模块,用于创建计算机系统中每个部件的数据收集器,每个数据收集器保存一个监控列表,监控列表记录了与数据收集器关联的性能计数器的计数器标识;设置模块,用于设置每个性能计数器所对应的监测阈值,构成监测阈值集合;读取模块,用于运行任意一个或多个部件的数据收集器,通过数据收集器读取与数据收集器关联的性能计数器的计数值;确定模块,用于将任意一个性能计数器的计数值和对应的监测阈值进行比对,确定计算机系统中的每个部件的性能值。
[0008]根据发明实施例,通过创建计算机系统中每个部件的数据收集器,每个数据收集器保存一个监控列表,监控列表记录了与数据收集器关联的性能计数器的计数器标识;设置每个性能计数器所对应的监测阈值,构成监测阈值集合;运行任意一个或多个部件的数据收集器,通过数据收集器读取与数据收集器关联的性能计数器的计数值;将任意一个性能计数器的计数值和对应的监测阈值进行比对,确定计算机系统中的每个部件的性能值,解决了现有技术各个性能计数器间没有联系,导致的无法根据各个单独性能计数器的数值监测系统性能的问题。实现了通过对Windows性能计数器中的计数器组合,监测系统性能并快速定位计算机系统的各个部件的性能瓶颈的效果。

【专利附图】

【附图说明】
[0009]构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0010]图1是根据本发明实施例一的监测系统性能的方法的流程图;
[0011]图2是根据本发明实施例一可选的监测系统性能的方法的流程图;
[0012]图3是根据本发明实施例二的监测系统性能的装置的结构示意图;以及
[0013]图4是根据本发明实施例二可选的监测系统性能的装置的结构示意图。

【具体实施方式】
[0014]需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
[0015]为了使本【技术领域】的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0016]需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0017]实施例1
[0018]本发明实施例提供了一种监测系统性能的方法。
[0019]图1是根据本发明实施例的监测系统性能的方法的流程图。如图1所示,该方法包括步骤如下:
[0020]步骤S11,创建计算机系统中每个部件的数据收集器,每个数据收集器保存一个监控列表,监控列表记录了与数据收集器关联的性能计数器的计数器标识。
[0021]具体的,通过上述步骤S11,为计算机系统中的每个组成部件,创建一个数据收集器。将与计算机系统中的组成部件对应的性能计数器的计数器标识加入到该数据收集器中的监控列表中。数据收集器通过调用监控列表,获取与监控列表中计数器标识对应的性能计数器的计数值。在实际应用当中,可以根据业务需求或实际情况,修改监控列表中的计数器标识条目。当然,也可以通过其他手段实现监控列表所实现的功能。
[0022]步骤S13,设置每个性能计数器所对应的监测阈值,构成监测阈值集合。
[0023]具体的,通过上述步骤S13,根据每个数据收集器中的监控列表,为列表中的性能计数器设置与其对应的监测阈值,构成监测阈值的集合。其中,监测阈值用于针对每个性能计数器判断与该性能计数器对应的部件的性能值。
[0024]步骤S15,运行任意一个或多个部件的数据收集器,通过数据收集器读取与数据收集器关联的性能计数器的计数值。
[0025]具体的,通过上述步骤S15,根据业务需要或实际情况,运行一个或多个部件的数据收集器。利用与各个部件对应的数据收集器,分别获取与各个数据收集器关联的性能计数器的计数值。
[0026]步骤S17,将任意一个性能计数器的计数值和对应的监测阈值进行比对,确定计算机系统中的每个部件的性能值。
[0027]具体的,在上述步骤S17中,通过步骤S13设置的与每个性能计数器对应的监测阈值和步骤S15读取到的每个性能计数器的计数值,对任意一个性能计数器的计数值和其对应的监测阈值进行比对,确定计算机系统中的每个部件的性能值。
[0028]上述步骤Sll至步骤S17,通过对性能计数器的挑选、组合,根据计算机系统的各个组成部分或者根据实际业务的需求,创建数据收集器。通过数据收集器获取性能计数器的计数值,根据预先设置的与每个性能计数器对应的监测阈值,快速、准确的判断计算机系统中每个部件的性能值。
[0029]在实际应用当中,本发明结合Windows操作系统底层各模块之间的联系,进行计数器的组合可以快速发现系统瓶颈。通过挑选、组合计数器,并对其进行监控与分析,快速定位处理器,内存,磁盘的性能瓶颈。
[0030]其中,通过运行Windows管理工具中运行“性能监视器”,开启后在“数据收集器”中建立处理器,内存,磁盘的数据收集器。在处理器,内存,磁盘三个数据收集器中分别加入有针对性的不同的计数器。
[0031]运行数据收集器,在收取数据后,对数据进行分析,找出系统性能瓶颈点。
[0032]优选地,本申请上述实施例中,计算机系统中每个部件的数据收集器包括如下任意一个或多个:处理器数据收集器、内存数据收集器、存储器数据收集器。
[0033]具体的,可以为计算机中的每个部件创建一个数据收集器,也可以根据业务需要或者实际情况,为计算机中的几个部件创建一个数据收集器。
[0034]优选地,本申请上述实施例中,在步骤Sll创建计算机系统中每个部件的数据收集器,每个数据收集器保存一个监控列表,监控列表记录了与数据收集器关联的性能计数器的计数器标识中,处理器的数据收集器采集如下任意一个或多个性能计数器的计数值:处理器平均利用率(Processor\% Total Processor Time)、处理器利用时间(Processor\ % User Time)、处理器中断时间(ProcessoiA1^ Interrupt Time)、处理器队列长度(System\Processor Queue Length),其中,将任意一个性能计数器的计数值和对应的监测阈值进行比对,确定计算机系统中处理器的性能值的步骤包括:
[0035]步骤S1711,将处理器平均利用率与第一监测阈值进行比较,得到第一监测结果;
[0036]步骤S1712,将处理器利用时间与第二监测阈值进行比较,得到第二监测结果;
[0037]步骤S1713,将处理器中断时间与第三监测阈值进行比较,得到第三监测结果;
[0038]步骤S1714,将处理器队列长度与第四监测阈值进行比较,得到第四监测结果;
[0039]其中,当第一监测结果、第二监测结果、第三监测结果、第四监测结果中的任意一个或多个监测结果为计数值大于等于对应的监测阈值时,确定处理器的性能降低。
[0040]具体的,通过上述步骤S1711至步骤S1714,通过处理器的数据收集器,分别采集与该数据收集器关联的性能计数器的数值,通过与监测阈值的比对,确定处理器的性能降低。其中,处理器出现瓶颈可能是由于处理器本身没有足够的能力,或由于应用程序效率低下导致处理器能力不足。在监控时可采用下列性能计数器组合来确认处理器瓶颈:
[0041]处理器平均利用率(ProcessoiA1^ Total Processor Time):该值测量处理器用于执行非空闲线程的已用时间百分比即处理器平均利用率。如果此值大于85%,则表明处理器性能不足,可能需要为服务器配备速度更快的处理器。
[0042]处理器利用时间(ProcessoiA1^ User Time):该值测量处理器在用户模式下花费的已用时间百分比。如果此值较高,则表示服务器正忙于处理应用程序。可开启任务管理器查看应用程序占用CPU利用率。关闭或者优化占用处理器较大资源的应用程序。
[0043]处理器中断时间(Processor\% Interrupt Time):该值测量在特定的采样间隔期间处理器用于接收和处理硬件中断的时间。如果此计数器的值大于15%,则表示可能存在硬件问题。
[0044]处理器队列长度(System\Processor Queue Length):它表示处理器队列中的线程数。如果此值经常比CPU数量的两倍还多,则表示服务器的处理器能力不足,需要更换多核心处理器。
[0045]优选地,本申请上述实施例中,在步骤Sll创建计算机系统中每个部件的数据收集器,每个数据收集器保存一个监控列表,监控列表记录了与数据收集器关联的性能计数器的计数器标识中,内存的数据收集器采集如下任意一个或多个性能计数器的计数值:虚拟内存利用率(MemoryX1^Committed Bytes in Use)、物理内存可用比例(MemoryX1^Available Mbytes)、非分页缓冲池大小(Memory\Pool Non-Paged Bytes)、写入磁盘速率(Memory\Pages per Second)、分页读取数量(Memory\Page Read/sec),其中,将任意一个性能计数器的计数值和对应的监测阈值进行比对,确定计算机系统中内存的性能值的步骤包括:
[0046]步骤S1721,将虚拟内存利用率与第五监测阈值进行比较,得到第五监测结果;
[0047]步骤S1722,将物理内存可用比例与第六监测阈值进行比较,得到第六监测结果;
[0048]步骤S1723,将非分页缓冲池大小与第七监测阈值进行比较,得到第七监测结果;
[0049]步骤S1724,将写入磁盘速率与第八监测阈值进行比较,得到第八监测结果;
[0050]步骤S1725,将分页读取数量与第九监测阈值进行比较,得到第九监测结果;
[0051]其中,当第五监测结果、第六监测结果、第七监测结果、第八监测结果、第九监测结果中的任意一个或多个监测结果为计数值大于等于对应的监测阈值时,确定内存的性能降低。
[0052]具体的,通过上述步骤S1721至步骤S1725,通过内存的数据收集器,分别采集与该数据收集器关联的性能计数器的数值,通过与监测阈值的比对,确定内存的性能降低。其中,内存不足通常是由于RAM不足、内存泄漏。通常情况内存越多,磁盘1/0活动就越少,因此监控可以使用以下计数器来诊断可能的内存瓶颈。在监控时可采用下列性能计数器的组合来确认内存瓶颈:
[0053]虚拟内存利用率(MemoryX1^Committed Bytes in Use):它测量Committed Bytes与Commit Limit的比值,换句话说,它测量的是使用中的虚拟内存数量。如果此数值大于80%,则表示内存不足。对此最直接的解决方案是增加更多的内存。
[0054]物理内存可用比例(Memory\% Available Mbytes):Memory\ % AvailableMbytes它测量可用于运行进程的物理内存量(单位为兆字节)。如果此值低于总物理RAM的5%,则意味着内存不足,分页活动可能会增加。注意这个计数器是最近计算的结果而并非平均值。要解决此问题,应增加更多的内存。
[0055]非分页缓冲池大小(Memory\Pool Non-Paged Bytes):它测量非分页缓冲池的大小(单位为字节)。在这一系统内存区域中存储的是无法写入磁盘但只要已分配就必须保留在物理内存中的对象。如果此值相比系统启动时的值增加了 10%以上,那么可能有很严重的内存泄漏。
[0056]写入磁盘速率(Memory\Pages per Second):它测量为解决硬分页错误而从磁盘读取页或将页写入磁盘的速率。如果此值大于1,000,则可能会由于过度分页而出现内存泄漏。
[0057]分页读取数量(Memory\Page Read/sec):表示进程的Working Set相对于物理内存太大,已经分页到磁盘。它显示的是读操作的数量,不包含每个读操作的页面数。高数值表明存在内存瓶颈。如果较低的页面读取操作和很高的Physical Disk/% Disk Time以及Physical Disk/Avg.Disk Queue Length同时发生,那么应该存在磁盘瓶颈。如果持续增加的队列长度并没有伴随着降低的页面读取率,那么内存可能不够。
[0058]优选地,本申请上述实施例中,在步骤Sll创建计算机系统中每个部件的数据收集器,每个数据收集器保存一个监控列表,监控列表记录了与数据收集器关联的性能计数器的计数器标识中,存储器的数据收集器采集如下任意一个或多个性能计数器的计数值:逻辑磁盘可用率(LogicalDisk\ % Free Space)、磁盘空闲率(PhysicalDisk\ %Idle Time)、磁盘平均寻址速度(PhysicalDisk\Avg.Disk Sec/Read)、磁盘平均写入速度(PhysicalDisk\Avg.Disk Sec/Write)、磁盘平均队列长度(PhysicalDisk\Avg.DiskQueue Length)、缓存数量(Memory\Cache Bytes),其中,将任意一个性能计数器的计数值和对应的监测阈值进行比对,确定计算机系统中存储器的性能值的步骤包括:
[0059]步骤S1731,将逻辑磁盘可用率与第十监测阈值进行比较,得到第十监测结果;
[0060]步骤S1732,将磁盘空闲率与第十一监测阈值进行比较,得到第十一监测结果;
[0061]步骤S1733,将磁盘平均寻址速度与第十二监测阈值进行比较,得到第十二监测结果;
[0062]步骤S1734,将磁盘平均写入速度与第十三监测阈值进行比较,得到第十三监测结果;
[0063]步骤S1735,将磁盘平均队列长度与第十四监测阈值进行比较,得到第十四监测结果;
[0064]步骤S1736,将缓存数量与第十五监测阈值进行比较,得到第十五监测结果;
[0065]其中,当第十监测结果、第十一监测结果、第十二监测结果、第十三监测结果、第十四监测结果、第十五监测结果中的任意一个或多个监测结果为计数值大于等于对应的监测阈值时,确定存储器性能降低。
[0066]具体的,通过上述步骤S1731至步骤S1736,通过存储器的数据收集器,分别采集与该数据收集器关联的性能计数器的数值,通过与监测阈值的比对,确定存储器的性能降低。其中,由于存储器用于存储处理服务器上的程序和数据,因此存储器使用情况和运行速度的瓶颈会极大地影响服务器的整体性能。在监控时可采用下列性能计数器的组合来确认存储器的瓶颈:
[0067]逻辑磁盘可用率(LogicalDisk\% Free Space):它测量选定逻辑磁盘上的可用空间百分比。请注意,如果此值低于15%,则表示可用空间不足,操作系统无法存储关键文件。一个最直接的解决方案是增加更多的磁盘空间。
[0068]磁盘空闲率(PhysicalDisk\% Idle Time):它测量磁盘在采样间隔期间的空闲时间百分比。如果此计数器低于20%,则表示磁盘系统处于满负荷状态。可考虑将当前的磁盘系统更换为速度更快的磁盘系统。
[0069]磁盘平均寻址速度(PhysicalDisk\Avg.Disk Sec/Read):它测量从磁盘读取数据的平均时间(以秒为单位)。如果此数字大于25毫秒(ms),则意味着从磁盘读取数据时磁盘系统发生了延迟。最合理的解决方案是将当前磁盘系统更换为速度更快的磁盘系统。
[0070]磁盘平均写入速度(PhysicalDisk\Avg.Disk Sec/Write):它测量将数据写入磁盘所需的平均时间(以秒为单位)。如果此数字大于25ms,则意味着写入磁盘时磁盘系统发生了延迟。可能的解决方案是将当前磁盘系统更换为速度更快的磁盘系统。
[0071]磁盘平均队列长度(PhysicalDisk\Avg.Disk Queue Length):它表示目前正在等待硬盘变为可用的I/O操作数。如果此值大于心轴数加2,则表示磁盘本身可能也是瓶颈。
[0072]缓存数量(Memory\Cache Bytes):它表示用于文件系统缓存的内存数量。如果此值大于200MB,则可能存在磁盘瓶颈。
[0073]优选地,本申请上述实施例中,如图2所示,在步骤S17在将任意一个性能计数器的计数值和对应的监测阈值进行比对,确定计算机系统中的每个部件的性能值之后,方法还包括:
[0074]步骤S19,按照计算机系统中的每个部件的性能值确定性能降低类型,并运行性能降低类型对应的处理功能模块。
[0075]具体的,通过上述步骤S19,根据计算机系统中的各个部件的性能降低类型,进行处理。其中,处理功能模块可以包括:发送提示通知模块、清理系统后台进程、自动诊断模块坐寸ο
[0076]通过上述针对处理器,内存,磁盘的计数器的组合,在收集性能计数器数据后,根据收集数值和阀值的比较,能够快速定位处理器,内存,磁盘的性能瓶颈。同时,根据瓶颈点提出解决方案。
[0077]性能监视:是Windows NT提供的一种系统功能。Windows NT—直以来总是集成了性能监视工具,它提供有关操作系统当前运行状况的信息。
[0078]性能对象(PerformanceObject):被监视的性能对象,如 Processor、Process、Memory> PhysicalDisk 等,相当于类(Class)。
[0079]性能计数器(Performance Counter):描述性能对象性能信息的方式,相当于类属性。
[0080]对象实例(Object Instance):相同性能对象可能有多个,把它们表示为该对象类型的不同实例,相当于类实例。
[0081]实施例2
[0082]本发明实施例还提供了一种监测系统性能的装置,如图3所示,该装置可以包括:创建模块21、设置模块23、读取模块25、确定模块27。
[0083]创建模块21,用于创建计算机系统中每个部件的数据收集器,每个数据收集器保存一个监控列表,监控列表记录了与数据收集器关联的性能计数器的计数器标识。
[0084]具体的,通过创建模块21,为计算机系统中的每个组成部件,创建一个数据收集器。将与计算机系统中的组成部件对应的性能计数器的计数器标识加入到该数据收集器中的监控列表中。数据收集器通过调用监控列表,获取与监控列表中计数器标识对应的性能计数器的计数值。在实际应用当中,可以根据业务需求或实际情况,修改监控列表中的计数器标识条目。当然,也可以通过其他手段实现监控列表所实现的功能。
[0085]设置模块23,用于设置每个性能计数器所对应的监测阈值,构成监测阈值集合。
[0086]具体的,通过设置模块23,根据每个数据收集器中的监控列表,为列表中的性能计数器设置与其对应的监测阈值,构成监测阈值的集合。其中,监测阈值用于针对每个性能计数器判断与该性能计数器对应的部件的性能值。
[0087]读取模块25,用于运行任意一个或多个部件的数据收集器,通过数据收集器读取与数据收集器关联的性能计数器的计数值。
[0088]具体的,通过读取模块25,根据业务需要或实际情况,运行一个或多个部件的数据收集器。利用与各个部件对应的数据收集器,分别获取与各个数据收集器关联的性能计数器的计数值。
[0089]确定模块27,用于将任意一个性能计数器的计数值和对应的监测阈值进行比对,确定计算机系统中的每个部件的性能值。
[0090]具体的,在确定模块27中,通过设置模块23设置的与每个性能计数器对应的监测阈值和步骤S15读取到的每个性能计数器的计数值,对任意一个性能计数器的计数值和其对应的监测阈值进行比对,确定计算机系统中的每个部件的性能值。
[0091]在上述创建模块21、设置模块23、读取模块25、确定模块27,通过对性能计数器的挑选、组合,根据计算机系统的各个组成部分或者根据实际业务的需求,创建数据收集器。通过数据收集器获取性能计数器的计数值,根据预先设置的与每个性能计数器对应的监测阈值,快速、准确的判断计算机系统中每个部件的性能值。
[0092]在实际应用当中,本发明结合Windows操作系统底层各模块之间的联系,进行计数器的组合可以快速发现系统瓶颈。通过挑选、组合计数器,并对其进行监控与分析,快速定位处理器,内存,磁盘的性能瓶颈。
[0093]其中,通过运行Windows管理工具中运行“性能监视器”,开启后在“数据收集器”中建立处理器,内存,磁盘的数据收集器。在处理器,内存,磁盘三个数据收集器中分别加入有针对性的不同的计数器。
[0094]运行数据收集器,在收取数据后,对数据进行分析,找出系统性能瓶颈点。
[0095]优选地,本申请上述实施例中,在确定模块27中,还包括:第一子监测模块2711、第二子监测模块2712、第三子监测模块2713、第四子监测模块2714。
[0096]其中,第一子监测模块2711,用于将处理器平均利用率与第一监测阈值进行比较,得到第一监测结果。
[0097]第二子监测模块2712,用于将处理器利用时间与第二监测阈值进行比较,得到第二监测结果。
[0098]第三子监测模块2713,用于将处理器中断时间与第三监测阈值进行比较,得到第三监测结果。
[0099]第四子监测模块2714,用于将处理器队列长度与第四监测阈值进行比较,得到第四监测结果。
[0100]其中,当第一监测结果、第二监测结果、第三监测结果、第四监测结果中的任意一个或多个监测结果为计数值大于等于对应的监测阈值时,确定处理器的性能降低。
[0101]具体的,在上述第一子监测模块2711、第二子监测模块2712、第三子监测模块2713、第四子监测模块2714,通过处理器的数据收集器,分别采集与该数据收集器关联的性能计数器的数值,通过与监测阈值的比对,确定处理器的性能降低。其中,处理器出现瓶颈可能是由于处理器本身没有足够的能力,或由于应用程序效率低下导致处理器能力不足。在监控时可采用下列性能计数器组合来确认处理器瓶颈:
[0102]处理器平均利用率(ProcessoiA1^ Total Processor Time):该值测量处理器用于执行非空闲线程的已用时间百分比即处理器平均利用率。如果此值大于85%,则表明处理器性能不足,可能需要为服务器配备速度更快的处理器。
[0103]处理器利用时间(Processor\% User Time):该值测量处理器在用户模式下花费的已用时间百分比。如果此值较高,则表示服务器正忙于处理应用程序。可开启任务管理器查看应用程序占用CPU利用率。关闭或者优化占用处理器较大资源的应用程序。
[0104]处理器中断时间(Processor\% Interrupt Time):该值测量在特定的采样间隔期间处理器用于接收和处理硬件中断的时间。如果此计数器的值大于15%,则表示可能存在硬件问题。
[0105]处理器队列长度(System\Processor Queue Length):它表示处理器队列中的线程数。如果此值经常比CPU数量的两倍还多,则表示服务器的处理器能力不足,需要更换多核心处理器。
[0106]优选地,本申请上述实施例中,在确定模块中27中,还包括:第五子监测模块2721、第六子监测模块2722、第七子监测模块2723、第八子监测模块2724、第九子监测模块2725。
[0107]其中,第五子监测模块2721,用于将虚拟内存利用率与第五监测阈值进行比较,得到第五监测结果。
[0108]第六子监测模块2722,用于将物理内存可用比例与第六监测阈值进行比较,得到第六监测结果。
[0109]第七子监测模块2723,用于将非分页缓冲池大小与第七监测阈值进行比较,得到第七监测结果。
[0110]第八子监测模块2724,用于将写入磁盘速率与第八监测阈值进行比较,得到第八监测结果。
[0111]第九子监测模块2725,用于将分页读取数量与第九监测阈值进行比较,得到第九监测结果。
[0112]其中,当第五监测结果、第六监测结果、第七监测结果、第八监测结果、第九监测结果中的任意一个或多个监测结果为计数值大于等于对应的监测阈值时,确定内存的性能降低。
[0113]具体的,在上述第五子监测模块2721、第六子监测模块2722、第七子监测模块2723、第八子监测模块2724、第九子监测模块2725,通过内存的数据收集器,分别采集与该数据收集器关联的性能计数器的数值,通过与监测阈值的比对,确定内存的性能降低。其中,内存不足通常是由于RAM不足、内存泄漏。通常情况内存越多,磁盘I/O活动就越少,因此监控可以使用以下计数器来诊断可能的内存瓶颈。在监控时可采用下列性能计数器的组合来确认内存瓶颈:
[0114]虚拟内存利用率(MemoryX1^Committed Bytes in Use):它测量Committed Bytes与Commit Limit的比值,换句话说,它测量的是使用中的虚拟内存数量。如果此数值大于80%,则表示内存不足。对此最直接的解决方案是增加更多的内存。
[0115]物理内存可用比例(Memory\% Available Mbytes):Memory\ % AvailableMbytes它测量可用于运行进程的物理内存量(单位为兆字节)。如果此值低于总物理RAM的5%,则意味着内存不足,分页活动可能会增加。注意这个计数器是最近计算的结果而并非平均值。要解决此问题,应增加更多的内存。
[0116]非分页缓冲池大小(Memory\Pool Non-Paged Bytes):它测量非分页缓冲池的大小(单位为字节)。在这一系统内存区域中存储的是无法写入磁盘但只要已分配就必须保留在物理内存中的对象。如果此值相比系统启动时的值增加了 10%以上,那么可能有很严重的内存泄漏。
[0117]写入磁盘速率(Memory\Pages per Second):它测量为解决硬分页错误而从磁盘读取页或将页写入磁盘的速率。如果此值大于1,000,则可能会由于过度分页而出现内存泄漏。
[0118]分页读取数量(Memory\Page Read/sec):表示进程的Working Set相对于物理内存太大,已经分页到磁盘。它显示的是读操作的数量,不包含每个读操作的页面数。高数值表明存在内存瓶颈。如果较低的页面读取操作和很高的Physical Disk/% Disk Time以及Physical Disk/Avg.Disk Queue Length同时发生,那么应该存在磁盘瓶颈。如果持续增加的队列长度并没有伴随着降低的页面读取率,那么内存可能不够。
[0119]优选地,本申请上述实施例中,在确定模块中27中,还包括:第十子监测模块2731、第i^一子监测模块2732、第十二子监测模块2733、第十三子监测模块2734、第十四子监测模块2735、第十五子监测模块2736。
[0120]其中,第十子监测模块2731,用于将逻辑磁盘可用率与第十监测阈值进行比较,得到第十监测结果。
[0121]第十一子监测模块2732,用于将磁盘空闲率与第i^一监测阈值进行比较,得到第十一监测结果。
[0122]第十二子监测模块2733,用于将磁盘平均寻址速度与第十二监测阈值进行比较,得到第十二监测结果。
[0123]第十三子监测模块2734,用于将磁盘平均写入速度与第十三监测阈值进行比较,得到第十三监测结果。
[0124]第十四子监测模块2735,用于将磁盘平均队列长度与第十四监测阈值进行比较,得到第十四监测结果。
[0125]第十五子监测模块2736,用于将缓存数量与第十五监测阈值进行比较,得到第十五监测结果。
[0126]其中,当第十监测结果、第十一监测结果、第十二监测结果、第十三监测结果、第十四监测结果、第十五监测结果中的任意一个或多个监测结果为计数值大于等于对应的监测阈值时,确定存储器性能降低。
[0127]具体的,在上述第十子监测模块2731、第十一子监测模块2732、第十二子监测模块2733、第十三子监测模块2734、第十四子监测模块2735、第十五子监测模块2736,通过存储器的数据收集器,分别采集与该数据收集器关联的性能计数器的数值,通过与监测阈值的比对,确定存储器的性能降低。其中,由于存储器用于存储处理服务器上的程序和数据,因此存储器使用情况和运行速度的瓶颈会极大地影响服务器的整体性能。在监控时可采用下列性能计数器的组合来确认存储器的瓶颈:
[0128]逻辑磁盘可用率(LogicalDisk\% Free Space):它测量选定逻辑磁盘上的可用空间百分比。请注意,如果此值低于15%,则表示可用空间不足,操作系统无法存储关键文件。一个最直接的解决方案是增加更多的磁盘空间。
[0129]磁盘空闲率(PhysicalDisk\% Idle Time):它测量磁盘在采样间隔期间的空闲时间百分比。如果此计数器低于20%,则表示磁盘系统处于满负荷状态。可考虑将当前的磁盘系统更换为速度更快的磁盘系统。
[0130]磁盘平均寻址速度(PhysicalDisk\Avg.Disk Sec/Read):它测量从磁盘读取数据的平均时间(以秒为单位)。如果此数字大于25毫秒(ms),则意味着从磁盘读取数据时磁盘系统发生了延迟。最合理的解决方案是将当前磁盘系统更换为速度更快的磁盘系统。
[0131]磁盘平均写入速度(PhysicalDisk\Avg.Disk Sec/Write):它测量将数据写入磁盘所需的平均时间(以秒为单位)。如果此数字大于25ms,则意味着写入磁盘时磁盘系统发生了延迟。可能的解决方案是将当前磁盘系统更换为速度更快的磁盘系统。
[0132]磁盘平均队列长度(PhysicalDisk\Avg.Disk Queue Length):它表示目前正在等待硬盘变为可用的I/O操作数。如果此值大于心轴数加2,则表示磁盘本身可能也是瓶颈。
[0133]缓存数量(Memory\Cache Bytes):它表示用于文件系统缓存的内存数量。如果此值大于200MB,则可能存在磁盘瓶颈。
[0134]优选地,本申请上述实施例中,如图4所示,在上述监测系统性能的装置中还包括:处理模块29。
[0135]其中,处理模块29,用于按照计算机系统中的每个部件的性能值确定性能降低类型,并获取性能降低类型对应的处理功能模块。
[0136]具体的,通过上述处理模块29,根据计算机系统中的各个部件的性能降低类型,进行处理。其中,处理功能模块可以包括:发送提示通知模块、清理系统后台进程、自动诊断模块等。
[0137]通过上述针对处理器,内存,磁盘的计数器的组合,在收集性能计数器数据后,根据收集数值和阀值的比较,能够快速定位处理器,内存,磁盘的性能瓶颈。同时,根据瓶颈点提出解决方案。
[0138]性能监视:是Windows NT提供的一种系统功能。Windows NT—直以来总是集成了性能监视工具,它提供有关操作系统当前运行状况的信息。
[0139]性能对象(PerformanceObject):被监视的性能对象,如 Processor、Process、Memory> PhysicalDisk 等,相当于类(Class)。
[0140]性能计数器(Performance Counter):描述性能对象性能信息的方式,相当于类属性。
[0141]对象实例(Object Instance):相同性能对象可能有多个,把它们表示为该对象类型的不同实例,相当于类实例。
[0142]需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
[0143]在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0144]在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
[0145]所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0146]另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0147]所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、移动终端、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM, Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0148]以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【权利要求】
1.一种监测系统性能的方法,其特征在于,包括: 创建计算机系统中每个部件的数据收集器,每个数据收集器保存一个监控列表,所述监控列表记录了与所述数据收集器关联的性能计数器的计数器标识; 设置所述每个性能计数器所对应的监测阈值,构成监测阈值集合; 运行任意一个或多个部件的数据收集器,通过所述数据收集器读取与所述数据收集器关联的性能计数器的计数值; 将所述任意一个性能计数器的计数值和对应的监测阈值进行比对,确定所述计算机系统中的每个部件的性能值。
2.根据权利要求1所述的方法,其特征在于,所述计算机系统中每个部件的数据收集器包括如下任意一个或多个:处理器数据收集器、内存数据收集器、存储器数据收集器。
3.根据权利要求2所述的方法,其特征在于,所述处理器的数据收集器采集如下任意一个或多个性能计数器的计数值:处理器平均利用率、处理器利用时间、处理器中断时间、处理器队列长度,其中,将所述任意一个性能计数器的计数值和对应的监测阈值进行比对,确定所述计算机系统中所述处理器的性能值的步骤包括: 将所述处理器平均利用率与第一监测阈值进行比较,得到第一监测结果; 将所述处理器利用时间与第二监测阈值进行比较,得到第二监测结果; 将所述处理器中断时间与第三监测阈值进行比较,得到第三监测结果; 将所述处理器队列长度与第四监测阈值进行比较,得到第四监测结果; 其中,当所述第一监测结果、所述第二监测结果、所述第三监测结果、所述第四监测结果中的任意一个或多个监测结果为计数值大于等于对应的监测阈值时,确定所述处理器的性能降低。
4.根据权利要求2所述的方法,其特征在于,所述内存的数据收集器采集如下任意一个或多个性能计数器的计数值:虚拟内存利用率、物理内存可用比例、非分页缓冲池大小、写入磁盘速率、分页读取数量,其中,将所述任意一个性能计数器的计数值和对应的监测阈值进行比对,确定所述计算机系统中所述内存的性能值的步骤包括: 将所述虚拟内存利用率与第五监测阈值进行比较,得到第五监测结果; 将所述物理内存可用比例与第六监测阈值进行比较,得到第六监测结果; 将所述非分页缓冲池大小与第七监测阈值进行比较,得到第七监测结果; 将所述写入磁盘速率与第八监测阈值进行比较,得到第八监测结果; 将所述分页读取数量与第九监测阈值进行比较,得到第九监测结果; 其中,当所述第五监测结果、所述第六监测结果、所述第七监测结果、所述第八监测结果、所述第九监测结果中的任意一个或多个监测结果为计数值大于等于对应的监测阈值时,确定所述内存的性能降低。
5.根据权利要求2所述的方法,其特征在于,所述存储器的数据收集器采集如下任意一个或多个性能计数器的计数值:逻辑磁盘可用率、磁盘空闲率、磁盘平均寻址速度、磁盘平均写入速度、磁盘平均队列长度、缓存数量,其中,将所述任意一个性能计数器的计数值和对应的监测阈值进行比对,确定所述计算机系统中所述存储器的性能值的步骤包括: 将所述逻辑磁盘可用率与第十监测阈值进行比较,得到第十监测结果; 将所述磁盘空闲率与第十一监测阈值进行比较,得到第十一监测结果; 将所述磁盘平均寻址速度与第十二监测阈值进行比较,得到第十二监测结果; 将所述磁盘平均写入速度与第十三监测阈值进行比较,得到第十三监测结果; 将所述磁盘平均队列长度与第十四监测阈值进行比较,得到第十四监测结果; 将所述缓存数量与所述第十五监测阈值进行比较,得到第十五监测结果; 其中,当所述第十监测结果、所述第十一监测结果、所述第十二监测结果、所述第十三监测结果、所述第十四监测结果、所述第十五监测结果中的任意一个或多个监测结果为计数值大于等于对应的监测阈值时,确定所述存储器性能降低。
6.根据权利要求1至5中任意一所述方法,其特征在于,在将所述任意一个性能计数器的计数值和对应的监测阈值进行比对,确定所述计算机系统中的每个部件的性能值之后,方法还包括: 按照所述计算机系统中的每个部件的所述性能值确定性能降低类型,并获取所述性能降低类型对应的处理功能模块。
7.—种监测系统性能的装置,其特征在于,包括: 创建模块,用于创建计算机系统中每个部件的数据收集器,每个数据收集器保存一个监控列表,所述监控列表记录了与所述数据收集器关联的性能计数器的计数器标识; 设置模块,用于设置所述每个性能计数器所对应的监测阈值,构成监测阈值集合; 读取模块,用于运行任意一个或多个部件的数据收集器,通过所述数据收集器读取与所述数据收集器关联的性能计数器的计数值; 确定模块,用于将所述任意一个性能计数器的计数值和对应的监测阈值进行比对,确定所述计算机系统中的每个部件的性能值。
8.根据权利要求7所述的装置,其特征在于,在所述确定模块中,包括: 第一子监测模块,用于将处理器平均利用率与第一监测阈值进行比较,得到第一监测结果; 第二子监测模块,用于将处理器利用时间与第二监测阈值进行比较,得到第二监测结果; 第三子监测模块,用于将处理器中断时间与第三监测阈值进行比较,得到第三监测结果; 第四子监测模块,用于将处理器队列长度与第四监测阈值进行比较,得到第四监测结果; 其中,当所述第一监测结果、所述第二监测结果、所述第三监测结果、所述第四监测结果中的任意一个或多个监测结果为计数值大于等于对应的监测阈值时,确定处理器的性能降低。
9.根据权利要求7所述的装置,其特征在于,在所述确定模块中,还包括: 第五子监测模块,用于将虚拟内存利用率与第五监测阈值进行比较,得到第五监测结果; 第六子监测模块,用于将物理内存可用比例与第六监测阈值进行比较,得到第六监测结果; 第七子监测模块,用于将非分页缓冲池大小与第七监测阈值进行比较,得到第七监测结果; 第八子监测模块,用于将写入磁盘速率与第八监测阈值进行比较,得到第八监测结果; 第九子监测模块,用于将分页读取数量与第九监测阈值进行比较,得到第九监测结果; 其中,当所述第五监测结果、所述第六监测结果、所述第七监测结果、所述第八监测结果、所述第九监测结果中的任意一个或多个监测结果为计数值大于等于对应的监测阈值时,确定内存的性能降低。
10.根据权利要求7所述的装置,其特征在于,在所述确定模块中,还包括: 第十子监测模块,用于将逻辑磁盘可用率与第十监测阈值进行比较,得到第十监测结果; 第十一子监测模块,用于将磁盘空闲率与第十一监测阈值进行比较,得到第十一监测结果; 第十二子监测模块,用于将磁盘平均寻址速度与第十二监测阈值进行比较,得到第十二监测结果; 第十三子监测模块,用于将磁盘平均写入速度与第十三监测阈值进行比较,得到第十三监测结果; 第十四子监测模块,用于将磁盘平均队列长度与第十四监测阈值进行比较,得到第十四监测结果; 第十五子监测模块,用于将缓存数量与第十五监测阈值进行比较,得到第十五监测结果; 其中,当所述第十监测结果、所述第十一监测结果、所述第十二监测结果、所述第十三监测结果、所述第十四监测结果、所述第十五监测结果中的任意一个或多个监测结果为计数值大于等于对应的监测阈值时,确定存储器性能降低。
11.根据权利要求7至10中任意一所述装置,其特征在于,所述装置还包括: 处理模块,用于按照所述计算机系统中的每个部件的所述性能值确定性能降低类型,并获取所述性能降低类型对应的处理功能模块。
【文档编号】G06F11/30GK104239183SQ201410487222
【公开日】2014年12月24日 申请日期:2014年9月22日 优先权日:2014年9月22日
【发明者】王恺 申请人:北京国双科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1