CN113986685A - 异常处理方法、计算设备及存储介质 - Google Patents

异常处理方法、计算设备及存储介质 Download PDF

Info

Publication number
CN113986685A
CN113986685A CN202111329383.3A CN202111329383A CN113986685A CN 113986685 A CN113986685 A CN 113986685A CN 202111329383 A CN202111329383 A CN 202111329383A CN 113986685 A CN113986685 A CN 113986685A
Authority
CN
China
Prior art keywords
kernel
preset
running
container
command
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
Application number
CN202111329383.3A
Other languages
English (en)
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.)
Sangfor Technologies Co Ltd
Original Assignee
Sangfor 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 Sangfor Technologies Co Ltd filed Critical Sangfor Technologies Co Ltd
Priority to CN202111329383.3A priority Critical patent/CN113986685A/zh
Publication of CN113986685A publication Critical patent/CN113986685A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3051Monitoring 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
    • 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/3466Performance evaluation by tracing or monitoring
    • G06F11/3476Data logging
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Computer Hardware Design (AREA)
  • Debugging And Monitoring (AREA)

Abstract

本申请涉及异常处理方法、计算设备及存储介质,该方法包括:操作系统的内核接收用于运行容器中预置应用程序的运行命令;所述内核响应于所述运行命令,通过运行预置日志记录模块生成对应于所述运行命令的内核运行记录日志,并且通过运行预置程序执行模块执行所述预置应用程序。依据本申请一实施例,能够对容器使用操作系统内核的情况进行监视,从而降低异常排查难度。

Description

