一种提取底层系统行为特征的操作系统监控方法及装置的制造方法

文档序号:9375435阅读:564来源:国知局
一种提取底层系统行为特征的操作系统监控方法及装置的制造方法
【技术领域】
[0001]本发明属于计算机体系结构领域,涉及计算机操作系统监控,特别涉及一种提取底层系统行为特征的操作系统监控方法及装置。
【背景技术】
[0002]系统监控是理解系统行为的关键,开发商和程序员依靠于系统监控工具来提供足够的信息去修正系统性能的瓶颈和隐藏的bugs。但是随着操作系统变得越来越复杂,为了理解这些系统执行行为而去识别出系统性能上的瓶颈和隐藏中的bugs变得越来越难。而现有的主要监测解决方案并没有做到用较低的开销提取足够多底层的系统特征,用于形式化方法的自动分析。比如,在软件中对指令操作进行监控和调试时设置的断点都会产生过大的开销。对系统调用的监控也是代价大而且没有充分的表现力。由开发商自己提供的硬件计数可以在配置该硬件后,收集到少量的特定有用的信息。但由于采用了采样的方法,还是没有足够多数据用于分析。相反的,在系统高层上的度量,像应用程序每秒中完成的事务数量等。该方法还是不能捕捉到足够精确的底层系统行为。而且很少有监控解决方案提供一个系统的和正式的方式利用过去的诊断信息发现和解决将来可能的问题。
[0003]Tudor Marian等人提出一种新的监控系统,能够通过计算内核函数的调用提取可变址的底层系统特征,并能有效在系统运行时使用统计方法如聚类分析和机器学习分析特征。然而信息检索已经完成了被证明了的开发成功的统计技术用于自动文档的检索和采集。信息检索简单的统计所有文档中的词频,从而产生足够多的特征信息用于分析。比如,搜索引擎传统的都是抛掉场景信息,然后使用词频通过实体评分(ranking)和实体排名(scoring)计算文档相关度。为了提取有用的底层系统特征,文献I中提取系统特征通过将信息采集中的概念和文本挖掘概念映射到系统行为中。一个信息采集概念中的词相对于一个内核函数的调用。一个文档相对于一段时间内的底层系统行为(low-levelsystem activity)或者系统调用一个语料库(corpus)相对于对多个系统行为(systemactivities)的收集。文献I中使用词频倒档(tf_idf)模式代表文档,用权重向量作为系统特征。但该方法记录整个操作系统所有的内核函数调用信息,而且只把函数调用的次数作为特征值并没有充分的体现系统在一段时间的行为活动。

【发明内容】

