CN109471772A - 并行程序运行时监控方法 - Google Patents
并行程序运行时监控方法 Download PDFInfo
- Publication number
- CN109471772A CN109471772A CN201811246356.8A CN201811246356A CN109471772A CN 109471772 A CN109471772 A CN 109471772A CN 201811246356 A CN201811246356 A CN 201811246356A CN 109471772 A CN109471772 A CN 109471772A
- Authority
- CN
- China
- Prior art keywords
- monitoring
- information
- program
- thread
- log
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3051—Monitoring arrangements for monitoring the configuration of the computing system or of the computing system component, e.g. monitoring the presence of processing resources, peripherals, I/O links, software programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明涉及一种并行程序运行时监控方法,涉及计算机软件技术领域。本发明针对现有监控技术及监控方法的不足和缺点,以并行程序为研究对象,设计了一种并行程序运行时监控方法。该方法主要由监控探针、提供实时监控信息的监控服务及图形化界面展示三部分构成。采用本发明并行程序运行时监控方法,通过建立监控服务,实现对程序运行具体行为细节的记录,掌握多核内部各个线程的运行轨迹及可能发生的交互,从而达到发现并定位运行时错误,提高软件运行安全性、可靠性的目的。
Description
技术领域
本发明涉及计算机软件技术领域,具体涉及一种并行程序运行时监控方法。
背景技术
随着集成电路、计算机技术和互联网的发展,嵌入式系统在功能上日渐完善,广泛应用于航空航天、金融、通讯终端、工业控制等各个领域,在可预见的将来,对嵌入式设备的计算性能要求必然会越来越高。程序运行时监控是一种能够及时获得系统软件运行状态,掌握系统软件实时行为,提高软件可靠性、安全性的重要方式。尤其在航空航天等对系统安全性要求较高的系统应用中,系统在进行真实环境的部署后,需要对实时系统平台的整体运行状况进行监控,以便在系统出现故障后能及时修复。由此可见,对系统并行程序运行状态进行实时监控显得尤为重要。
有关程序监控的研究起源于20世纪60年代,具有代表性的研究主要有:软件监控技术:1)MOP(Monitoring-Oriented Programming)技术,该技术将形式化的监控属性规范应用于目标程序语言,并将其转换成监控代码,可用于检测执行恢复代码、展示和发送预警信息以及抛出异常等问题的处理;2)针对Java语言构建的MaC(Monitoring and Check)监控框架,以保证目标程序的正确执行;3)HIFI技术,提供程序监控和大规模并行程序的运行控制等功能;4)Falcon技术,可针对大型分布式系统,实现对节点时间的控制,等等。
软件监控方法有:1)在程序中插入代码:该方法用于断言测试,断言通常采用开发人员手工编写与程序同时开发的方式在程序执行过程中发挥作用;同时,该方法还可以在编译时在注释点自动产生断言测试代码,用于程序的监控;2)创建观察者(Observer)进程的方式:在程序执行过程中,执行程序将状态信息等发送给观察者进程,通过观察者进程对状态信息进行分析,从而达到监控程序执行的目的,等等。
现有的开源系统监控软件,大多是针对集群等大规模计算资源,并且监控的信息也仅是局限于程序运行的基本信息,而在信息传输的可靠性、实时性等方面表现欠佳;此外,软件运行时监控技术一般只针对Java等高级的语言编程环境,因此对平台和第三方的依赖程度高,并且局限在本地运行监控,数据的获取和分析都在本地运行,给系统带来的负载和造成的开销较大。
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:如何设计一种操作系统环境下并行程序运行过程的监控方法,提高软件运行安全性、可靠性。
(二)技术方案
为了解决上述技术问题,本发明提供了一种并行程序运行时监控方法,包括以下步骤:
步骤一:构建监控探针,进行监控信息的获取和更新;
所述监控探针是一段代码,包括信息搜索功能代码,用于能够搜集程序运行时的状态信息,所述状态信息分为静态数据和动态数据两类,其中,静态数据包括进程标识号、线程所在文件,动态信息包括CPU利用情况、内存使用情况;
所述监控探针还包括逻辑代码,用于程序正确性校验,程序正确性校验的代码用于判断在程序执行过程中其动态行为和实时状态是否符合用户定义的规范,在程序运行过程中,当遇到代码规范被侵犯的情况,即触发用户自定义的行为,包括记录日志信息到恢复运行时状态的活动;
步骤二:构建监控信息搜索引擎,获取由各类监控探针采集的监控信息,并通过获取消息类型、消息长度、消息大小信息,存储到相应的监控信息存储空间中;
步骤三、构建监控服务接口实时获取线程、关键变量的监控信息,并实现开启或关闭监控服务对日志的记录功能。
优选地,所述监控探针分散在程序源代码中的任意位置,当执行到监控探针时,监控信息搜索引擎采集当前系统的状态信息,在采集数据的过程中使用如下的状态信息数据结构:
优选地,在对线程进行监控的过程中,采用Hash表的方法构建存储空间,以线程ID为索引,每一个线程对应一个存储监控信息的数据结构。
优选地,所述监控服务接口设计为:
Monitor(Thread_infor,variable_infor,open_log,close_log)
该接口定义了监控服务方法和内容,其中Thread_infor代表线程的监控信息,variable_infor代表变量的监控信息,open_log代表打开日志记录功能,close_log代表关闭日志记录功能。
优选地,在步骤三之后还包括步骤四:将监控服务接口收集到的数据进行图形化展示。
优选地,步骤四中将监控服务接口收集到的数据以表格、图形、日志的方式呈现出来。
优选地,所述监控探针通过以下两种方式插入到系统代码中:一是开发人员通过手动插入的方式;二是通过自动化工具根据对代码结构的分析,自动插入到程序的固定位置。
(三)有益效果
本发明针对现有监控技术及监控方法的不足和缺点,以并行程序为研究对象,设计了一种并行程序运行时监控方法。该方法主要由监控探针、提供实时监控信息的监控服务及图形化界面展示三部分构成。采用本发明并行程序运行时监控方法,通过建立监控服务,实现对程序运行具体行为细节的记录,掌握多核内部各个线程的运行轨迹及可能发生的交互,从而达到发现并定位运行时错误,提高软件运行安全性、可靠性的目的。
附图说明
图1为本发明的方法实现原理图。
具体实施方式
为使本发明的目的、内容、和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
如图1所示,本发明提出的并行程序运行时监控方法包括以下步骤:
步骤一:构建监控探针,进行监控信息的获取和更新
监控探针是本发明监控方法的重要组成,负责监控信息的获取和更新,并将监控信息及时发送给监控信息搜索引擎。本质上讲,监控探针是一段代码,包括信息搜索功能代码,用于能够搜集程序运行时的状态信息。状态信息可分为静态数据和动态数据两类,其中,静态数据包括进程标识号、线程所在文件等,动态信息包括CPU利用情况、内存使用情况等,并在监控服务中存储监控信息。监控探针通过以下两种方式插入到系统代码中:一是开发人员通过手动插入的方式;二是通过自动化工具根据对代码结构的分析,自动插入到程序的固定位置。
所述监控探针还包括逻辑代码,用于程序正确性校验。程序正确性校验的代码用于判断在程序执行过程中其动态行为和实时状态是否符合用户定义的规范,如形式化断言等。在程序实际运行过程中,如遇到代码规范被侵犯的情况,就会触发用户自定义的行为,包括记录日志信息到恢复运行时状态等一系列活动,从而达到保证监控信息获取准确性的目的。
步骤二:构建程序运行时监控服务
运行时监控服务构建是监控机制的核心,主要包括监控信息搜索引擎、监控信息存储空间和监控服务接口三部分。
本步骤中,构建监控信息搜索引擎,获取由各类监控探针采集的监控信息。
监控信息搜索引擎主要负责搜集由各类监控探针采集的监控信息。根据实际监控需求的不同,监控探针可以分散在程序源代码中的任意位置。当执行到监控探针时,就会采集当前系统的状态信息,并将信息发送给监控信息搜索引擎。在采集数据的过程中给出状态数据结构,如下所示:
在整个监控机制中,搜索引擎负责将监控探针搜集到的信息进行汇总,通过对消息类型、消息长度、消息大小等初步处理和分析后,将信息存储到相应的监控信息存储空间中。
监控信息存储空间用于存储监控搜索引擎发送的监控信息。由于多种不同监控需求共存,因此不同的监控需求都有其独立的存储空间。例如,在对线程进行监控的过程中,采用Hash表的方法构建存储空间,以线程ID为索引,每一个线程对应一个存储监控信息的数据结构。监控信息存储空间能够实现动态创建和销毁,并且监控信息还将根据系统的运行状态持续进行更新。
接着构建监控服务接口实时获取线程、关键变量的监控信息,并实现开启或关闭监控服务对日志的记录功能。
监控服务接口设计如下:
Monitor(Thread_infor,variable_infor,open_log,close_log);
该接口定义了监控服务方法和内容,其中Thread_infor代表线程的监控信息,variable_infor代表变量的监控信息,open_log代表打开日志记录功能,close_log代表关闭日志记录功能。
步骤三:将监控服务接口收集到的数据进行图形化界面展示
本步骤中,以表格、图形、日志等简单易懂的方式呈现出来,方便程序开发人员进行统计和数据分析,掌握程序的实时运行状态,为保证系统安全可靠运行提供有力支撑。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (7)
1.一种并行程序运行时监控方法,其特征在于,包括以下步骤:
步骤一:构建监控探针,进行监控信息的获取和更新;
所述监控探针是一段代码,包括信息搜索功能代码,用于能够搜集程序运行时的状态信息,所述状态信息分为静态数据和动态数据两类,其中,静态数据包括进程标识号、线程所在文件,动态信息包括CPU利用情况、内存使用情况;
所述监控探针还包括逻辑代码,用于程序正确性校验,程序正确性校验的代码用于判断在程序执行过程中其动态行为和实时状态是否符合用户定义的规范,在程序运行过程中,当遇到代码规范被侵犯的情况,即触发用户自定义的行为,包括记录日志信息到恢复运行时状态的活动;
步骤二:构建监控信息搜索引擎,获取由各类监控探针采集的监控信息,并通过获取消息类型、消息长度、消息大小信息,存储到相应的监控信息存储空间中;
步骤三、构建监控服务接口实时获取线程、关键变量的监控信息,并实现开启或关闭监控服务对日志的记录功能。
2.如权利要求1所述的方法,其特征在于,所述监控探针分散在程序源代码中的任意位置,当执行到监控探针时,监控信息搜索引擎采集当前系统的状态信息,在采集数据的过程中使用如下的状态信息数据结构:
3.如权利要求1所述的方法,其特征在于,在对线程进行监控的过程中,采用Hash表的方法构建存储空间,以线程ID为索引,每一个线程对应一个存储监控信息的数据结构。
4.如权利要求1所述的方法,其特征在于,所述监控服务接口设计为:
Monitor(Thread_infor,variable_infor,open_log,close_log)
该接口定义了监控服务方法和内容,其中Thread_infor代表线程的监控信息,variable_infor代表变量的监控信息,open_log代表打开日志记录功能,close_log代表关闭日志记录功能。
5.如权利要求1所述的方法,其特征在于,在步骤三之后还包括步骤四:将监控服务接口收集到的数据进行图形化展示。
6.如权利要求5所述的方法,其特征在于,步骤四中将监控服务接口收集到的数据以表格、图形、日志的方式呈现出来。
7.如权利要求1至6中任一项所述的方法,其特征在于,所述监控探针通过以下两种方式插入到系统代码中:一是开发人员通过手动插入的方式;二是通过自动化工具根据对代码结构的分析,自动插入到程序的固定位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811246356.8A CN109471772A (zh) | 2018-10-25 | 2018-10-25 | 并行程序运行时监控方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811246356.8A CN109471772A (zh) | 2018-10-25 | 2018-10-25 | 并行程序运行时监控方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109471772A true CN109471772A (zh) | 2019-03-15 |
Family
ID=65664059
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811246356.8A Pending CN109471772A (zh) | 2018-10-25 | 2018-10-25 | 并行程序运行时监控方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109471772A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112527638A (zh) * | 2020-12-01 | 2021-03-19 | 北京大米科技有限公司 | 程序监控系统、方法和计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090113243A1 (en) * | 2007-10-26 | 2009-04-30 | International Business Machines Corporation | Method, Apparatus and Computer Program Product for Rule-Based Directed Problem Resolution for Servers with Scalable Proactive Monitoring |
CN105491143A (zh) * | 2015-12-15 | 2016-04-13 | 国云科技股份有限公司 | 一种软件运行状态监控系统及其实现方法 |
CN106254172A (zh) * | 2016-07-14 | 2016-12-21 | 东软集团股份有限公司 | 异构应用数据采集方法及装置 |
-
2018
- 2018-10-25 CN CN201811246356.8A patent/CN109471772A/zh active Pending
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090113243A1 (en) * | 2007-10-26 | 2009-04-30 | International Business Machines Corporation | Method, Apparatus and Computer Program Product for Rule-Based Directed Problem Resolution for Servers with Scalable Proactive Monitoring |
CN105491143A (zh) * | 2015-12-15 | 2016-04-13 | 国云科技股份有限公司 | 一种软件运行状态监控系统及其实现方法 |
CN106254172A (zh) * | 2016-07-14 | 2016-12-21 | 东软集团股份有限公司 | 异构应用数据采集方法及装置 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112527638A (zh) * | 2020-12-01 | 2021-03-19 | 北京大米科技有限公司 | 程序监控系统、方法和计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Lou et al. | Mining dependency in distributed systems through unstructured logs analysis | |
JP5444673B2 (ja) | ログ管理方法、ログ管理装置、ログ管理装置を備えた情報処理装置、及びプログラム | |
CN102541634B (zh) | 通过后台虚拟机的探测插入 | |
KR100976443B1 (ko) | 홈네트워크 오류 예측 시스템 및 그 방법 | |
CN103399812B (zh) | 基于Xen硬件虚拟化的磁盘文件操作监控系统及监控方法 | |
CN105491038B (zh) | 一种智能设备协议解析方法 | |
CN108874624B (zh) | 服务器、监控Java进程的方法及存储介质 | |
CN113326209B (zh) | 面向大规模并行测试任务的分层分段的监控和干预方法 | |
CN105184886A (zh) | 一种云数据中心智能巡检系统及方法 | |
Chen et al. | Predicting job completion times using system logs in supercomputing clusters | |
CN106330990A (zh) | B/s结构的性能监控分析系统和方法 | |
CN113965497B (zh) | 服务器异常识别方法、装置、计算机设备及可读存储介质 | |
Pelleg et al. | Vigilant: out-of-band detection of failures in virtual machines | |
Qi et al. | Adanomaly: adaptive anomaly detection for system logs with adversarial learning | |
Cavallaro et al. | Identifying anomaly detection patterns from log files: A dynamic approach | |
CN109471772A (zh) | 并行程序运行时监控方法 | |
CN109992476A (zh) | 一种日志的分析方法、服务器及存储介质 | |
CN106649034A (zh) | 一种可视化智能运维方法及平台 | |
CN114528554B (zh) | 一种信息安全运行场景监控展示平台 | |
CN115222181B (zh) | 机器人运营状态监控系统及方法 | |
Meng et al. | IT troubleshooting with drift analysis in the DevOps era | |
Gazi et al. | Classification of NFRs for information system | |
CN107180060A (zh) | 日志信息的输出方法和日志输出装置 | |
CN109992475A (zh) | 一种日志的处理方法、服务器及存储介质 | |
Sun et al. | Design and Development of a Log Management System Based on Cloud Native Architecture |
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: 20190315 |
|
RJ01 | Rejection of invention patent application after publication |