CN109614290A - 容器中的进程异常信息记录方法及系统 - Google Patents
容器中的进程异常信息记录方法及系统 Download PDFInfo
- Publication number
- CN109614290A CN109614290A CN201811505280.6A CN201811505280A CN109614290A CN 109614290 A CN109614290 A CN 109614290A CN 201811505280 A CN201811505280 A CN 201811505280A CN 109614290 A CN109614290 A CN 109614290A
- Authority
- CN
- China
- Prior art keywords
- information
- memory space
- container
- function
- monitored
- 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/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)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开一种容器中的进程异常信息记录方法及系统,包括:在宿主机上为被监控容器分配存储空间,所述存储空间用于存储所监控到的进程异常相关信息;在所述被监控容器的应用代码中注册预设信号处理函数;当所述被监控容器中发生进程异常崩溃时,调用所述预设信号处理函数以获取发生异常崩溃的进程的时间戳信息、调用栈信息和寄存器信息;将所述时间戳信息、调用栈信息和寄存器信息记录在所述存储空间中。本发明在应用代码中注册一些特定信号的处理函数,在进程异常崩溃时,操作系统会向进程发送特定的信号,进程执行信号处理函数中的代码,将当前进程的时间戳、调用栈信息及寄存器信息输出至文件,保存在宿主机上。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种容器中的进程异常信息记录练方法及系统。
背景技术
目前常用的进程异常定位的方法,多为下列一种或多种手段的集合:
进程添加异常捕获代码,在关键代码块添加类似try/catch代码块,以保护代码安全,但有些脚本语言本身并无类似功能;
容器中设置监控程序,主动监控及上报进程异常信息,单独运行监控模块,对进程状态进行监控,收集并上报产生的异常信息;
生成core dump文件调试分析,通过调试产生的core dump文件来还原进程现场进行debug。
然而,发明人在实现本发明的过程中发现,对于进程添加异常捕获代码的方式,需要保护的地方必须全部添加异常捕获代码,一来某些高性能服务不可能大量添加捕获代码,二来有些语言本身也没有相应异常捕获机制,这些因素都使这种方法不能适应全部的异常情况。监控程序有侧重点,无法监控所有的异常场景,某些特殊异常场景下监控程序本身也可能已无法运行。core dump的方式本身需要生成dump文件,对硬盘等宿主机配置依赖较高。其中,某些特殊异常场景指的是一些运行环境异常导致进程崩溃的场景,例如,内存耗尽,驱动出错,硬件错误等等,这些问题都会导致使用上述的方法,要么异常捕获不准,要么完全无法捕获异常。对于采用异常捕获的方式,考虑到性能及编码代价一般只有关键代码会添加异常捕获,所以没添加捕获代码的自然捕获不到异常;对于采用core dump的方式,对于服务器,一般出异常时运行了很长时间,产生的dump文件会非常大,如果文件生成目录配置不正确或大小不合适,也无法正常记录异常;对于设置进程监控程序的方式,容易漏记,因为可能出现异常时,监控程序本身也无法运行了,比如内存耗尽。
发明内容
本发明实施例提供一种容器中的进程异常信息记录方法及系统,以及一种容器中进程异常定位方法及系统,用于至少解决上述技术问题之一。
第一方面,本发明实施例提供一种容器中的进程异常信息记录方法,包括:
在宿主机上为被监控容器分配存储空间,所述存储空间用于存储所监控到的进程异常相关信息;
在所述被监控容器的应用代码中注册预设信号处理函数;
当所述被监控容器中发生进程异常崩溃时,调用所述预设信号处理函数以获取发生异常崩溃的进程的时间戳信息、调用栈信息和寄存器信息;
将所述时间戳信息、调用栈信息和寄存器信息记录在所述存储空间中。
第二方面,本发明提供一种容器中进程异常定位方法,包括:
在宿主机上为被监控容器分配存储空间,所述存储空间用于存储所监控到的进程异常相关信息;
在所述被监控容器的应用代码中注册预设信号处理函数;
当所述被监控容器中发生进程异常崩溃时,调用所述预设信号处理函数以获取发生异常崩溃的进程的调用栈信息和寄存器信息;
将所述调用栈信息和所述寄存器信息记录在所述存储空间中;
当检测到所述存储空间中有新的信息存入时,生成告警信息;
根据所述告警信息查询所述存储空间以获取所述新的信息,所述新的信息包括新存入的所述调用栈信息和所述寄存器信息;
根据所述新的信息定位异常位置。
第三方面,本发明实施例提供一种容器中的进程异常信息记录系统,包括:
存储空间分配模块,用于在宿主机上为被监控容器分配存储空间,所述存储空间用于存储所监控到的进程异常相关信息;
函数注册模块,用于在所述被监控容器的应用代码中注册预设信号处理函数;
函数调用模块,用于当所述被监控容器中发生进程异常崩溃时,调用所述预设信号处理函数以获取发生异常崩溃的进程的时间戳信息、调用栈信息和寄存器信息;
信息记录模块,用于将所述时间戳信息、调用栈信息和寄存器信息记录在所述存储空间中。
第四方面,本发明实施例提供一种容器中进程异常定位系统,包括:
存储空间分配模块,用于在宿主机上为被监控容器分配存储空间,所述存储空间用于存储所监控到的进程异常相关信息;
函数注册模块,用于在所述被监控容器的应用代码中注册预设信号处理函数;
函数调用模块,用于当所述被监控容器中发生进程异常崩溃时,调用所述预设信号处理函数以获取发生异常崩溃的进程的调用栈信息和寄存器信息;
信息记录模块,用于将所述调用栈信息和所述寄存器信息记录在所述存储空间中;
告警生成模块,用于当检测到所述存储空间中有新的信息存入时,生成告警信息;
信息获取模块,用于根据所述告警信息查询所述存储空间以获取所述新的信息,所述新的信息包括新存入的所述调用栈信息和所述寄存器信息;
异常定位模块,用于根据所述新的信息定位异常位置。
第五方面,本发明实施例提供一种存储介质,所述存储介质中存储有一个或多个包括执行指令的程序,所述执行指令能够被电子设备(包括但不限于计算机,服务器,或者网络设备等)读取并执行,以用于执行本发明上述任一项容器中的进程异常信息记录方法和/或容器中进程异常定位方法。
第六方面,提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本发明上述任一项容器中的进程异常信息记录方法和/或容器中进程异常定位方法。
第七方面,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任一项容器中的进程异常信息记录方法和/或容器中进程异常定位方法。
本发明实施例的有益效果在于:应用代码中注册一些特定信号的处理函数,在进程异常崩溃时,操作系统会向进程发送特定的信号,进程执行信号处理函数中的代码,将当前进程的时间戳、调用栈信息及寄存器信息输出至文件,保存在宿主机上。这样可以准确记录异常产生的时间、调用栈及寄存器信息等关键信息,从而可以找到问题代码位置及错误现场,也不会有遗漏记录的情况产生。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明的容器中的进程异常信息记录方法的一实施例的流程图;
图2为本发明的容器中的进程异常信息记录方法的另一实施例的流程图;
图3为本发明的容器中进程异常定位方法的一实施例的流程图;
图4为本发明的容器中进程异常定位方法的另一实施例的流程图;
图5为本发明的容器中进程异常定位方法的又一实施例的流程图;
图6为本发明的容器中的进程异常信息记录系统的一实施例的原理框图;
图7为本发明的容器中进程异常定位系统的一实施例的原理框图;
图8为本发明的电子设备的一实施例的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、元件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
在本发明中,“模块”、“装置”、“系统”等指应用于计算机的相关实体,如硬件、硬件和软件的组合、软件或执行中的软件等。详细地说,例如,元件可以、但不限于是运行于处理器的过程、处理器、对象、可执行元件、执行线程、程序和/或计算机。还有,运行于服务器上的应用程序或脚本程序、服务器都可以是元件。一个或多个元件可在执行的过程和/或线程中,并且元件可以在一台计算机上本地化和/或分布在两台或多台计算机之间,并可以由各种计算机可读介质运行。元件还可以根据具有一个或多个数据包的信号,例如,来自一个与本地系统、分布式系统中另一元件交互的,和/或在因特网的网络通过信号与其它系统交互的数据的信号通过本地和/或远程过程来进行通信。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”,不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
如图1所示,本发明的实施例提供一种容器中的进程异常信息记录方法,包括:
S11、在宿主机上为被监控容器分配存储空间,所述存储空间用于存储所监控到的进程异常相关信息;所述存储空间中设置有存储目录,用于记录发生异常崩溃的进程的时间戳信息、调用栈信息和寄存器信息。
S12、在所述被监控容器的应用代码中注册预设信号处理函数;所述预设信号处理函数包括SIGSEGV信号处理函数和/或SIGFPE信号处理函数和/或SIGABRT信号处理函数。
S13、当所述被监控容器中发生进程异常崩溃时,调用所述预设信号处理函数以获取发生异常崩溃的进程的时间戳信息、调用栈信息和寄存器信息;
S14、将所述时间戳信息、调用栈信息和寄存器信息记录在所述存储空间中。
如图2所示,在本发明的容器中的进程异常信息记录方法的一些实施例中,所述将所述调用栈信息和所述寄存器信息记录在所述存储空间中包括:S141、将所述时间戳信息、调用栈信息和寄存器信息记录转化为预设格式(即后续实施例中所说的特定格式);
S142、将转化得到的预设格式的数据记录在所述存储空间中。
本发明在应用代码中注册一些特定信号的处理函数,在进程异常崩溃时,操作系统会向进程发送特定的信号,进程执行信号处理函数中的代码,将当前进程的时间戳、调用栈信息及寄存器信息输出至文件,保存在宿主机上。这样可以准确记录异常产生的时间、调用栈及寄存器信息等关键信息,从而可以用于实现快速定位问题代码位置及错误现场,也不会有遗漏记录的情况产生。
如图3所示,本发明还提供一种容器中进程异常定位方法,包括:
S21、在宿主机上为被监控容器分配存储空间,所述存储空间用于存储所监控到的进程异常相关信息;
S22、在所述被监控容器的应用代码中注册预设信号处理函数;
S23、当所述被监控容器中发生进程异常崩溃时,调用所述预设信号处理函数以获取发生异常崩溃的进程的调用栈信息和寄存器信息;
S24、将所述调用栈信息和所述寄存器信息记录在所述存储空间中;
S25、当检测到所述存储空间中有新的信息存入时,生成告警信息;
S26、根据所述告警信息查询所述存储空间以获取所述新的信息,所述新的信息包括新存入的所述调用栈信息和所述寄存器信息;
在一些实施例中,所述告警信息中包含对应于所述新的信息的唯一标识码信息;如图4所示,在一些实施例中,所述根据所述告警信息查询所述存储空间以获取所述新的信息包括:
S261、解析所述告警信息以确定所述新的信息的唯一标识码信息;
S262、根据所述新的信息的唯一标识码信息查询所述存储空间以获取所述新的信息。
S27、根据所述新的信息定位异常位置。
本发明在应用代码中注册一些特定信号的处理函数,在进程异常崩溃时,操作系统会向进程发送特定的信号,进程执行信号处理函数中的代码,将当前进程的时间戳、调用栈信息及寄存器信息输出至文件,保存在宿主机上。这样可以准确记录异常产生的时间、调用栈及寄存器信息等关键信息,从而可以找到问题代码位置及错误现场,也不会有遗漏记录的情况产生。
如图5所示,为本发明的容器中进程异常定位方法的另一实施例的流程图,具体包括以下步骤:
S31、在容器的代码编中注册信号处理函数并部署容器(示例性地,宿主机映射一段存储空间至容器空间,用来持久保存生成的异常信息记录文件),例如,在应用代码中注册SIGSEGV,SIGFPE,SIGABRT等信号处理函数;
S32、检测到容器进程异常,宿主机的操作系统向进程发送特定信号;示例性地,特定信号指的是SIGSEGV信号或者SIGFPE信号或者SIGABRT信号,当进程出现响应类型的异常时,操作系统会自动向进程发送对应的信号,这个是操作系统的自主行为。例如,如进程访问了错误或非法的内存地址,系统就会发送SIGSEGV信号,用来告诉进程它做了一个不合法的操作,需要进入异常退出机制了。
S33、进程执行信号处理函数中的代码,将异常进程的时间戳、调用栈和寄存器信息以特定格式输出至文件,并存储在相应目录下;示例性地,特定格式就是记录异常信息的内容的组成形式,可以是纯文本,XML,HTML,JSON等等,主要是便于程序员查看。
S34、宿主机监控模块监控到上述特征目录的变化,发出告警信息;示例性地,发送信息至告警中心,告警中心以邮件,短信,电话等中的一种或者多种形式向相关人员发出告警;
S35、开发人员收到告警信息后,查看文件信息并定位问题代码;
S36、修复所定位到的问题代码,并更新容器,之后跳转至步骤S34;示例性地,开发人员通过文件中记录的信息,确认问题代码位置,并解除问题。
在生产环境下,任何由进程异常崩溃导致的问题都会带来严重的后果,需要开发人员迅速进行问题定位并解决。常规手段无法保证每次均能准确记录下问题现场,或需要进行场景复现。导致问题解决缓慢。本方法可以准确记录所有进程异常崩溃,并及时通知到相关人员,开发人员根据调用栈及寄存器信息可以准确找出问题位置,无需场景复现及可迅速解决问题。
本专利所述方法只要进程出现异常无法正常运行时,操作系统都会向进程发送信号,使进程停止运行。此时进程会调用信号响应函数,记录下当前调用栈,及寄存器信息,以便查看出错时的函数传参,然后才会退出。信息记录很准确,不会漏记。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作合并,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
如图6所示,本发明的实施例还提供一种容器中的进程异常信息记录系统600,包括:
存储空间分配模块610,用于在宿主机上为被监控容器分配存储空间,所述存储空间用于存储所监控到的进程异常相关信息;
函数注册模块620,用于在所述被监控容器的应用代码中注册预设信号处理函数;
函数调用模块630,用于当所述被监控容器中发生进程异常崩溃时,调用所述预设信号处理函数以获取发生异常崩溃的进程的时间戳信息、调用栈信息和寄存器信息;
信息记录模块640,用于将所述时间戳信息、调用栈信息和寄存器信息记录在所述存储空间中。所述信息记录模块640包括数据转化单元和数据记录单元,其中,数据转化单元用于将所述时间戳信息、调用栈信息和寄存器信息记录转化为预设格式(即后续实施例中所说的特定格式);所述数据记录单元用于将转化得到的预设格式的数据记录在所述存储空间中。
本发明在应用代码中注册一些特定信号的处理函数,在进程异常崩溃时,操作系统会向进程发送特定的信号,进程执行信号处理函数中的代码,将当前进程的时间戳、调用栈信息及寄存器信息输出至文件,保存在宿主机上。这样可以准确记录异常产生的时间、调用栈及寄存器信息等关键信息,从而可以用于实现快速定位问题代码位置及错误现场,也不会有遗漏记录的情况产生。
如图7所示,本发明的实施例还提供一种容器中进程异常定位系统700,包括:
存储空间分配模块710,用于在宿主机上为被监控容器分配存储空间,所述存储空间用于存储所监控到的进程异常相关信息;
函数注册模块720,用于在所述被监控容器的应用代码中注册预设信号处理函数;
函数调用模块730,用于当所述被监控容器中发生进程异常崩溃时,调用所述预设信号处理函数以获取发生异常崩溃的进程的调用栈信息和寄存器信息;
信息记录模块740,用于将所述调用栈信息和所述寄存器信息记录在所述存储空间中;
告警生成模块750,用于当检测到所述存储空间中有新的信息存入时,生成告警信息;
信息获取模块760,用于根据所述告警信息查询所述存储空间以获取所述新的信息,所述新的信息包括新存入的所述调用栈信息和所述寄存器信息;
在一些实施例中,所述信息获取模块760包括解析单元和信息获取单元,其中,所述解析单元用于解析所述告警信息以确定所述新的信息的唯一标识码信息;所述信息获取单元用于根据所述新的信息的唯一标识码信息查询所述存储空间以获取所述新的信息。
异常定位模块770,用于根据所述新的信息定位异常位置。
本发明在应用代码中注册一些特定信号的处理函数,在进程异常崩溃时,操作系统会向进程发送特定的信号,进程执行信号处理函数中的代码,将当前进程的时间戳、调用栈信息及寄存器信息输出至文件,保存在宿主机上。这样可以准确记录异常产生的时间、调用栈及寄存器信息等关键信息,从而可以找到问题代码位置及错误现场,也不会有遗漏记录的情况产生。
在一些实施例中,本发明实施例提供一种非易失性计算机可读存储介质,所述存储介质中存储有一个或多个包括执行指令的程序,所述执行指令能够被电子设备(包括但不限于计算机,服务器,或者网络设备等)读取并执行,以用于执行本发明上述任一项容器中的进程异常信息记录方法和/或容器中进程异常定位方法。
在一些实施例中,本发明实施例还提供一种计算机程序产品,所述计算机程序产品包括存储在非易失性计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,使所述计算机执行上述任一项容器中的进程异常信息记录方法和/或容器中进程异常定位方法。
在一些实施例中,本发明实施例还提供一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行容器中的进程异常信息记录方法和/或容器中进程异常定位方法。
在一些实施例中,本发明实施例还提供一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时容器中的进程异常信息记录方法和/或容器中进程异常定位方法。
上述本发明实施例的容器中的进程异常信息记录系统和/或容器中进程异常定位系统可用于执行本发明实施例的容器中的进程异常信息记录方法和/或容器中进程异常定位方法,并相应的达到上述本发明实施例的实现容器中的进程异常信息记录方法和/或容器中进程异常定位方法所达到的技术效果,这里不再赘述。本发明实施例中可以通过硬件处理器(hardware processor)来实现相关功能模块。
图8是本申请另一实施例提供的执行容器中的进程异常信息记录方法(和/或容器中进程异常定位方法,以下实施例中为了便于叙述,仅以容器中的进程异常信息记录方法为例进行展开说明)的电子设备的硬件结构示意图,如图8所示,该设备包括:
一个或多个处理器810以及存储器820,图8中以一个处理器810为例。
执行容器中的进程异常信息记录方法的设备还可以包括:输入装置830和输出装置840。
处理器810、存储器820、输入装置830和输出装置840可以通过总线或者其他方式连接,图8中以通过总线连接为例。
存储器820作为一种非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如本申请实施例中的容器中的进程异常信息记录方法对应的程序指令/模块。处理器810通过运行存储在存储器820中的非易失性软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例容器中的进程异常信息记录方法。
存储器820可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据容器中的进程异常信息记录装置的使用所创建的数据等。此外,存储器820可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,存储器820可选包括相对于处理器810远程设置的存储器,这些远程存储器可以通过网络连接至容器中的进程异常信息记录装置。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置830可接收输入的数字或字符信息,以及产生与容器中的进程异常信息记录装置的用户设置以及功能控制有关的信号。输出装置840可包括显示屏等显示设备。
所述一个或者多个模块存储在所述存储器820中,当被所述一个或者多个处理器810执行时,执行上述任意方法实施例中的容器中的进程异常信息记录方法。
上述产品可执行本申请实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本申请实施例所提供的方法。
本申请实施例的电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(4)其他具有数据交互功能的电子装置。
以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对相关技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (10)
1.一种容器中的进程异常信息记录方法,包括:
在宿主机上为被监控容器分配存储空间,所述存储空间用于存储所监控到的进程异常相关信息;
在所述被监控容器的应用代码中注册预设信号处理函数;
当所述被监控容器中发生进程异常崩溃时,调用所述预设信号处理函数以获取发生异常崩溃的进程的时间戳信息、调用栈信息和寄存器信息;
将所述时间戳信息、调用栈信息和寄存器信息记录在所述存储空间中。
2.根据权利要求1所述的方法,其中,所述预设信号处理函数包括SIGSEGV信号处理函数和/或SIGFPE信号处理函数和/或SIGABRT信号处理函数。
3.根据权利要求1所述的方法,其中,所述将所述调用栈信息和所述寄存器信息记录在所述存储空间中包括:
将所述时间戳信息、调用栈信息和寄存器信息记录转化为预设格式;
将转化得到的预设格式的数据记录在所述存储空间中。
4.根据权利要求1所述的方法,其中,所述存储空间中设置有存储目录,用于记录所述时间戳信息、调用栈信息和寄存器信息。
5.一种容器中进程异常定位方法,包括:
在宿主机上为被监控容器分配存储空间,所述存储空间用于存储所监控到的进程异常相关信息;
在所述被监控容器的应用代码中注册预设信号处理函数;
当所述被监控容器中发生进程异常崩溃时,调用所述预设信号处理函数以获取发生异常崩溃的进程的调用栈信息和寄存器信息;
将所述调用栈信息和所述寄存器信息记录在所述存储空间中;
当检测到所述存储空间中有新的信息存入时,生成告警信息;
根据所述告警信息查询所述存储空间以获取所述新的信息,所述新的信息包括新存入的所述调用栈信息和所述寄存器信息;
根据所述新的信息定位异常位置。
6.根据权利要求5所述的方法,其中,所述告警信息中包含对应于所述新的信息的唯一标识码信息;
所述根据所述告警信息查询所述存储空间以获取所述新的信息包括:
解析所述告警信息以确定所述新的信息的唯一标识码信息;
根据所述新的信息的唯一标识码信息查询所述存储空间以获取所述新的信息。
7.一种容器中的进程异常信息记录系统,包括:
存储空间分配模块,用于在宿主机上为被监控容器分配存储空间,所述存储空间用于存储所监控到的进程异常相关信息;
函数注册模块,用于在所述被监控容器的应用代码中注册预设信号处理函数;
函数调用模块,用于当所述被监控容器中发生进程异常崩溃时,调用所述预设信号处理函数以获取发生异常崩溃的进程的时间戳信息、调用栈信息和寄存器信息;
信息记录模块,用于将所述时间戳信息、调用栈信息和寄存器信息记录在所述存储空间中。
8.一种容器中进程异常定位系统,包括:
存储空间分配模块,用于在宿主机上为被监控容器分配存储空间,所述存储空间用于存储所监控到的进程异常相关信息;
函数注册模块,用于在所述被监控容器的应用代码中注册预设信号处理函数;
函数调用模块,用于当所述被监控容器中发生进程异常崩溃时,调用所述预设信号处理函数以获取发生异常崩溃的进程的调用栈信息和寄存器信息;
信息记录模块,用于将所述调用栈信息和所述寄存器信息记录在所述存储空间中;
告警生成模块,用于当检测到所述存储空间中有新的信息存入时,生成告警信息;
信息获取模块,用于根据所述告警信息查询所述存储空间以获取所述新的信息,所述新的信息包括新存入的所述调用栈信息和所述寄存器信息;
异常定位模块,用于根据所述新的信息定位异常位置。
9.一种电子设备,其包括:至少一个处理器,以及与所述至少一个处理器通信连接的存储器,其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-6中任意一项所述方法的步骤。
10.一种存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现权利要求1-6中任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811505280.6A CN109614290A (zh) | 2018-12-10 | 2018-12-10 | 容器中的进程异常信息记录方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811505280.6A CN109614290A (zh) | 2018-12-10 | 2018-12-10 | 容器中的进程异常信息记录方法及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109614290A true CN109614290A (zh) | 2019-04-12 |
Family
ID=66007587
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811505280.6A Pending CN109614290A (zh) | 2018-12-10 | 2018-12-10 | 容器中的进程异常信息记录方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109614290A (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110262918A (zh) * | 2019-06-19 | 2019-09-20 | 深圳市网心科技有限公司 | 进程崩溃分析方法及装置、分布式设备及存储介质 |
CN110513252A (zh) * | 2019-08-30 | 2019-11-29 | 湘电风能有限公司 | 一种风电场scada系统数据异常告警修复系统与方法 |
CN110647467A (zh) * | 2019-09-23 | 2020-01-03 | 上海创景信息科技有限公司 | 基于单步异常的目标码覆盖率测试方法、系统及介质 |
CN110727566A (zh) * | 2019-09-05 | 2020-01-24 | 北京字节跳动网络技术有限公司 | 一种获取进程崩溃信息的方法、装置、介质和电子设备 |
CN111538986A (zh) * | 2020-04-15 | 2020-08-14 | 南京东科优信网络安全技术研究院有限公司 | 一种基于调用栈轨迹进行动态度量计算机可信状态装置及其方法 |
CN111625383A (zh) * | 2020-05-22 | 2020-09-04 | 北京达佳互联信息技术有限公司 | 进程异常事件处理方法、装置、电子设备及存储介质 |
CN111782432A (zh) * | 2020-06-29 | 2020-10-16 | 中国工商银行股份有限公司 | 用于容器异常分析的数据的采集方法及装置 |
CN111949547A (zh) * | 2020-08-22 | 2020-11-17 | 深圳市捷诚技术服务有限公司 | 基于单片机异常的问题定位方法、单片机、设备以及系统 |
CN112099798A (zh) * | 2020-09-16 | 2020-12-18 | 广州虎牙科技有限公司 | 公有函数执行耗时的统计方法、装置、存储介质及终端 |
CN112395617A (zh) * | 2019-08-15 | 2021-02-23 | 奇安信安全技术(珠海)有限公司 | 防护docker逃逸漏洞的方法、装置、存储介质及计算机设备 |
CN112965892A (zh) * | 2019-12-12 | 2021-06-15 | 大唐移动通信设备有限公司 | 软件系统的异常信息获取方法、装置、电子设备及介质 |
CN113220535A (zh) * | 2021-05-31 | 2021-08-06 | 北京马赫谷科技有限公司 | 程序异常的处理方法、装置、设备及存储介质 |
CN113535249A (zh) * | 2021-08-02 | 2021-10-22 | 京东数科海益信息科技有限公司 | 数据处理方法、装置、设备、存储介质及程序产品 |
CN113886122A (zh) * | 2021-09-30 | 2022-01-04 | 济南浪潮数据技术有限公司 | 一种系统运行异常处理方法、装置、设备及存储介质 |
CN114691481A (zh) * | 2020-12-30 | 2022-07-01 | 龙芯中科(成都)技术有限公司 | 异常定位方法、装置及可读存储介质 |
CN115061837A (zh) * | 2022-08-16 | 2022-09-16 | 苏州浪潮智能科技有限公司 | 一种调度跟踪和获取用户空间调用栈的方法和装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103365758A (zh) * | 2013-08-05 | 2013-10-23 | 北京搜狐新媒体信息技术有限公司 | 一种虚拟化环境下的进程监控方法及系统 |
CN103425576A (zh) * | 2012-05-25 | 2013-12-04 | 腾讯科技(深圳)有限公司 | 信息反馈的方法及终端 |
CN105204969A (zh) * | 2014-06-30 | 2015-12-30 | 腾讯科技(深圳)有限公司 | 异常日志处理方法以及异常日志处理装置 |
CN105824749A (zh) * | 2016-03-09 | 2016-08-03 | 上海博达数据通信有限公司 | 一种linux系统下用户态进程异常的分析方法 |
-
2018
- 2018-12-10 CN CN201811505280.6A patent/CN109614290A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103425576A (zh) * | 2012-05-25 | 2013-12-04 | 腾讯科技(深圳)有限公司 | 信息反馈的方法及终端 |
CN103365758A (zh) * | 2013-08-05 | 2013-10-23 | 北京搜狐新媒体信息技术有限公司 | 一种虚拟化环境下的进程监控方法及系统 |
CN105204969A (zh) * | 2014-06-30 | 2015-12-30 | 腾讯科技(深圳)有限公司 | 异常日志处理方法以及异常日志处理装置 |
CN105824749A (zh) * | 2016-03-09 | 2016-08-03 | 上海博达数据通信有限公司 | 一种linux系统下用户态进程异常的分析方法 |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110262918A (zh) * | 2019-06-19 | 2019-09-20 | 深圳市网心科技有限公司 | 进程崩溃分析方法及装置、分布式设备及存储介质 |
CN112395617A (zh) * | 2019-08-15 | 2021-02-23 | 奇安信安全技术(珠海)有限公司 | 防护docker逃逸漏洞的方法、装置、存储介质及计算机设备 |
CN110513252A (zh) * | 2019-08-30 | 2019-11-29 | 湘电风能有限公司 | 一种风电场scada系统数据异常告警修复系统与方法 |
CN110727566A (zh) * | 2019-09-05 | 2020-01-24 | 北京字节跳动网络技术有限公司 | 一种获取进程崩溃信息的方法、装置、介质和电子设备 |
CN110727566B (zh) * | 2019-09-05 | 2023-08-11 | 北京字节跳动网络技术有限公司 | 一种获取进程崩溃信息的方法、装置、介质和电子设备 |
CN110647467A (zh) * | 2019-09-23 | 2020-01-03 | 上海创景信息科技有限公司 | 基于单步异常的目标码覆盖率测试方法、系统及介质 |
CN110647467B (zh) * | 2019-09-23 | 2021-05-28 | 上海创景信息科技有限公司 | 基于单步异常的目标码覆盖率测试方法、系统及介质 |
CN112965892A (zh) * | 2019-12-12 | 2021-06-15 | 大唐移动通信设备有限公司 | 软件系统的异常信息获取方法、装置、电子设备及介质 |
CN111538986A (zh) * | 2020-04-15 | 2020-08-14 | 南京东科优信网络安全技术研究院有限公司 | 一种基于调用栈轨迹进行动态度量计算机可信状态装置及其方法 |
CN111625383A (zh) * | 2020-05-22 | 2020-09-04 | 北京达佳互联信息技术有限公司 | 进程异常事件处理方法、装置、电子设备及存储介质 |
CN111625383B (zh) * | 2020-05-22 | 2023-11-14 | 北京达佳互联信息技术有限公司 | 进程异常事件处理方法、装置、电子设备及存储介质 |
CN111782432B (zh) * | 2020-06-29 | 2024-03-22 | 中国工商银行股份有限公司 | 用于容器异常分析的数据的采集方法及装置 |
CN111782432A (zh) * | 2020-06-29 | 2020-10-16 | 中国工商银行股份有限公司 | 用于容器异常分析的数据的采集方法及装置 |
CN111949547A (zh) * | 2020-08-22 | 2020-11-17 | 深圳市捷诚技术服务有限公司 | 基于单片机异常的问题定位方法、单片机、设备以及系统 |
CN112099798A (zh) * | 2020-09-16 | 2020-12-18 | 广州虎牙科技有限公司 | 公有函数执行耗时的统计方法、装置、存储介质及终端 |
CN112099798B (zh) * | 2020-09-16 | 2024-04-19 | 广州虎牙科技有限公司 | 公有函数执行耗时的统计方法、装置、存储介质及终端 |
CN114691481A (zh) * | 2020-12-30 | 2022-07-01 | 龙芯中科(成都)技术有限公司 | 异常定位方法、装置及可读存储介质 |
CN113220535A (zh) * | 2021-05-31 | 2021-08-06 | 北京马赫谷科技有限公司 | 程序异常的处理方法、装置、设备及存储介质 |
CN113535249A (zh) * | 2021-08-02 | 2021-10-22 | 京东数科海益信息科技有限公司 | 数据处理方法、装置、设备、存储介质及程序产品 |
CN113886122A (zh) * | 2021-09-30 | 2022-01-04 | 济南浪潮数据技术有限公司 | 一种系统运行异常处理方法、装置、设备及存储介质 |
CN113886122B (zh) * | 2021-09-30 | 2024-03-01 | 济南浪潮数据技术有限公司 | 一种系统运行异常处理方法、装置、设备及存储介质 |
CN115061837A (zh) * | 2022-08-16 | 2022-09-16 | 苏州浪潮智能科技有限公司 | 一种调度跟踪和获取用户空间调用栈的方法和装置 |
WO2024037544A1 (zh) * | 2022-08-16 | 2024-02-22 | 苏州元脑智能科技有限公司 | 一种调度跟踪和获取用户空间调用栈的方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109614290A (zh) | 容器中的进程异常信息记录方法及系统 | |
CN110928772B (zh) | 一种测试方法及装置 | |
US9658914B2 (en) | Troubleshooting system using device snapshots | |
CN107562556B (zh) | 故障的恢复方法、恢复装置及存储介质 | |
CN107491371B (zh) | 一种监控部署的方法以及装置 | |
GB2363488A (en) | Referencing failure information representative of multiple related failures in a distributed computing environment | |
CN104572318B (zh) | 上报信息获取方法、装置、设备及系统 | |
US9710122B1 (en) | Customer support interface | |
US8443078B2 (en) | Method of determining equivalent subsets of agents to gather information for a fabric | |
CN108600035A (zh) | 一种非侵入式web应用监控与日志查询方法 | |
CN109818787A (zh) | 业务异常检测方法、装置及存储介质 | |
CN110784374A (zh) | 业务系统运行状态的监控方法、装置、设备和系统 | |
CN103441861A (zh) | 一种数据记录生成方法及装置 | |
CN105637488A (zh) | 追踪源代码用于末端用户监控 | |
CN107741902A (zh) | 程序应用检测方法及程序应用检测装置 | |
CN114745295A (zh) | 数据采集方法、装置、设备和可读存储介质 | |
CN109697020A (zh) | 一种数据存储方法、服务器及系统 | |
CN113595773A (zh) | 信息处理方法、装置、电子设备和存储介质 | |
CN109189679A (zh) | 接口测试方法及系统、电子设备、存储介质 | |
CN117499287A (zh) | Web测试方法、装置、存储介质及代理服务器 | |
CN110147294A (zh) | 调试信息的获取方法、装置、终端及计算机可读存储介质 | |
CN110333930A (zh) | 数字化平台系统 | |
CN115269331A (zh) | 面向微服务组的服务拓扑监控方法及相关设备 | |
CN114443343A (zh) | 一种服务接口反馈异常信息方法、装置、设备、存储介质 | |
CN103297865B (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 | ||
CB02 | Change of applicant information |
Address after: 215123 building 14, Tengfei Innovation Park, 388 Xinping street, Suzhou Industrial Park, Suzhou City, Jiangsu Province Applicant after: Sipic Technology Co.,Ltd. Address before: 215123 building 14, Tengfei Innovation Park, 388 Xinping street, Suzhou Industrial Park, Suzhou City, Jiangsu Province Applicant before: AI SPEECH Co.,Ltd. |
|
CB02 | Change of applicant information | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20190412 |
|
RJ01 | Rejection of invention patent application after publication |