CN114116133A - 一种容器回收方法、装置、设备及存储介质 - Google Patents

一种容器回收方法、装置、设备及存储介质 Download PDF

Info

Publication number
CN114116133A
CN114116133A CN202111444105.2A CN202111444105A CN114116133A CN 114116133 A CN114116133 A CN 114116133A CN 202111444105 A CN202111444105 A CN 202111444105A CN 114116133 A CN114116133 A CN 114116133A
Authority
CN
China
Prior art keywords
target container
container
server
heartbeat
target
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
CN202111444105.2A
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.)
Beijing ByteDance Network Technology Co Ltd
Original Assignee
Beijing ByteDance Network Technology 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 Beijing ByteDance Network Technology Co Ltd filed Critical Beijing ByteDance Network Technology Co Ltd
Priority to CN202111444105.2A priority Critical patent/CN114116133A/zh
Publication of CN114116133A publication Critical patent/CN114116133A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • 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/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • 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
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • 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
    • G06F2009/45591Monitoring or debugging support

Landscapes

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

Abstract

本公开提供了一种容器回收方法、装置、设备及存储介质,通过在服务器中创建用于搭建集成开发环境IDE的目标容器,在目标容器运行的过程中,基于预先设置的、从所述服务器指向所述目标容器内部的监控映射通道,获取所述目标容器的心跳信息;基于所述心跳信息,确定是否需要回收所述目标容器。这样,通过预设的指向容器内部的监控映射通道,可以准确获取容器的心跳信息,以便及时准确的判断容器的运行状态,从而可以在容器闲置时及时对空闲容器进行回收,有效降低服务器由于资源占用过高导致的故障率,大大提升容器使用的有效性,有助于提高用户使用体验。

Description