异常处理方法、计算设备及存储介质
技术领域
本申请涉及计算机技术领域,尤其涉及异常处理方法、计算设备及存储介质。
背景技术
Docker是一个开源的容器引擎。在计算设备上安装Docker后,可在Docker的基础上承载多个容器,多个容器共享操作系统内核,各容器可放置并执行不同的应用程序,彼此之间相互隔离。
近年来,k8s(即kubernetes)应用日益广泛。k8s是开源的基于容器的集群管理平台,其全称为kubernetes。参阅图1所示,一个k8s系统通常称为一个k8s集群,该集群主要包括主节点(也称主节点)及多个计算节点(也称计算节点),每个计算节点包括多个pod,一个pod内部封装一个或多个紧密相关的容器,主节点管理和控制整个集群,能够实现自动化容器部署和调度,并提供容器间的负载均衡。由于整个系统架构复杂,应用程序多样,系统出现异常时排查难度大;另一方面,由于容器共享操作系统内核,容器与操作系统会相互影响,也进一步增加异常排查难度,并且,每个容器的应用程序都能对操作系统内核参数进行配置,且通常会作用于操作系统和其他容器,这样,出现异常的可能性较高。
发明内容
为解决或部分解决相关技术中存在的问题,本申请提供异常处理方法、计算设备及存储介质,能够对容器使用操作系统内核的情况进行监视,从而降低异常排查难度。
本申请一方面提供一种异常处理方法,包括:
操作系统的内核接收用于运行容器中预置应用程序的运行命令;
所述内核响应于所述运行命令,通过运行预置日志记录模块生成对应于所述运行命令的内核运行记录日志,并且通过运行预置程序执行模块执行所述预置应用程序。
一些实施例中,所述通过运行预置日志记录模块生成对应于所述运行命令的内核运行记录日志包括:
通过调用包含有预置日志记录模块的预置动态链接库生成对应于所述运行命令的动态链接库使用记录日志。
一些实施例中,所述内核响应于所述运行命令,通过运行预置日志记录模块生成对应于所述运行命令的内核运行记录日志,并且通过运行预置程序执行模块对所述运行命令进行处理包括:
所述内核响应于所述运行命令,依次调用包含有预置日志记录模块的预置动态链接库和预置进程替换函数,以通过所述日志记录模块生成对应于所述运行命令的动态链接库使用记录日志,通过调用所述预置进程替换函数执行所述应用程序;
其中,所述预置进程替换函数包装于所述预置动态链接库内中。
一些实施例中,所述通过运行预置日志记录模块生成对应于所述运行命令的内核运行记录日志之后包括:
向可视化平台模块发送所述内核运行记录日志,以进行所述内核运行记录日志的可视化展示。
一些实施例中,还包括:
所述预置应用程序运行过程中需配置内核参数时,所述内核将所述内核参数配置为指定值,且使本次配置仅对所述容器有效;
所述内核基于所述指定值执行所述预置应用程序。
一些实施例中,所述将所述内核参数配置为指定值,且使本次配置仅对所述容器有效,包括:
通过控制组control groups机制将所述内核参数配置为指定值,且将所述指定值的作用域限制为对所述容器有效。
一些实施例中,所述通过控制组control groups机制将所述内核参数配置为指定值,且将所述指定值的作用域限制为对所述容器有效包括:
调用附加到所述控制组的钩子程序BPF_PROG_TYPE_CGROUP_SYSCTL,以及调用bpf_sysctl_get_name()函数和bpf_sysctl_set_new_value()函数将所述内核参数配置为指定值。
本申请另一方面提供一种异常处理方法,包括:
容器中的预置应用程序运行过程中需配置内核参数时,操作系统的内核将所述内核参数配置为指定值,且使本次配置仅对所述容器有效;
所述内核基于所述指定值执行所述预置应用程序。
本申请再一方面提供一种计算设备,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如上所述的方法。
本申请又一方面提供一种计算机可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如上所述的方法。
本申请一实施例中,操作系统内核通过运行预置日志记录模块生成对应于容器中预置应用程序的运行命令的内核运行记录日志,这样,能够对容器使用操作系统内核的情况进行监视,从而降低异常排查难度。可以理解的,本申请中所述对容器使用操作系统内核的情况进行监视包括对容器使用操作系统内核部分资源的情况进行监视的情形。
本申请一实施例中,当容器的应用程序运行过程中需配置内核参数时,操作系统的内核将该内核参数配置为指定值,且使本次配置仅对该容器有效。通过使指定值的作用域限制为对该容器有效,可将容器对于内核参数的配置效果限制在该容器内部,隔离于其他容器和操作系统内核,可以避免各容器之间、以及容器与操作系统内核之间相互影响,从而能够在优化操作系统性能的同时,降低由于容器的应用程序对操作系统内核参数的配置而导致的异常发生可能性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
附图说明
通过结合附图对本申请示例性实施方式进行更详细地描述,本申请的上述以及其它目的、特征和优势将变得更加明显,其中,在本申请示例性实施方式中,相同的参考标号通常代表相同部件。
图1示出k8s系统的架构图;
图2是本申请一实施例的异常处理方法的流程示意图;
图3示例性地示出本申请的异常处理方法的一个具体实例;
图4是本申请另一实施例的异常处理方法的流程示意图;
图5是本申请实施例示出的计算设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本申请的实施方式。虽然附图中显示了本申请的实施方式,然而应该理解,可以以各种形式实现本申请而不应被这里阐述的实施方式所限制。相反,提供这些实施方式是为了使本申请更加透彻和完整,并且能够将本申请的范围完整地传达给本领域的技术人员。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语“第一”、“第二”、“第三”等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本申请的描述中,“多个”的含义是两个或两个以上,除非另有明确具体的限定。
本发明一实施例提供一种计算设备,包括处理器及存储有计算机程序的存储器。上述处理器执行所存储的计算机程序时可以实现将在后面描述的异常处理方法。计算设备可以是但不限于云端服务器。可以理解的,云端服务器可以是一个物理服务器或者多个物理服务器虚拟而成的一个逻辑服务器。云端服务器也可以是多个可互联通信的服务器组成的服务器群,且各个功能模块可分别分布在服务器群中的各个服务器上。
一些实施例中,计算设备为图1所示k8s集群中的一个Node节点。
图2示出本发明一实施例的异常处理方法的流程图。本实施例方法可以用于上述的计算设备。参阅图2,本实施例的异常处理方法包括:
步骤S210,操作系统的内核接收用于运行容器中预置应用程序里的运行命令。
容器中预置应用程序的可执行程序及程序依赖的文件(例如配置文件和需要调用的动态库等),多个容器彼此之间相互隔离,并共用操作系统的内核,操作系统的内核为容器中的应用程序提供运行环境。容器启动运行后,其本质上是操作系统下的线程,操作系统的内核可对容器中应用程序里的运行命令进行响应。
本实施例中,操作系统可以为Linux操作系统,容器可以是docker容器。可以理解的,本申请不限于此,例如,操作系统还可以是Windows系统,容器还可以是LinuxContainer、OpenVZ,Jail、Zones等类型。以下以Linux操作系统和docker容器为例进行介绍。
步骤S220,操作系统的内核响应于该运行命令,通过运行预置日志记录模块生成对应于该运行命令的内核运行记录日志,并且通过运行预置程序执行模块执行所述预置应用程序。
内核是操作系统的核心,包括多个用于实现各基本功能的模块,例如虚拟内存、多任务、共享库、需求加载、可执行程序和TCP/IP网络功能等。Linux系统内核包括以下模块:存储管理、进程管理、文件系统、设备管理和驱动、网络调用等。
操作系统的内核接收到用于运行容器中预置应用程序的运行命令后,响应于该运行命令,通过运行预置日志记录模块生成对应于运行命令的内核运行记录日志,并且通过运行预置程序执行模块执行该预置应用程序。
相关技术中,通常不对容器使用操作系统内核的情况进行监视,这样,当因操作系统内核运行某个容器的应用程序导致异常出现时,会因缺乏监控而难于排查异常原因。本申请实施例中,操作系统内核通过运行预置日志记录模块生成对应于容器中预置应用程序的运行命令的内核运行记录日志,这样,能够对容器使用操作系统内核的情况进行监视,从而降低异常排查难度。可以理解的,本申请中所述对容器使用操作系统内核的情况进行监视包括对容器使用操作系统内核部分资源的情况进行监视的情形。
一些实施例中,操作系统的内核响应于用于运行容器中预置应用程序的运行命令,通过调用包含有预置日志记录模块的预置动态链接库程序生成对应于该运行命令的动态链接库使用记录日志。容器运行时,大部分情况下调用操作系统内核会调用其提供的动态链接库,本实施例中,通过对容器使用动态链接库的情况进行记录,能够在不占用过多资源的情况下对容器使用操作系统内核的情况进行较有效的监视。
一些实施例中,操作系统的内核响应于用于运行容器中预置应用程序的运行命令,依次调用包含有预置日志记录模块的预置动态链接库和预置进程替换函数,以通过日志记录模块生成对应于该运行命令的动态链接库使用记录日志,通过调用预置进程替换函数执行所述应用程序;其中,预置进程替换函数包装于预置动态链接库内中。在Linux系统中,预置进程替换函数可以是exec函数族中的函数,例如可以是execv()和execve()。
在一个具体实例中,将Linux的动态链接库文件系统lib.so中的exec函数族中的函数包装于例如可命名为wrapper.so的动态链接库中,该动态链接库还包含有用于生成动态链接库使用记录日志的日志记录模块。可以理解的,日志记录模块可以是封装在wrapper.so内的函数,如日志打印函数,也可以是wrapper.so内不需另外调用可直接执行的代码块。可以理解的,日志记录模块可以是Linux系统提供的已有模块,或者可以通过开源渠道获得,或者也可以是开发者自己编写实现,这里不再赘述。在动态链接库文件系统lib.so内配置wrapper.so后,Linux系统的内核响应不同容器的应用程序的运行命令时,均如图3所示,按照bin/mount、动态链接库wrapper.so、exec族函数的先后顺序进行自动调用,通过wrapper.so中包含的日志记录模块生成对应于该运行命令的动态链接库使用记录日志,通过调用exec族函数执行应用程序。
exec函数族提供了一个在进程中启动另一个程序执行的方法。它可以根据指定的文件名或目录名找到可执行文件,并用它来取代原调用进程的数据段、代码段和堆栈段,换句话说,就是在原调用进程内部执行一个可执行文件。这里的可执行文件既可以是二进制文件,也可以是任何Linux下可执行的脚本文件。在执行完之后,原调用进程的内容除了进程标识外,其他全部被新程序的内容替换了。
本实施例中,通过将exec族函数包装于动态链接库中,并且该动态链接库还包含有用于生成动态链接库使用记录日志的日志记录模块,能够在动态链接库文件系统lib.so内配置wrapper.so后,Linux系统的内核响应不同容器的应用程序的运行命令时,只要应用程序被配置为调用动态链接库,均能够自动调用动态链接库wrapper.so和exec族函数,从而对所有容器使用动态链接库的情况均进行记录,这样,即使容器的应用程序运行时间非常短暂,也能够生成对应记录,因此,能够提高监视的有效性和可靠性。
一些实施例中,生成的动态链接库使用记录日志例如可以包括所调用的相应容器内的服务进程的预设信息字段,例如包括进程标识、父进程标识、服务名、具体命令、命令的路径、时间等信息中的部分或全部。
一些实施例中,通过运行预置日志记录模块生成对应于运行命令的内核运行相关记录日志之后,向可视化平台模块发送内核运行记录日志,以进行内核运行记录日志的可视化展示。
可视化平台模块用于对容器应用程序运行过程中的包括上述内核运行记录日志在内的各种日志进行收集、管理和展示。进一步的,对于各种日志可以提供搜索、分类等管理功能,并通过用户终端进行相应显示。
通过可视化的方式,能使开发、测试、维护等不同阶段的人员直观了解内核运行记录,可显著提升采用容器的系统中异常问题的解决效率。
图4是本发明另一实施例的异常处理方法的流程图。参阅图4,本实施例方法包括:
步骤S410,容器中的预置应用程序运行过程中需配置内核参数时,操作系统的内核将该内核参数配置为指定值,且使本次配置仅对该容器有效。
步骤S420,内核基于该指定值执行该预置应用程序。
操作系统的内核有很多可以定制化的参数,即内核参数,内核参数涵盖内核的方方面面,包括网络、文件系统等。通过动态设置内核参数的参数值,能够优化操作系统的性能。
操作系统的内核允许容器中的应用程序对指定内核参数进行配置。相关技术中,每个容器的应用程序都能对操作系统内核参数进行配置,且通常会作用于操作系统和其他容器,因此,出现异常的可能性较高。本申请中,当容器的应用程序运行过程中需配置内核参数时,操作系统的内核将该内核参数配置为指定值,且使本次配置仅对该容器有效。通过使指定值的作用域限制为对该容器有效,可将容器对于内核参数的配置效果限制在该容器内部,隔离于其他容器和操作系统内核,可以避免各容器之间、以及容器与操作系统内核之间相互影响,从而能够在优化操作系统性能的同时,降低由于容器的应用程序对操作系统内核参数的配置而导致的异常发生可能性。
一些实施例中,将该内核参数配置为指定值,且使本次配置仅对所述容器有效,包括:
通过控制组control groups机制将该内核参数配置为指定值,且将该指定值的作用域限制为对该容器有效。
Linux系统的内核通过procfs伪文件系统(也称proc文件系统)暴露其内核参数的访问接口,挂载在/proc目录下,通过该访问接口,可以配置内核参数的参数值。Linux系统中内置sysctl命令,可以通过此命令通过procfs接口配置指定内核参数的参数值。通过这种方式配置内核参数的参数值时,对整个内核生效。本实施例中,当容器的应用程序运行过程中需配置内核参数时,内核禁止挂载proc文件系统,通过控制组control group机制将该内核参数配置为指定值,且将指定值的作用域限制为该容器有效。
control group简称cgroup,是Linux系统内核提供的一种可以对容器中的进程所占用的系统资源(例如cpu,内存,IO等)进行限制、记录、隔离的机制;通过控制分配到容器的系统资源,能够避免当多个容器同时运行时对系统资源的竞争。容器启动时,在后台Docker为容器创建控制组集合。控制组分为几个子系统,每个子系统代表一种设施或者说是资源控制器,用来调度某一类资源的使用,如cpu时钟、内存、块设备等。子系统必须附加(attach)到一个层级上才能起作用,一个子系统附加到某个层级以后,这个层级上的所有控制族群都受到这个子系统的控制。
在一个具体实现中,当容器内的控制组内的进程运行过程中需设置内核参数时,内核禁止挂载proc文件系统,调用附加到该控制组的钩子程序BPF_PROG_TYPE_CGROUP_SYSCTL,以通过调用bpf_sysctl_get_name()函数和bpf_sysctl_set_new_value()函数将内核参数配置为指定值。
BPF_PROG_TYPE_CGROUP_SYSCTL程序为sysctl命令提供了cgroup-bpf钩子,该钩子必须附加到一个cgroup,每次该cgroup内的进程尝试读取或写入proc中的sysct时都会被调用。sysctl命令由名称和值表示。若调用BPF_PROG_TYPE_CGROUP_SYSCTL程序返回允许访问内核参数的结果,可继续调用bpf_sysctl_get_name()和bpf_sysctl_set_new_value()函数。调用bpf_sysctl_get_name()函数可获取sysctl名称,调用bpf_sysctl_set_new_value()函数在实际写入发生之前覆盖当前写入sysctl的新字符串值。可以理解的,本实施例中,可以将该钩子附加到容器的不同控制组,从而能够在容器内的不同子系统中生效。容器内各控制器组内的进程尝试读取或写入sysct时都会被调用。
可以理解的,图4所示实施例的方法可独立于图2的实施例实施,或者,也可与图2的实施例组合实施。
图5示出前面所提及的计算设备。参见图5,本申请一实施例的计算设备500包括存储器510和处理器520。
处理器520可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器510可以包括各种类型的存储单元,例如系统内存、只读存储器(ROM)和永久存储装置。其中,ROM可以存储处理器520或者计算机的其他模块需要的静态数据或者运行命令。永久存储装置可以是可读写的存储装置。永久存储装置可以是即使计算机断电后也不会失去存储的运行命令和数据的非易失性存储设备。在一些实施方式中,永久性存储装置采用大容量存储装置(例如磁或光盘、闪存)作为永久存储装置。另外一些实施方式中,永久性存储装置可以是可移除的存储设备(例如软盘、光驱)。系统内存可以是可读写存储设备或者易失性可读写存储设备,例如动态随机访问内存。系统内存可以存储一些或者所有处理器在运行时需要的运行命令和数据。此外,存储器510可以包括任意计算机可读存储媒介的组合,包括各种类型的半导体存储芯片(例如DRAM,SRAM,SDRAM,闪存,可编程只读存储器),磁盘和/或光盘也可以采用。在一些实施方式中,存储器510可以包括可读和/或写的可移除的存储设备,例如激光唱片(CD)、只读数字多功能光盘(例如DVD-ROM,双层DVD-ROM)、只读蓝光光盘、超密度光盘、闪存卡(例如SD卡、min SD卡、Micro-SD卡等)、磁性软盘等。计算机可读存储媒介不包含载波和通过无线或有线传输的瞬间电子信号。
存储器510上存储有可执行代码,当可执行代码被处理器520处理时,可以使处理器520执行上文述及的方法中的部分或全部。
此外,根据本申请的方法还可以实现为一种计算机程序或计算机程序产品,该计算机程序或计算机程序产品包括用于执行本申请的上述方法中部分或全部步骤的计算机程序代码运行命令。
或者,本申请还可以实施为一种计算机可读存储介质(或非暂时性机器可读存储介质或机器可读存储介质),其上存储有可执行代码(或计算机程序或计算机运行命令代码),当可执行代码(或计算机程序或计算机运行命令代码)被电子设备(或服务器等)的处理器执行时,使处理器执行根据本申请的上述方法的各个步骤的部分或全部。
以上已经描述了本申请的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术的改进,或者使本技术领域的其他普通技术人员能理解本文披露的各实施例。