[0004]为了解决上述问题,本发明的目的在于,提供一种提取底层系统行为特征的监控方法及系统,能够更精确地捕捉操作系统的底层系统行为特征,对系统当前的活动状态进行监控。
[0005]为实现上述目的,本发明提出的提取底层系统行为特征的操作系统监控方法,包括:步骤1,采集操作系统中资源分配事件以及异常处理事件的内核函数的参数及返回值,将所述参数及返回值从系统内核传递到用户态下,并记录到存储文件上;步骤2,用户态下将所述参数及返回值构造为特征值,将所述特征值记录到训练数据集,其中所述特征值反应系统的活动状态;步骤3,获取操作系统当前的特征值,基于已经大量记录的所述训练数据集来判断操作系统当前的活动状态。
[0006]本发明的提取底层系统行为特征的操作系统监控方法,其中,所述资源分配事件的内核函数包括slab allocator内存分配函数、kfree释放内存空间函数和/或kmem_cache_alloc分配空闲对象函数;所述异常处理事件的内核函数包括do_page_falut缺页异常处理函数。
[0007]本发明的提取底层系统行为特征的操作系统监控方法,其中,上述步骤I包括:步骤11,操作系统初始化时在操作系统内核中创建relayfs文件系统通道;步骤12,修改现有的Ftrace函数中对函数调用的监控机制;步骤13,在所述relayfs文件系统通道中添加用于记录内核函数的堆栈信息的函数,并在所述内核函数中的出口部分添加用于记录所述内核函数的参数及返回值的函数。
[0008]本发明的提取底层系统行为特征的操作系统监控方法,其中,上述步骤I还包括:步骤14,对于每一个内核函数都分配一个唯一的ID号,用ID号来区分内核函数。
[0009]本发明的提取底层系统行为特征的操作系统监控方法,其中,在用户态下从relayfs文件系统通道中定期读取所记录的内核函数的参数及返回值,记录到存储文件上。
[0010]本发明的提取底层系统行为特征的操作系统监控方法,其中,在上述步骤2中,将所述磁盘文件上记录的所述参数及返回值构造为特征值构造为具有如下格式的特征值,
[0011](S1, F1Q,(I)
[0012]其中,31表示为内核函数ID,R ,(i)表示为第j次调用该函数时函数的返回值,Fj(I)表示为第j次调用该函数时函数的第i个参数值,为所有内核函数分配指定的ID。
[0013]本发明的提取底层系统行为特征的操作系统监控方法,其中,采用机器学习分类算法分析所述特征值,并记录到训练数据集。
[0014]本发明的提取底层系统行为特征的操作系统监控方法,其中,在上述步骤3中,以一段时间内获取的内核函数的参数和返回值作为系统当前活动状态特征值。
[0015]另外,本发明还提出一种采用上述任一种方法提取底层系统行为特征的操作系统监控装置。
[0016]本发明的效果在于:本发明并不监控内核所有函数,而是监控内核中主要的资源分配事件以及异常处理事件的函数的参数以及返回值,能够降低监控系统的工作量,利用较低的系统开销提取足够多底层系统特征,并采用形式化方法对获取的系统特征进行解析,采用机器学习分类方法训练特征数据集,从而能够利用系统过去的监控信息发现和解决系统当前可能会出现的问题。
【附图说明】
[0017]图1是本发明的提取底层系统行为特征的操作系统监控方法的流程图。
[0018]图2是本发明实施例的提取底层系统行为特征的操作系统监控方法的总体设计框图。
[0019]图3是本发明实施例的监控内核输入函数参数以及函数返回值的示意图。
[0020]图4是本发明的提取底层系统行为特征的操作系统监控装置的构成框图。
[0021]附图标记说明
[0022]I操作系统监控装置
[0023]11通道创建模块
[0024]12函数修改模块
[0025]13信息记录模块
【具体实施方式】
[0026]为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图对本发明的提取底层系统行为特征的操作系统监控方法及装置进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
[0027]—般来说,操作系统内核主要分为进程管理,内存管理,虚拟文件系统以及网络管理等等对上层应用提供系统资源。在本发明中,通过对其中主要关键函数的参数和返回值进行监控并提取出固定模式下系统的行为特征。与文献I不同的是本发明的监控方法并不监控内核所有的函数,而是监控内核中主要的资源分配事件以及异常处理事件的函数的参数以及返回值。对于参数和返回值,具有目前系统中大量的活动信息。而本发明将此方法应用监控系统的行为特征,因为系统的行为特征也包括对内存资源的管理,对文件系统的管理以及进程管理等。而其中所调用的内核函数的参数也富含了很多信息。比如监控内存管理部分,跟踪slab allocator内存分配函数的分配情况。包括kfree释放内存空间函数,kmem_CaChe_all0C分配空闲对象函数等内核函数的调用参数中拥有请求分配内存大小以申请向哪个区域的内存,最后可以根据tracer跟踪软件收集到的信息统计分析内部碎片情况,找出内存分配最频繁的代码片断,等等。也可根据内存分配机制(slab机制)中传递的参数得到内核近期分配使用频繁的结构体。对于异常事件的监控主要在于对do_page_falut缺页异常处理函数的监控,但函数的返回信息包含了对一些异常事件做出的决策,如用户层出现段错误,用户进程出现写时复制(copy)等。
[0028]本发明需要修改内核代码,监控指定函数调用信息以及在操作系统初始化时创建relayfs通道用于监控信息的传递。最后在用户空间启动一个守护进程定期从relayfs读取所记录函数调用的详细信息,记录到磁盘文件上。对磁盘文件上的记录信息构造特征值,用于最后的机器学习分类的训练数据集。
[0029]relayfs是一个快速的转发(relay)数据的文件系统,它以其功能而得名。它为那些需要从内核空间转发大量数据到用户空间的工具和应用提供了快速有效的转发机制。运用此转发工具来传输内核层函数监控得到的必要信息到用户层,供用户层进行分析。
[0030]下面给出本发明的具体实施例,结合附图对本发明做详细描述。
[0031]如图1所示,本发明的提取底层系统行为特征的监控方法,包括:
[0032]步骤1,采集操作系统中资源分配事件以及异常处理事件的内核函数的参数及返回值,将所述参数及返回值从系统内核传递到用户态下,并记录到磁盘文件上;
[0033]步骤2,用户态下将所述参数及返回值构造为特征值,将所述特征值记录到训练数据集,其中所述特征值反应系统的活动状态;
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1