一种容器回收方法、装置、设备及存储介质
技术领域
本公开涉及计算机技术领域,具体而言,涉及一种容器回收方法、装置、设备及存储介质。
背景技术
随着互联网的快速发展,网络已经逐渐成为人们必不可少的助手,为人们的工作和生活带来了极大的便利,各种以互联网为依托的应用被人们所使用,尤其是集成开发环境(Integrated Development Environment,IDE),能够在计算机上实现对程序的显示,集成了代码编写功能、分析功能、编译功能、调试功能,让程序开发变得更加方便、快捷、高效。
通过IDE进行应用的开发和升级等,大多是在云端服务器拉起容器,在终端侧通过连接到容器进行底层代码编译,由于服务器资源有限,若无限制在服务器上拉起容器,有可能造成性能故障,因此需要及时将无用的容器删除,以释放占用资源,但由于容器的隔离和封闭特性,导致对容器的召回时机不易掌握,易造成容器召回时机的误判,给容器使用在一定程度上造成极大的不便。
发明内容
本公开实施例至少提供一种容器回收方法、装置、设备及存储介质。
本公开实施例提供了一种容器回收方法,所述方法包括:
基于待处理任务,在服务器中创建用于搭建集成开发环境IDE的目标容器,以供终端连接至所述目标容器执行所述待处理任务;
在所述目标容器运行的过程中,基于预先设置的、从所述服务器指向所述目标容器内部的监控映射通道,获取所述目标容器的心跳信息;
基于所述心跳信息,确定是否需要回收所述目标容器。
一种可选的实施方式中,在所述在服务器中创建用于搭建集成开发环境IDE的目标容器之后,所述方法包括:
在所述目标容器和所述服务器中分别设置心跳文件和监测文件;
基于所述目标容器的容器参数,建立从所述监测文件指向所述心跳文件的监控映射通道,以使所述监测文件能够读取所述心跳文件中的所述目标容器的心跳信息。
一种可选的实施方式中,所述在所述目标容器和所述服务器中分别设置心跳文件和监测文件,包括:
在所述服务器中创建所述目标容器时,在所述目标容器和所述服务器中分别设置心跳文件和监测文件;和/或
在所述目标容器运行的过程中命中下发的监测条件时,在所述目标容器和所述服务器中分别设置心跳文件和监测文件。
一种可选的实施方式中,所述基于所述心跳信息,确定是否需要回收所述目标容器,包括:
基于所述心跳信息,确定所述目标容器是否处于空闲运行状态;
若所述目标容器处于所述空闲运行状态,回收所述目标容器。
一种可选的实施方式中,所述基于所述心跳信息,确定所述目标容器是否处于空闲运行状态,包括:
在第一终端是通过网页在线连接方式与所述目标容器连接的情况下,确定所述心跳信息指示的、所述第一终端上传的至少一次信息中最后一次上传的信息的上传时间;
若所述上传时间与当前时间之间的时间间隔大于第一预设时长,确定所述目标容器处于空闲运行状态。
一种可选的实施方式中,所述基于所述心跳信息,确定所述目标容器是否处于空闲运行状态,包括:
在第二客户端是通过远程客户端连接方式与所述目标容器连接的情况下,确定所述心跳信息指示的所述第二终端与所述目标容器之间的通信连接通道是否断开;
若所述通信连接通道已经断开,和/或所述通信连接通道断开连接的断开时长大于第二预设时长,确定所述目标容器处于空闲运行状态。
一种可选的实施方式中,所述若所述目标容器处于所述空闲运行状态,回收所述目标容器,包括:
若所述目标容器处于所述空闲运行状态,调取所述服务器中的调度器;
控制所述调度器删除所述目标容器。
本公开实例还提供一种容器回收装置,所述装置包括:
容器创建模块,用于基于待处理任务,在服务器中创建用于搭建集成开发环境IDE的目标容器,以供终端连接至所述目标容器执行所述待处理任务;
心跳获取模块,用于在所述目标容器运行的过程中,基于预先设置的、从所述服务器指向所述目标容器内部的监控映射通道,获取所述目标容器的心跳信息;
容器回收模块,用于基于所述心跳信息,确定是否需要回收所述目标容器。
一种可选的实施方式中,所述装置还包括通道设置模块,所述通道设置模块用于:
在所述目标容器和所述服务器中分别设置心跳文件和监测文件;
基于所述目标容器的容器参数,建立从所述监测文件指向所述心跳文件的监控映射通道,以使所述监测文件能够读取所述心跳文件中的所述目标容器的心跳信息。
一种可选的实施方式中,所述通道设置模块在用于在所述目标容器和所述服务器中分别设置心跳文件和监测文件时,具体用于:
在所述服务器中创建所述目标容器时,在所述目标容器和所述服务器中分别设置心跳文件和监测文件;和/或
在所述目标容器运行的过程中命中下发的监测条件时,在所述目标容器和所述服务器中分别设置心跳文件和监测文件。
一种可选的实施方式中,所述容器回收模块具体用于:
基于所述心跳信息,确定所述目标容器是否处于空闲运行状态;
若所述目标容器处于所述空闲运行状态,回收所述目标容器。
一种可选的实施方式中,所述容器回收模块在用于基于所述心跳信息,确定所述目标容器是否处于空闲运行状态时,具体用于:
第一终端是通过网页在线连接方式与所述目标容器连接的情况下,确定所述心跳信息指示的、所述第一终端上传的至少一次信息中最后一次上传的信息的上传时间;
若所述上传时间与当前时间之间的时间间隔大于第一预设时长,确定所述目标容器处于空闲运行状态。
一种可选的实施方式中,所述容器回收模块在用于基于所述心跳信息,确定所述目标容器是否处于空闲运行状态时,具体用于:
在第二客户端是通过远程客户端连接方式与所述目标容器连接的情况下,确定所述心跳信息指示的所述第二终端与所述目标容器之间的通信连接通道是否断开;
若所述通信连接通道已经断开,和/或所述通信连接通道断开连接的断开时长大于第二预设时长,确定所述目标容器处于空闲运行状态。
一种可选的实施方式中,所述容器回收模块在用于若所述目标容器处于所述空闲运行状态,回收所述目标容器时,具体用于:
若所述目标容器处于所述空闲运行状态,调取所述服务器中的调度器;
控制所述调度器删除所述目标容器。
本公开实施例还提供一种电子设备,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述的容器回收方法的步骤。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述的容器回收方法的步骤。
本公开实施例提供的容器回收方法、装置、设备及存储介质,通过在服务器中创建用于搭建集成开发环境IDE的目标容器,在目标容器运行的过程中,基于预先设置的、从所述服务器指向所述目标容器内部的监控映射通道,获取所述目标容器的心跳信息;基于所述心跳信息,确定是否需要回收所述目标容器。
这样,在创建容器后,可以通过预设的指向容器内部的监控映射通道,准确的获取容器的心跳信息,以便及时准确的判断容器的运行状态,从而可以在容器闲置时及时对空闲容器进行回收,有效降低服务器由于资源占用过高导致的故障率,大大提升容器使用的有效性,有助于提高用户使用体验。
为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1示出了本公开实施例所提供的一种容器回收方法的应用场景示意图;
图2示出了本公开实施例所提供的一种容器回收方法的流程图;
图3示出了本公开实施例所提供的另一种容器回收方法的流程图;
图4示出了本公开实施例提供的一种容器回收流程的示意图;
图5示出了本公开实施例所提供的一种容器回收装置的示意图之一;
图6示出了本公开实施例所提供的一种容器回收装置的示意图之二;
图7示出了本公开实施例所提供的一种电子设备的示意图。
具体实施方式
为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中术语“至少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括A、B、C中的至少一种,可以表示包括从A、B和C构成的集合中选择的任意一个或多个元素。
经研究发现,对于在云端服务器拉起的容器,由于其会占用服务器资源,而服务器资源有限,因此对于服务器中拉起的容器需要及时的回收,以便释放服务器中被占用的资源,但由于容器的隔离和封闭特性,很难准确的判断容器的运行状态,可能会造成对容器运行状态判断失误,导致对容器的召回时机不易掌握,给容器的使用在一定程度上造成极大的不便。
基于上述研究,本公开提供了一种容器回收方法,可以预先设置从服务器指向容器内部的监控映射通道,从而通过监控映射通道,可以准确获取容器的心跳信息,以便及时准确的判断容器的运行状态,从而可以在容器闲置时及时对空闲容器进行回收,有效降低服务器由于资源占用过高导致的故障率,大大提升容器使用的有效性,有助于提高用户使用体验。
请参阅图1,图1为本公开实施例提供的一种应用场景示意图。如图1中所示,针对集成开发环境IDE的应用场景中,包括有服务器和终端,可以理解,所述服务器和所述终端通信连接,需要说明的是,在通过IDE进行应用开发等任务时,在所述服务器中可以创建多个容器,用于搭建IDE,从而管理所述IDE内的资源、进程、文件等。进一步的,用户在终端进行应用开发时,可以通过终端连接相应任务的服务器,从而使用所述集成开发环境IDE的用户开发界面进行代码的编写和运行。可以理解,基于所述容器和所述终端,可以构成所述集成开发环境IDE,进一步的,所述用户开发界面可以是作为集成开发环境IDE在前端进行呈现的一部分,即集成开发环境IDE包括所述用户开发界面,所述容器可以是作为集成开发环境IDE在后台进行存储的一部分。
请同时参阅图2,图2为本公开实施例提供的一种容器回收方法的流程图。如图2中所示,本公开实施例提供的容器回收方法,包括:
S201:基于待处理任务,在服务器中创建用于搭建集成开发环境IDE的目标容器,以供终端连接至所述目标容器执行所述待处理任务。
该步骤中,在需要完成待处理任务的时候,例如针对应用开发、应用修改、应用版本升级等的代码编写和开发等任务,可以在服务器中拉起与待处理任务对应的目标容器,并为所述目标容器配置相应的资源和参数,从而搭建起用于完成所述待处理任务的集成开发环境IDE,研发人员等可以通过终端连接至所述目标容器,以完成所述待处理任务。
S202:在所述目标容器运行的过程中,基于预先设置的、从所述服务器指向所述目标容器内部的监控映射通道,获取所述目标容器的心跳信息。
该步骤中,在所述目标容器运行的过程中,由于所述目标容器具有一定的隔离特性,在外界不能准确判断容器的运行状态,为了准确的判断所述目标容器运行状态,可以先解析得到预先设置的、从所述服务器指向所述目标容器内部的监控映射通道,进而可以借助所述监控映射通道获取所述目标容器的心跳信息。
其中,所述心跳信息是一种发送方向接收方建立连接发送消息时,心跳文件接收到的发送方发送到接收方的消息,这种消息可以让接收方确定发送源是否以及何时出现故障或终止,从而基于预先设置的、从所述目标容器的宿主机指向所述目标容器内部的监控映射通道获取目标容器的心跳信息,进而准确的判断容器的运行状态。
S203:基于所述心跳信息,确定是否需要回收所述目标容器。
该步骤中,由于服务器资源不可能无限放大,因此可以基于所述心跳信息,确定所述目标容器的运行状态,从而确定是否需要回收所述目标容器,以防止造成所述目标容器已经没有用户连接的情况下,占用所述服务器的资源空间所造成的卡顿等现象。
具体的,对于确定是否需要回收所述目标容器,可以基于所述心跳信息,确定所述目标容器是否处于空闲运行状态,若所述目标容器处于所述空闲运行状态,回收所述目标容器。
这里,在获取到所述心跳信息之后,可以通过所述心跳信息最后一次的更新时间与当前时间之间的时间间隔是否大于第一预设时长来确定所述目标容器是否处于空闲运行状态,若所述目标容器处于所述空闲运行状态,回收所述目标容器。
进一步的,可以通过终端和所述目标容器的连接情况,确定所述心跳信息最后一次的更新时间当前时间之间的时间间隔是否大于第一预设时长,从而确定所述目标容器是否处于空闲运行状态。
其中,所述第一预设时长可以是预先设置好的判定容器使用状态的时间,容器超过所述第一预设时长未更新,可以判定容器处于空闲状态,其可以根据具体情况设置为30分钟,也可以是40分钟等,在此不做具体限定。
具体的,在第一终端是通过网页在线连接方式与所述目标容器连接的情况下,确定所述心跳信息指示的、所述第一终端上传的至少一次信息中最后一次上传的信息的上传时间,若所述上传时间与当前时间之间的时间间隔大于第一预设时长,确定所述目标容器处于空闲运行状态。
其中,在第一终端通过网页在线连接方式与所述目标容器连接时,所述第一终端通过网页连接方式向所述目标容器上传消息,所述目标容器内心跳信息检测到所述第一终端上传的至少一次信息中最后一次上传的信息的上传时间,进而确定所述心跳信息指示的、所述第一终端上传的至少一次信息中最后一次上传的信息的上传时间与当前时间之间的时间间隔是否大于第一预设时长,若所述上传时间与当前时间之间的时间间隔大于第一预设时长,确定所述目标容器处于空闲运行状态,其中,所述第一终端可以是多个终端同时通过网页在线连接方式与所述目标容器建立连接。
示例性的,所述第一终端通过网页在线连接方式与所述目标容器建立的连接可以是所述终端基于Web方式连接到容器内的云IDE进程,对于目标容器和终端之间是通过WebSocket方式进行通信的,每当接收到客户端的信息到来,就以当前时间去更新心跳信息的修改时间,作为最后使用时间。
此外,在第二客户端是通过远程客户端连接方式与所述目标容器连接的情况下,确定所述心跳信息指示的所述第二终端与所述目标容器之间的通信连接通道是否断开,若所述通信连接通道已经断开,和/或所述通信连接通道断开连接的断开时长大于第二预设时长,确定所述目标容器处于空闲运行状态。
其中,在第二客户端是通过远程客户端连接方式与所述目标容器连接的情况下,当目标容器检测到所述第二客户端是通过远程客户端连接方式建立连接发送的消息,会在所述第二客户端与所述目标容器之间建立通信连接通道,可以通过确定通信连接通道是否断开确定所述目标容器是否处于空闲运行状态,若所述通信连接通道已经断开,和/或所述通信连接通道断开连接的断开时长大于第二预设时长,确定所述目标容器处于空闲运行状态。
示例性的,所述第二客户端可以是通过远程客户端连接方式与所述目标容器连接远程SSH(RemoteSSH)方式连接的容器内的云IDE进程,在判定是否更新心跳文件时,可以借助服务器端SSHD是否有连接发生,每当SSH客户端连接到SSH服务器端,SSHD进程就会建立一个TCP连接通道,根据是否存在这个通道来判断是否需要更新心跳信息。
进一步的,基于第一终端通过网页在线连接以及第二客户端通过远程客户端连接两种连接方式,确认所述目标容器是否处于所述空闲运行状态,若所述目标容器处于所述空闲运行状态,回收所述目标容器。
具体的,若所述目标容器处于所述空闲运行状态,调取所述服务器中的调度器,进而控制所述调度器删除所述目标容器。
本公开实施例提供的容器回收方法,在服务器中创建用于搭建集成开发环境IDE的目标容器,在所述目标容器运行的过程中,基于预先设置的、从所述服务器指向所述目标容器内部的监控映射通道,获取所述目标容器的心跳信息;基于所述心跳信息,确定是否需要回收所述目标容器。
这样,通过预设的指向容器内部的监控映射通道,可以准确获取容器的心跳信息,以便及时准确的判断容器的运行状态,从而可以在容器闲置时及时对空闲容器进行回收,有效降低服务器由于资源占用过高导致的故障率,大大提升容器使用的有效性,有助于提高用户使用体验。
请同时参阅图3,图3为本公开实施例提供的另一种容器回收方法的流程图。如图3中所示,本公开实施例提供的容器回收方法包括:
S301:基于待处理任务,在服务器中创建用于搭建集成开发环境IDE的目标容器,以供终端连接至所述目标容器执行所述待处理任务。
S302:在所述目标容器和所述服务器中分别设置心跳文件和监测文件。
该步骤中,在所述目标容器和运行所述目标容器的宿主机中分别设置心跳文件和监测文件,可以是为了当拉起的容器数量过多、容器已经没有用户进行连接的情况下还在运行,造成占用服务器资源,达到服务器最大阈值造成机身故障的情况出现时,能够及时监测目标容器的心跳信息,以便后续判断容器运行状态对容器进行回收处理。
具体的,可以在所述服务器中创建所述目标容器时,在所述目标容器和所述服务器中分别设置心跳文件和监测文件;和/或在所述目标容器运行的过程中命中下发的监测条件时,在所述目标容器和所述服务器中分别设置心跳文件和监测文件。
其中,所述监测条件,可以是所述目标容器运行超过一定时长,或者所述目标容器中的资源使用率低于预设阈值等。
S303:基于所述目标容器的容器参数,建立从所述监测文件指向所述心跳文件的监控映射通道,以使所述监测文件能够读取所述心跳文件中的所述目标容器的心跳信息。
该步骤中,在目标容器和运行所述目标容器的宿主机中分别设置心跳文件和监测文件之后,可以基于所述目标容器的容器参数,建立从所述监测文件指向所述心跳文件的监控映射通道,以使所述监测文件能够读取所述心跳文件中的所述目标容器的心跳信息,从而判断容器是否处于空闲运行状态,确定是否需要回收所述目标容器。
S304:在所述目标容器运行的过程中,基于预先设置的、从所述服务器指向所述目标容器内部的监控映射通道,获取所述目标容器的心跳信息。
S305:基于所述心跳信息,确定是否需要回收所述目标容器。
其中,步骤S301、步骤S304和步骤S305的描述可以参照步骤S201至步骤S203的描述,并且可以达到相同的技术效果和解决相同的技术问题,在此不做赘述。
示例性的,请参阅图4,图4为本公开实施例提供的一种容器回收流程的示意图。如图4中所示,在实际应用场景中,终端和服务器上的容器可以进行数据传输,用户可以通过平板电脑、可穿戴设备等终端,通过web网页在线连接方式、远程SSH客户端连接方式与服务器上可实现资源编译的容器建立连接,在服务器中的容器数量超过一定阈值时,或者在要监测的容器运行超过一定时长时,可以在要监测的容器中设置心跳文件,并在服务器中设置监测文件,以终端通过web网页在线连接方式与容器建立连接为例,在连接期间,终端会定期上传心跳信息,如通过websocket消息方式上传,心跳文件则会记录终端上传的心跳信息,而监测文件通过指向心跳文件的监控映射通道,可以获取到心跳信息,进而监测心跳文件的心跳更新情况,如果最后一次上传心跳信息的时间与当前时间超过一定阈值,例如超过30分钟,则可以认为容器无人使用,可以删除容器,以实现容器的回收,相应的,以终端通过远程SSH客户端连接方式与需要监测的容器建立连接为例,通过SSH客户端的方式连接,会建立通信连接通道,心跳文件会周期性的记录通信连接通道的情况,而监测文件通过指向心跳文件的监控映射通道,可以获取到心跳信息指示的通信连接通道的连接情况,如果通信连接通道已经断开,甚至已经断开超过一定时长,如断开超过30分钟,则可以认为容器无人使用,可以删除容器,以实现容器的回收。
本公开实施例提供的容器回收方法,在服务器中创建用于搭建集成开发环境IDE的目标容器,在所述目标容器和所述服务器中分别设置心跳文件和监测文件,基于所述目标容器的容器参数,建立从所述监测文件指向所述心跳文件的监控映射通道,在所述目标容器运行的过程中,基于预先设置的、从所述服务器指向所述目标容器内部的监控映射通道,获取所述目标容器的心跳信息;基于所述心跳信息,确定是否需要回收所述目标容器。
这样,通过在创建容器时,在容器和服务器中分别设置心跳文件和监测文件,进而可以通过监控映射通道,准确的获取容器的心跳信息,以便及时准确的判断容器的运行状态,从而可以在容器闲置时及时对空闲容器进行回收,有效降低服务器由于资源占用过高导致的故障率,大大提升容器使用的有效性,有助于提高用户使用体验。
本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
基于同一发明构思,本公开实施例中还提供了与容器回收方法对应的容器回收装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述容器回收方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
请参阅图5和图6,图5为本公开实施例提供的一种容器回收装置的示意图之一,图6为本公开实施例提供的一种容器回收装置的示意图之二。
如图5中所示,本公开实施例提供的容器回收装置500包括:
容器创建模块510,用于基于待处理任务,在服务器中创建用于搭建集成开发环境IDE的目标容器,以供终端连接至所述目标容器执行所述待处理任务;
心跳获取模块520,用于在所述目标容器运行的过程中,基于预先设置的、从所述服务器指向所述目标容器内部的监控映射通道,获取所述目标容器的心跳信息;
容器回收模块530,用于基于所述心跳信息,确定是否需要回收所述目标容器。
一种可选的实施方式中,如图6中所示,所述装置500还包括通道设置模块540,所述通道设置模块540用于:
在所述目标容器和所述服务器中分别设置心跳文件和监测文件;
基于所述目标容器的容器参数,建立从所述监测文件指向所述心跳文件的监控映射通道,以使所述监测文件能够读取所述心跳文件中的所述目标容器的心跳信息。
一种可选的实施方式中,所述通道设置模块540在用于在所述目标容器和所述服务器中分别设置心跳文件和监测文件时,具体用于:
在所述服务器中创建所述目标容器时,在所述目标容器和所述服务器中分别设置心跳文件和监测文件;和/或
在所述目标容器运行的过程中命中下发的监测条件时,在所述目标容器和所述服务器中分别设置心跳文件和监测文件。
一种可选的实施方式中,所述容器回收模块530具体用于:
基于所述心跳信息,确定所述目标容器是否处于空闲运行状态;
若所述目标容器处于所述空闲运行状态,回收所述目标容器。
一种可选的实施方式中,所述容器回收模块530在用于基于所述心跳信息,确定所述目标容器是否处于空闲运行状态时,具体用于:
第一终端是通过网页在线连接方式与所述目标容器连接的情况下,确定所述心跳信息指示的、所述第一终端上传的至少一次信息中最后一次上传的信息的上传时间;
若所述上传时间与当前时间之间的时间间隔大于第一预设时长,确定所述目标容器处于空闲运行状态。
一种可选的实施方式中,所述容器回收模块530在用于基于所述心跳信息,确定所述目标容器是否处于空闲运行状态时,具体用于:
在第二客户端是通过远程客户端连接方式与所述目标容器连接的情况下,确定所述心跳信息指示的所述第二终端与所述目标容器之间的通信连接通道是否断开;
若所述通信连接通道已经断开,和/或所述通信连接通道断开连接的断开时长大于第二预设时长,确定所述目标容器处于空闲运行状态。
一种可选的实施方式中,所述容器回收模块530在用于若所述目标容器处于所述空闲运行状态,回收所述目标容器时,具体用于:
若所述目标容器处于所述空闲运行状态,调取所述服务器中的调度器;
控制所述调度器删除所述目标容器。
本公开实施例提供的容器回收装置,在创建容器后,可以通过预设的指向容器内部的监控映射通道,准确的获取容器的心跳信息,以便及时准确的判断容器的运行状态,从而可以在容器闲置时及时对空闲容器进行回收,有效降低服务器由于资源占用过高导致的故障率,大大提升容器使用的有效性,有助于提高用户使用体验。
其中,所述容器回收装置500可以是作为第三方设备与所述服务器连接,也可以是嵌入所述服务器中,作为所述服务器的一部分,以辅助所述服务器实现容器回收的功能。
关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
对应于图2和图3中的容器回收方法,本公开实施例还提供了一种电子设备700,如图7所示,为本公开实施例提供的电子设备700结构示意图,包括:
处理器710、存储器720、和总线730;存储器720用于存储执行指令,包括内存721和外部存储器722;这里的内存721也称内存储器,用于暂时存放处理器710中的运算数据,以及与硬盘等外部存储器722交换的数据,处理器710通过内存721与外部存储器722进行数据交换,当所述电子设备700运行时,所述处理器710与所述存储器720之间通过总线730通信,使得所述处理器710可以执行上述的容器回收方法的步骤。
本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的容器回收方法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的容器回收方法的步骤,具体可参见上述方法实施例,在此不再赘述。
其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(Software Development Kit,SDK)等等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统和装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。