Claims (12)

1.一种异常处理方法,其特征在于,包括:
操作系统的内核接收用于运行容器中预置应用程序的运行命令;
所述内核响应于所述运行命令,通过运行预置日志记录模块生成对应于所述运行命令的内核运行记录日志,并且通过运行预置程序执行模块执行所述预置应用程序。
2.根据权利要求1所述的方法,其特征在于,所述通过运行预置日志记录模块生成对应于所述运行命令的内核运行记录日志包括:
通过调用包含有预置日志记录模块的预置动态链接库生成对应于所述运行命令的动态链接库使用记录日志。
3.根据权利要求1所述的方法,其特征在于,所述内核响应于所述运行命令,通过运行预置日志记录模块生成对应于所述运行命令的内核运行记录日志,并且通过运行预置程序执行模块对所述运行命令进行处理包括:
所述内核响应于所述运行命令,依次调用包含有预置日志记录模块的预置动态链接库和预置进程替换函数,以通过所述日志记录模块生成对应于所述运行命令的动态链接库使用记录日志,通过调用所述预置进程替换函数执行所述应用程序;
其中,所述预置进程替换函数包装于所述预置动态链接库内中。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述通过运行预置日志记录模块生成对应于所述运行命令的内核运行记录日志之后包括:
向可视化平台模块发送所述内核运行记录日志,以进行所述内核运行记录日志的可视化展示。
5.根据权利要求1所述的方法,其特征在于,还包括:
所述预置应用程序运行过程中需配置内核参数时,所述内核将所述内核参数配置为指定值,且使本次配置仅对所述容器有效;
所述内核基于所述指定值执行所述预置应用程序。
6.根据权利要求5所述的方法,其特征在于,所述将所述内核参数配置为指定值,且使本次配置仅对所述容器有效,包括:
通过控制组control groups机制将所述内核参数配置为指定值,且将所述指定值的作用域限制为对所述容器有效。
7.根据权利要求6所述的方法,其特征在于,所述通过控制组controlgroups机制将所述内核参数配置为指定值,且将所述指定值的作用域限制为对所述容器有效包括:
调用附加到所述控制组的钩子程序BPF_PROG_TYPE_CGROUP_SYSCTL,以及调用bpf_sysctl_get_name()函数和bpf_sysctl_set_new_value()函数将所述内核参数配置为指定值。
8.一种异常处理方法,其特征在于,包括:
容器中的预置应用程序运行过程中需配置内核参数时,操作系统的内核将所述内核参数配置为指定值,且使本次配置仅对所述容器有效;
所述内核基于所述指定值执行所述预置应用程序。
9.根据权利要求8所述的方法,其特征在于,所述将所述内核参数配置为指定值,且使本次配置仅对所述容器有效,包括:
通过控制组control groups机制将所述内核参数配置为指定值,且将所述指定值的作用域限制为对所述容器有效。
10.根据权利要求9所述的方法,其特征在于,所述通过控制组controlgroups机制将所述内核参数配置为指定值,且将所述指定值的作用域限制为对所述容器有效包括:
调用附加到所述控制组的钩子程序BPF_PROG_TYPE_CGROUP_SYSCTL,以及调用bpf_sysctl_get_name()函数和bpf_sysctl_set_new_value()函数将所述内核参数配置为指定值。
11.一种计算设备,其特征在于,包括:
处理器;以及
存储器,其上存储有可执行代码,当所述可执行代码被所述处理器执行时,使所述处理器执行如权利要求1至10中任一项所述的方法。
12.一种计算机可读存储介质,其上存储有可执行代码,当所述可执行代码被电子设备的处理器执行时,使所述处理器执行如权利要求1至10中任一项所述的方法。
CN202111329383.3A 2021-11-10 2021-11-10 异常处理方法、计算设备及存储介质 Pending CN113986685A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111329383.3A CN113986685A (zh) 2021-11-10 2021-11-10 异常处理方法、计算设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111329383.3A CN113986685A (zh) 2021-11-10 2021-11-10 异常处理方法、计算设备及存储介质