Claims (10)

1.一种容器回收方法,其特征在于,所述方法包括:
基于待处理任务,在服务器中创建用于搭建集成开发环境IDE的目标容器,以供终端连接至所述目标容器执行所述待处理任务;
在所述目标容器运行的过程中,基于预先设置的、从所述服务器指向所述目标容器内部的监控映射通道,获取所述目标容器的心跳信息;
基于所述心跳信息,确定是否需要回收所述目标容器。
2.根据权利要求1所述的方法,其特征在于,在所述在服务器中创建用于搭建集成开发环境IDE的目标容器之后,所述方法还包括:
在所述目标容器和所述服务器中分别设置心跳文件和监测文件;
基于所述目标容器的容器参数,建立从所述监测文件指向所述心跳文件的监控映射通道,以使所述监测文件能够读取所述心跳文件中的所述目标容器的心跳信息。
3.根据权利要求2所述的方法,其特征在于,所述在所述目标容器和所述服务器中分别设置心跳文件和监测文件,包括:
在所述服务器中创建所述目标容器时,在所述目标容器和所述服务器中分别设置心跳文件和监测文件;和/或
在所述目标容器运行的过程中命中下发的监测条件时,在所述目标容器和所述服务器中分别设置心跳文件和监测文件。
4.根据权利要求1所述的方法,其特征在于,所述基于所述心跳信息,确定是否需要回收所述目标容器,包括:
基于所述心跳信息,确定所述目标容器是否处于空闲运行状态;
若所述目标容器处于所述空闲运行状态,回收所述目标容器。
5.根据权利要求4所述的方法,其特征在于,所述基于所述心跳信息,确定所述目标容器是否处于空闲运行状态,包括:
在第一终端是通过网页在线连接方式与所述目标容器连接的情况下,确定所述心跳信息指示的、所述第一终端上传的至少一次信息中最后一次上传的信息的上传时间;
若所述上传时间与当前时间之间的时间间隔大于第一预设时长,确定所述目标容器处于空闲运行状态。
6.根据权利要求4所述的方法,其特征在于,所述基于所述心跳信息,确定所述目标容器是否处于空闲运行状态,包括:
在第二客户端是通过远程客户端连接方式与所述目标容器连接的情况下,确定所述心跳信息指示的所述第二终端与所述目标容器之间的通信连接通道是否断开;
若所述通信连接通道已经断开,和/或所述通信连接通道断开连接的断开时长大于第二预设时长,确定所述目标容器处于空闲运行状态。
7.根据权利要求4所述的方法,其特征在于,所述若所述目标容器处于所述空闲运行状态,回收所述目标容器,包括:
若所述目标容器处于所述空闲运行状态,调取所述服务器中的调度器;
控制所述调度器删除所述目标容器。
8.一种容器回收装置,其特征在于,所述装置包括:
容器创建模块,用于基于待处理任务,在服务器中创建用于搭建集成开发环境IDE的目标容器,以供终端连接至所述目标容器执行所述待处理任务;
心跳获取模块,用于在所述目标容器运行的过程中,基于预先设置的、从所述服务器指向所述目标容器内部的监控映射通道,获取所述目标容器的心跳信息;
容器回收模块,用于基于所述心跳信息,确定是否需要回收所述目标容器。
9.一种电子设备,其特征在于,包括:处理器、存储器和总线,所述存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行如权利要求1至7中任一项所述的容器回收方法的步骤。
10.一种计算机可读存储介质,其特征在于,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如权利要求1至7中任一项所述的容器回收方法的步骤。
CN202111444105.2A 2021-11-30 2021-11-30 一种容器回收方法、装置、设备及存储介质 Pending CN114116133A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111444105.2A CN114116133A (zh) 2021-11-30 2021-11-30 一种容器回收方法、装置、设备及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111444105.2A CN114116133A (zh) 2021-11-30 2021-11-30 一种容器回收方法、装置、设备及存储介质