Publications (1)

Publication Number Publication Date
CN113986685A true CN113986685A (zh) 2022-01-28

Family

ID=79747810

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111329383.3A Pending CN113986685A (zh) 2021-11-10 2021-11-10 异常处理方法、计算设备及存储介质

Country Status (1)

Country Link
CN (1) CN113986685A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116419291A (zh) * 2023-06-09 2023-07-11 阿里巴巴(中国)有限公司 运行时参数的提取方法、设备及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110120940A (zh) * 2019-04-12 2019-08-13 华中科技大学 一种面向Docker容器的文件系统资源隔离方法
CN110955492A (zh) * 2019-11-11 2020-04-03 广州供电局有限公司 基于容器技术的服务处理方法、装置和计算机设备
US20200249972A1 (en) * 2019-02-04 2020-08-06 Verizon Patent And Licensing Inc. Elastic container platform architecture

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20200249972A1 (en) * 2019-02-04 2020-08-06 Verizon Patent And Licensing Inc. Elastic container platform architecture
CN110120940A (zh) * 2019-04-12 2019-08-13 华中科技大学 一种面向Docker容器的文件系统资源隔离方法
CN110955492A (zh) * 2019-11-11 2020-04-03 广州供电局有限公司 基于容器技术的服务处理方法、装置和计算机设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CPCHEN: "将日志输出到Docker容器外", pages 1 - 3, Retrieved from the Internet <URL:https://www.jianshu.com/p/bf2eb121ac62> *
洪志国: "给容器设置内核参数", pages 1 - 5, Retrieved from the Internet <URL:https://tencentcloudcontainerteam.github.io/2018/11/19/kernel-parameters-and-container/> *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116419291A (zh) * 2023-06-09 2023-07-11 阿里巴巴(中国)有限公司 运行时参数的提取方法、设备及系统
CN116419291B (zh) * 2023-06-09 2023-10-31 阿里巴巴(中国)有限公司 运行时参数的提取方法、设备及系统

Similar Documents

Publication Publication Date Title
US9983891B1 (en) Systems and methods for distributing configuration templates with application containers
CN110162345B (zh) 一种应用程序访问方法、装置和存储介质
US11625274B1 (en) Hyper-convergence with scheduler extensions for software-defined container storage solutions
US7925923B1 (en) Migrating a virtual machine in response to failure of an instruction to execute
KR101279696B1 (ko) 컴퓨팅 장치 상의 가상 머신들의 라이브러리와 관련된 방법
US20070240134A1 (en) Software packaging model supporting multiple entity types
CN106817411B (zh) 业务访问请求的处理方法和相关设备
US20080109812A1 (en) Method for Managing Access to Shared Resources in a Multi-Processor Environment
US9535754B1 (en) Dynamic provisioning of computing resources
US10732995B2 (en) Distributed job manager for stateful microservices
US10175886B1 (en) Systems and methods for handling missing storage image layers while provisioning containers in computer clusters
WO2020029995A1 (en) Application upgrading through sharing dependencies
CN117632447A (zh) Gpu资源使用方法、gpu虚拟化方法以及作业调度装置、集群
CN113986685A (zh) 异常处理方法、计算设备及存储介质
US10684895B1 (en) Systems and methods for managing containerized applications in a flexible appliance platform
CN114996064A (zh) 内存检测方法、装置、设备及存储介质
CN110764962A (zh) 日志处理方法和装置
CN112799778A (zh) 一种容器应用启动方法、设备及介质
CN111522598A (zh) 嵌入式设备的重启信息记录方法及装置
CN115617668A (zh) 一种兼容性测试方法、装置及设备
US9244736B2 (en) Thinning operating systems
CN115617459A (zh) 一种用于资源调度的方法、装置及设备
US11816496B2 (en) Managing containers using attribute/value pairs
US8490105B2 (en) Pluggable component interface
CN114706628B (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