Publications (1)

Publication Number Publication Date
CN114116133A true CN114116133A (zh) 2022-03-01

Family

ID=80368591

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111444105.2A Pending CN114116133A (zh) 2021-11-30 2021-11-30 一种容器回收方法、装置、设备及存储介质

Country Status (1)

Country Link
CN (1) CN114116133A (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105389243A (zh) * 2015-10-26 2016-03-09 华为技术有限公司 一种容器监控方法和装置
CN108874549A (zh) * 2018-07-19 2018-11-23 北京百度网讯科技有限公司 资源复用方法、装置、终端和计算机可读存储介质
CN110399307A (zh) * 2019-07-31 2019-11-01 网宿科技股份有限公司 一种测试方法、测试平台及目标服务器
CN110830289A (zh) * 2019-10-21 2020-02-21 华中科技大学 一种容器异常监测方法及监测系统
CN111427675A (zh) * 2020-03-20 2020-07-17 腾讯科技(深圳)有限公司 一种数据处理方法、装置以及计算机可读存储介质
CN112862351A (zh) * 2021-03-05 2021-05-28 上海有个机器人有限公司 一种服务器及调度机器人自动到位装货的方法和装置
CN112865993A (zh) * 2019-11-27 2021-05-28 上海哔哩哔哩科技有限公司 分布式主从系统中从节点的切换方法和装置
CN113312165A (zh) * 2021-07-28 2021-08-27 浙江大华技术股份有限公司 一种任务处理方法及装置
CN113407489A (zh) * 2021-06-18 2021-09-17 杭州安恒信息技术股份有限公司 一种数据导入方法、装置、设备及计算机可读存储介质

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105389243A (zh) * 2015-10-26 2016-03-09 华为技术有限公司 一种容器监控方法和装置
CN108874549A (zh) * 2018-07-19 2018-11-23 北京百度网讯科技有限公司 资源复用方法、装置、终端和计算机可读存储介质
CN110399307A (zh) * 2019-07-31 2019-11-01 网宿科技股份有限公司 一种测试方法、测试平台及目标服务器
CN110830289A (zh) * 2019-10-21 2020-02-21 华中科技大学 一种容器异常监测方法及监测系统
CN112865993A (zh) * 2019-11-27 2021-05-28 上海哔哩哔哩科技有限公司 分布式主从系统中从节点的切换方法和装置
CN111427675A (zh) * 2020-03-20 2020-07-17 腾讯科技(深圳)有限公司 一种数据处理方法、装置以及计算机可读存储介质
CN112862351A (zh) * 2021-03-05 2021-05-28 上海有个机器人有限公司 一种服务器及调度机器人自动到位装货的方法和装置
CN113407489A (zh) * 2021-06-18 2021-09-17 杭州安恒信息技术股份有限公司 一种数据导入方法、装置、设备及计算机可读存储介质
CN113312165A (zh) * 2021-07-28 2021-08-27 浙江大华技术股份有限公司 一种任务处理方法及装置

Similar Documents

Publication Publication Date Title
CN109359091B (zh) 文件管理方法、装置、终端及计算机可读存储介质
CN106445292B (zh) 应用程序的分身管理方法及系统
CN105871587A (zh) 日志上传方法及装置
CN104022902A (zh) 一种监控服务器集群的方法和系统
CN104601683A (zh) 一种文件下载管理方法以及移动终端和通信系统
CN110442427B (zh) 一种虚拟机快照管理方法、装置、设备和存储介质
CN103473343A (zh) 一种文件管理方法、装置以及终端
CN104899049A (zh) 一种文件删除方法及其装置
CN105208071A (zh) 移动终端的数据删除方法及移动终端
US10938773B2 (en) Method and apparatus for synchronizing contact information and medium
CN113672340A (zh) 一种虚拟机的增量备份方法、系统、装置及可读存储介质
CN111538608A (zh) 预防终端设备宕机的方法、终端设备及存储介质
CN109165194B (zh) 一种数据转存方法、装置、电子设备及存储介质
CN112044061B (zh) 游戏画面处理方法、装置、电子设备以及存储介质
CN111176577A (zh) 分布式块存储服务命令处理方法、装置、设备及介质
CN112486733B (zh) 系统还原方法、装置、终端及存储介质
CN111930565B (zh) 分布式管理系统中组件的进程故障自愈方法、装置及设备
CN108762983A (zh) 多媒体数据恢复方法及装置
CN111124291B (zh) 分布式存储系统的数据存储处理方法、装置、电子设备
CN114116133A (zh) 一种容器回收方法、装置、设备及存储介质
CN111130856A (zh) 一种服务器配置方法、系统、设备及计算机可读存储介质
CN106933449B (zh) 图标处理方法和装置
CN113747423B (zh) 云手机状态同步方法、装置、设备、存储介质及程序产品
CN105630554B (zh) 一种第三方应用的重装方法及用户终端
CN113946357A (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
CB02 Change of applicant information

Address after: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant after: Douyin Vision Co.,Ltd.

Address before: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant before: Tiktok vision (Beijing) Co.,Ltd.

Address after: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant after: Tiktok vision (Beijing) Co.,Ltd.

Address before: 100041 B-0035, 2 floor, 3 building, 30 Shixing street, Shijingshan District, Beijing.

Applicant before: BEIJING BYTEDANCE NETWORK TECHNOLOGY Co.,Ltd.