CN117555649A - 网络服务处理方法、装置、设备及存储介质 - Google Patents
网络服务处理方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN117555649A CN117555649A CN202311555199.XA CN202311555199A CN117555649A CN 117555649 A CN117555649 A CN 117555649A CN 202311555199 A CN202311555199 A CN 202311555199A CN 117555649 A CN117555649 A CN 117555649A
- Authority
- CN
- China
- Prior art keywords
- container
- kernel
- network service
- code
- executed
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 25
- 238000003860 storage Methods 0.000 title claims abstract description 14
- 238000000034 method Methods 0.000 claims abstract description 45
- 238000012545 processing Methods 0.000 claims abstract description 38
- 238000012544 monitoring process Methods 0.000 claims description 17
- 238000013468 resource allocation Methods 0.000 claims description 7
- 238000004590 computer program Methods 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 2
- 230000008569 process Effects 0.000 abstract description 26
- 239000002699 waste material Substances 0.000 abstract description 8
- 238000010586 diagram Methods 0.000 description 14
- 238000005516 engineering process Methods 0.000 description 10
- 238000001514 detection method Methods 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 238000011161 development Methods 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000010295 mobile communication Methods 0.000 description 4
- 101001072091 Homo sapiens ProSAAS Proteins 0.000 description 3
- 102100036366 ProSAAS Human genes 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 238000013136 deep learning model Methods 0.000 description 2
- 230000005484 gravity Effects 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 238000012549 training Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5072—Grid computing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45562—Creating, deleting, cloning virtual machine instances
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/4557—Distribution of virtual machine instances; Migration and load balancing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45595—Network integration; Enabling network access in virtual machine instances
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本申请公开了一种网络服务处理方法、装置、电子设备及存储介质,该方法包括:在接收到代码执行请求的情况下,确定接收待执行代码的网路服务容器是否存在相连接的内核容器;在确定不存在相连接的内核容器的情况下,创建与网络服务容器相对应的目标内核容器,并对目标内核容器分配相应的GPU资源用于执行待执行代码;建立目标内核容器与网络服务容器之间的连接,并将待执行代码发送至目标内核容器进行代码执行。实现了在处理过程中,通过将网络服务容器与内核容器的拆分,避免网络服务容器与内核容器的绑定而导致GPU资源与网络服务容器的绑定,提高了GPU资源的灵活性,降低了GPU资源的浪费。
Description
技术领域
本申请涉及网络服务解决技术领域,尤其涉及一种网络服务处理方法、装置、电子设备及存储介质。
背景技术
随着AI及数据科学的高速发展,JupyterNotebook/Jupyter Lab已经日渐成为应用最为广泛的交互式开发环境,它的功能特性十分契合数据科学、深度学习模型构建等场景的代码开发需求。但是在实际生产应用中,特别是在深度学习模型的开发训练中,JupyterNotebook/Jupyter Lab的使用往往还要依托于强大的基础算力(GPU/CPU),尤其在一些大模型的开发训练过程中,单卡算力已不能满足需求,所以实际生产应用中,算法和数据工程师往往是在基于公/私有云构建的JupyterNotebook/Jupyter Lab SAAS平台上进行算法模型的开发和训练。
现有的基于公/私有云的JupyterLab SAAS服务平台的技术方案,由于是构建于kubernetes集群之上,而在该场景下,通常会通过kubernetes创建多个notebook容器实例,来分配给不同的用户使用,也就是,需要在各对应的容器实例中事先申请所需GPU资源,这样GPU资源会与对应的notebook容器实例绑定,使得GPU资源的使用灵活性较低,并且notebook实例并不是一直需要GPU的算力,只有在起一个kernel进程进行实际代码的执行时才会使用到GPU资源,这样便会导致大量的GPU资源的浪费。
发明内容
本申请实施例的目的是提供一种网络服务处理方法、装置、电子设备及存储介质,以解决相关技术中因GPU资源的使用不灵活而导致存在资源浪费的技术问题。
第一方面,本申请实施例提供了一种网络服务处理方法,包括:
在接收到代码执行请求的情况下,确定接收待执行代码的网路服务容器是否存在相连接的内核容器;
在确定不存在相连接的内核容器的情况下,创建与所述网络服务容器相对应的目标内核容器,并对所述目标内核容器分配相应的GPU资源用于执行所述待执行代码;
建立所述目标内核容器与所述网络服务容器之间的连接,并将所述待执行代码发送至所述目标内核容器进行代码执行。
第二方面,本申请实施例提供了一种网络服务处理装置,包括:
请求接收模块,用于在接收到代码执行请求的情况下,确定接收待执行代码的网路服务容器是否存在相连接的内核容器;
容器创建模块,用于在确定不存在相连接的内核容器的情况下,创建与所述网络服务容器相对应的目标内核容器,并对所述目标内核容器分配相应的GPU资源用于执行所述待执行代码;
代码执行模块,用于建立所述目标内核容器与所述网络服务容器之间的连接,并将所述待执行代码发送至所述目标内核容器进行代码执行。
第三方面,本申请实施例提供了一种电子设备,电子设备包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述的网络服务处理方法中的步骤。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述的网络服务处理方法中的步骤。
本申请实施例提供了一种网络服务处理方法、装置、电子设备及存储介质,在进行网络服务的处理过程中,将网络服务与内核容器拆分,然后根据实际的需求创建相应的内核容器用于执行网络服务,具体地,在接收到代码执行请求的情况相爱,确定接收待执行代码的网络服务容器是否存在相关联的内核容器,其中,内核容器用于执行待执行代码,在确定不存在相连接的内核容器时,创建新的用于代码执行的目标内核容器,同时对目标内核容器分配相应的GPU资源,进而通过建立目标内核容器与网络服务容器之间的连接,以将待执行代码发送至目标内核容器进行代码执行,并将直接结果反馈至网络服务容器。实现了在处理过程中,通过将网络服务容器与内核容器的拆分,避免网络服务容器与内核容器的绑定而导致GPU资源与网络服务容器的绑定,提高了GPU资源的灵活性,降低了GPU资源的浪费。
附图说明
图1是本申请实施例提供的网络服务处理方法的一种流程示意图;
图2是本申请实施例提供的处理过程的框图的一种示意图;
图3是本申请实施例提供的对内核容器进行监测的步骤的一种流程示意图;
图4是本申请实施例提供的网络服务解决方案的步骤的一种框图示意图;
图5是本申请实施例提供的对内核容器进行监测的步骤的一种流程示意图;
图6是本申请实施例提供的网络服务处理装置的一种结构示意图;
图7是本申请实施例提供的电子设备的一种结构示意图;
图8是本申请实施例提供的电子设备的另一种结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
应当理解的是,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
在相关技术中,现有的基于公/私有云的JupyterLab SAAS服务平台的技术方案,由于是构建于kubernetes集群之上,而在该场景下,通常会通过kubernetes创建多个Notebook容器实例,来分配给不同的用户使用,也就是,需要在各对应的容器实例中事先申请所需GPU资源,这样GPU资源会与对应的Notebook容器实例绑定,使得GPU资源的使用灵活性较低,并且notebook实例并不是一直需要GPU的算力,只有在起一个kernel进程进行实际代码的执行时才会使用到GPU资源,这样便会导致大量的GPU资源的浪费。
为了解决相关技术中存在的技术问题,本申请实施例提供了一种网络服务处理方法,请参见图1,图1是本申请实施例提供的网络服务处理方法的一种流程示意图,该方法包括步骤101至步骤103。
步骤101,在接收到代码执行请求的情况下,确定接收待执行代码的网路服务容器是否存在相连接的内核容器。
在一实施例中,在进行网络服务处理的过程中,在接收到代码执行请求的情况下,确定当前接收待执行代码的网络服务容器是否存在相连接的内核容器,其中,在待执行代码的接收和处理过程中,网络服务容器用于接收所上传的待执行代码,而在进行代码执行时,在相应的内核容器中利用GPU资源进行处理,因此,在确定需要进行代码执行时,需要确定是否存在相连接的内核容器。
示例性地,进行处理的整个过程都是在k8s架构上实现的,整个处理过程可以参照图2,图2是本申请实施例提供的处理过程的框图的一种示意图,在进行处理时,首先将网络服务(notebook server)与内核(kernel)进行容器pod拆分,以分别进行部署,也就是将网络服务和内核拆分设置在两个容器(pod)中,并且在需要内核容器进行相应的处理时通过与网络服务容器的连接和数据的传输,在内核容器上完成相应的处理和操作。
在基于图2所示的框图中,在进行处理时,用户可以通过浏览器将所编码完成的代码上传到网络服务容器中,然后在需要进行代码执行时,网络服务容器基于一种高性能的异步消息传递库(0MQ)将需要执行的代码传输至内核容器中进行处理,同时代码执行的结果等也会通过网络服务容器反馈至用户所使用的浏览器等设备或者终端。
进一步地,在实际的处理过程中,用户的网络服务请求可以是首次发出,也可以是已经完成了网络服务容器的创建之后的频繁使用,因此在进行代码执行之前,还包括:在接收到实例创建请求的情况下,确定实例创建请求是否为首次请求;在确定为首次请求的情况下,创建用于响应实例创建请求的网络服务容器;在接收到代码上传请求的情况下,将所接收到的待执行代码存储在网络服务容器中。
示例性地,在接收到示例创建请求的情况下,确定实例创建请求是否为首次请求,而在确定为首次请求时,将需要进行容器的初始化创建,得到用于接收代码的网络服务请求,并且在接收到代码上传请求时,接收用户基于浏览器等设备或者终端所上传的待执行代码。
需要说明的是,在确定是否为首次请求时,可以基于与网络服务容器的连接情况来确定,比如在首次进行代码上传时,此时的实例创建请求则为首次请求,而在处理过程中,进行代码的修改和重新上传等操作时,可以确定此时的请求不是首次请求。
步骤102,在确定不存在相连接的内核容器的情况下,创建与网络服务容器相对应的目标内核容器,并对目标内核容器分配相应的GPU资源用于执行待执行代码。
在一实施例中,在确定当前所使用的网络服务容器是否存在相连接的内核容器时,若确定当前不存在相连接的内核容器,则创建于网络服务相对应的内核容器,用于进行代码执行,同时对目标内核容器分配相应的GPU资源用于执行待执行代码。
示例性地,在确定不存在相连接的内核容器时,需要创建相应的内核容器,并且与网络服务容器相连接,进而完成代码的执行处理。而在创建相应的目标内核容器时,将需要根据当前实际需求所创建,同时分配好相应的GPU资源,以在满足资源需求的情况下,保证资源的不浪费。具体地,创建目标内核容器的步骤包括:在确定不存在相连接的内核容器的情况下,根据代码执行请求得到当前的GPU算力需求;根据GPU算力需求进行资源分配,在本地缓存中确定用于执行待执行代码的内核容器的容器信息;根据容器信息确定用于执行待执行代码的目标内核容器,并拉起目标内核容器建立与网络服务容器的连接。
具体地,在确定不存在相连接的内核容器的情况下,根据代码执行请求得到当前的GPU算力需求,然后根据GPU算力需求进行资源分配,以在本地缓存中确定用于执行待执行代码的内核容器的容器信息,最后根据容器信息确定所使用的目标内核容器,并拉取目标内核容器与网络服务容器进行连接。
在创建目标内核容器时,需要对所创建的目标内核容器分配相应的GPU算力资源,以保证有效的完成任务和资源的合理利用,因此,在进行处理时,基于所接收到的代码执行请求确定当前所需要的GPU算力需求,通过对待执行代码的分析,确定当前所需要的资源需求,进而完成对目标内核容器的资源分配。
需要说明的是,在进行GPU算力资源的分配时,可以采用GPU共享技术来实现,由于不同的GPU共享技术的算力资源分配方案不同,因此在实现过程中,可以采用任意的GPU共享技术完成对目标内核容器的GPU资源分配。
进一步地,在确定是否存在于网络服务容器相连接的内核容器时,除了可能不存在相连接的内核容器,同时也可能存在相连接的可以用来使用的内核容器,因此,在进行判断之后还包括:在确定存在相连接的内核容器的情况下,将代码发送至相连接的内核容器中进行处理;接收相连接的内核容器执行代码得到的执行结果,并将执行结果发送至目标内核容器。
显然,在确定存在与网络服务容器相连接的内核容器时,将直接将网络服务容器所接收到的待执行代码发送至所连接的内核容器进行处理,并且对于所连接的内核容器进行处理得到的处理结果,也会及时的反馈至网络服务容器,进而使得将处理结果告知用户,如显示在设备或者终端的显示界面上,比如浏览器界面。
需要说明的是,对于与网络服务容器所连接的内核容器,可以通过心跳检测机制进行状态监测,以根据所监测到的状态对内核容器进行处理,比如保持连接和断开连接。因此,在整个处理过程中,对内核容器进行状态检测的过程和方式可以参照图3,图3是本申请实施例提供的对内核容器进行监测的步骤的一种流程示意图,其中,该步骤包括步骤301至步骤304。
步骤301,对与第一网络服务容器相连接的第一内核容器进行监控,得到第一内核容器的空闲时长;
步骤302,根据空闲时长确定是否对第一内核进行释放;
步骤303,在空闲时长大于或者等于预设时长的情况下,断开第一内核容器与第一网络服务的连接,并对第一内核容器进行资源释放;
步骤304,在空闲时长小于预设时长的情况下,保持第一内核容器与第一网络服务的连接。
示例性地,在进行状态监测的过程中,对系统中的每一个网络服务容器连接的每一个内核容器的状态进行监测,以第一网络服务容器为例,对与第一网络服务容器相连接的第一内核容器进行监控,得到第一内核容器的空闲时长,然后根据空闲时长确定是否对第一内核容器进行释放处理,而在进行处理时,除了进行释放,还可以进行状态保持,其中,在空闲时长小于所设置的预设时长时,将保持第一内核容器与第一网络服务容器的连接状态不变,而在空闲时长大于或者等于预设时长时,说明第一内核容器长时间处于空闲状态,可能存在GPU资源浪费的情况,因此此时将断开第一内核容器与第一网络服务容器的连接,同时对分配给第一内核容器的GPU算力资源进行资源释放。
在此,通过对所使用的内核容器进行状态监测,可以有效的进行资源的释放,避免长时间未使用的内核容器对GPU算力资源占用,提高资源的使用灵活性。
进一步地,对于长时间处于空闲状态的内核容器,在完成其资源的释放之后,还可以根据实际的需求创建和拉取相应的内核容器,具体包括:在确定第一网络服务接收到上传的代码执行请求的情况下,创建与第一网络服务相对应的第二内核容器,其中,第一内核容器与第二内核容器均为可使用内核容器中的任意一个。
也就是,在第一网络服务容器接收到相应的请求以需要使用内核容器来执行相应的任务时,以执行代码为例,在第一网络服务请求接收到代码执行请求时,将会创建用于与第一网络服务容器相连接,且用于进行代码执行的第二内核容器,而对于所创建的第二内核容器,可以与第一内核容器为相同的内核容器,也可以根据实际需求而使用的另外的内核容器。
步骤103,建立目标内核容器与网络服务容器之间的连接,并将待执行代码发送至目标内核容器进行代码执行。
在一实施例中,在完成目标内核容器的创建之后,将建立目标内核容器与网络服务容器之间的连接,然后将网络服务容器所接收到的待执行代码发送至目标内核容器,以使得目标内核容器进行代码执行。
进一步地,在完成代码执行之后,需要进行结果反馈,因此,在确定目标内容容器完成代码执行之后,包括:在确定目标内核容器完成代码执行的情况下,获取相应的执行结果,并将执行结果发送至网络服务容器;将执行结果发送至发出代码执行请求的终端,以将执行结果显示在终端的显示界面上。
示例性地,在确定目标内核容器完成代码执行之后,对执行完成得到的执行结果将反馈至网络服务容器,同时对于网络服务容器所接收到的执行结果,也可以反馈至用户端,以供用户端进行结果查看,如显示在用户端的终端的显示界面上,比如浏览器的相关界面上。
进一步地,参照图4,图4是本申请实施例提供的网络服务解决方案的步骤的一种框图示意图。结合图2,在交互过程中,用户在浏览器上通过与系统的交互完成代码的编码和执行等操作,而系统通过对用户的需求进行分析处理,合理的对GPU资源进行分配,提高GPU算力资源的使用灵活性,避免出现资源浪费。
其中,在进行处理时,包括:
S1,用户提交创建jupyterLab实例的请求;
S2,k8s集群接收响应请求初始化创建jupyterlab容器;
S3,用户在jupyterlab客户端页面完成编码,提交执行代码请求到jupyterlab容器的notebook server(网络服务容器);
S4,此时,jupyterLab容器中的notebook server(网络服务容器)判断是否存在相连接的kernel容器(内核容器),若存在否则进入S5,若不存在则直接进入S7;
S5,jupyterlab容器响应请求,调用jupyter enterprize gateway(notebookserver上的一个接口)网关动态创建远程kernel容器,然后k8s集群进行响应,给kernel容器进行资源分配,以分配共享GPU算力资源;
S6,完成共享GPU算力分配后,从分配到集群节点的本地cache获取kernel镜像,并拉起相应的容器,建立与jupyter enterprize gateway的连接;
S7,创建好的kernel容器执行代码并将执行结果返回给jupyter enterprizegateway;
S8,jupyter enterprize gateway获取结果后返回给jupyterlab容器的notebookserver并返回给用户客户端。
另外,对于系统中所使用的内核容器,可以采用心跳检测机制对其进行管理,包括保持连接和断开连接,比如可以设定在指定的时间间隔内,若kernel容器未被使用,则会动态地销毁kernel容器并释放容器所占用相关资源,惨嚎图5,图5是本申请实施例提供的对内核容器进行监测的步骤的一种流程示意图。
由图5可知,在进行监测时,具体过程包括:
S9,jupyter enterprize gateway检测notebook server所连接的kernel容器的闲置时间是否达到配置的阈值;
S10,若闲置时间未达到配置的阈值,则保持连接,并结束当前监测;
S11,若闲置时间达到配置的阈值,则向k8s集群提交删除kernel容器的请求,并释放所删除的kernel容器所占用的GPU资源。
S12,判断是否达到下一次监测时刻,并在确认达到下一次监测时刻的情况下,进入S9。
需要说明的是,图5中的S9-S12与图4中的S-S8没有关联,仅用于分别对图4和图5中的执行过程进行顺序标注。
综上,本申请公开了一种网络服务处理方法,在进行网络服务的处理过程中,将网络服务与内核容器拆分,然后根据实际的需求创建相应的内核容器用于执行网络服务,具体地,在接收到代码执行请求的情况相爱,确定接收待执行代码的网络服务容器是否存在相关联的内核容器,其中,内核容器用于执行待执行代码,在确定不存在相连接的内核容器时,创建新的用于代码执行的目标内核容器,同时对目标内核容器分配相应的GPU资源,进而通过建立目标内核容器与网络服务容器之间的连接,以将待执行代码发送至目标内核容器进行代码执行,并将直接结果反馈至网络服务容器。实现了在处理过程中,通过将网络服务容器与内核容器的拆分,避免网络服务容器与内核容器的绑定而导致GPU资源与网络服务容器的绑定,提高了GPU资源的灵活性,降低了GPU资源的浪费。
根据上述实施例所描述的方法,本实施例将从网络服务处理装置的角度进一步进行描述,该网络服务处理装置具体可以作为独立的实体来实现,也可以集成在电子设备,比如终端中来实现,该终端可以包括手机、平板电脑等。
请参见图6,图6是本申请实施例提供的网络服务处理装置的一种结构示意图,如图6所示,本申请实施例提供的网络服务处理装置600,包括:
请求接收模块601,用于在接收到代码执行请求的情况下,确定接收待执行代码的网路服务容器是否存在相连接的内核容器;
容器创建模块602,用于在确定不存在相连接的内核容器的情况下,创建与网络服务容器相对应的目标内核容器,并对目标内核容器分配相应的GPU资源用于执行待执行代码;
代码执行模块603,用于建立目标内核容器与网络服务容器之间的连接,并将待执行代码发送至目标内核容器进行代码执行。
在一实施例中,网络服务处理装置600还包括一个初始化模块,用于:
在接收到实例创建请求的情况下,确定实例创建请求是否为首次请求;
在确定为首次请求的情况下,创建用于响应实例创建请求的网络服务容器;
在接收到代码上传请求的情况下,将所接收到的待执行代码存储在网络服务容器中。
在一实施例中,容器创建模块602还用于:
在确定不存在相连接的内核容器的情况下,根据代码执行请求得到当前的GPU算力需求;
根据GPU算力需求进行资源分配,在本地缓存中确定用于执行待执行代码的内核容器的容器信息;
根据容器信息确定用于执行待执行代码的目标内核容器,并拉起目标内核容器建立与网络服务容器的连接。
在一实施例中,网络服务处理装置600还包括一个状态监控模块,用于:
对与第一网络服务容器相连接的第一内核容器进行监控,得到第一内核容器的空闲时长;
根据空闲时长确定是否对第一内核进行释放;
在空闲时长大于或者等于预设时长的情况下,断开第一内核容器与第一网络服务的连接,并对第一内核容器进行资源释放;
在空闲时长小于预设时长的情况下,保持第一内核容器与第一网络服务的连接。
在一实施例中,容器创建模块602还用于:
在确定第一网络服务接收到上传的代码执行请求的情况下,创建与第一网络服务相对应的第二内核容器,其中,第一内核容器与第二内核容器均为可使用内核容器中的任意一个。
在一实施例中,容器创建模块602还用于:
在确定存在相连接的内核容器的情况下,将代码发送至相连接的内核容器中进行处理;
接收相连接的内核容器执行代码得到的执行结果,并将执行结果发送至目标内核容器。
在一实施例中,网络服务处理装置600还包括一个结果反馈模块,用于:
在确定目标内核容器完成代码执行的情况下,获取相应的执行结果,并将执行结果发送至网络服务容器;
将执行结果发送至发出代码执行请求的终端,以将执行结果显示在终端的显示界面上。
另外,请参见图7,图7是本申请实施例提供的电子设备的一种结构示意图,该电子设备可以是移动终端如智能手机、平板电脑等设备。如图7所示,电子设备700包括处理器701、存储器702。其中,处理器701与存储器702电性连接。
处理器701是电子设备700的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或加载存储在存储器702内的应用程序,以及调用存储在存储器702内的数据,执行电子设备700的各种功能和处理数据,从而对电子设备700进行整体监测。
在本实施例中,电子设备700中的处理器701会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器702中,并由处理器701来运行存储在存储器702中的应用程序,从而实现上述实施例提供的网络服务处理方法中的任一步骤。
该电子设备700可以实现本申请实施例所提供的网络服务处理方法任一实施例中的步骤,因此,可以实现本申请实施例所提供的任一网络服务处理方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
请参见图8,图8是本申请实施例提供的电子设备的另一种结构示意图,如图8所示,图8示出了本申请实施例提供的电子设备的具体结构框图,该电子设备可以用于实施上述实施例中提供的网络服务处理方法。该电子设备800可以为移动终端如智能手机或笔记本电脑等设备。
RF电路810用于接收以及发送电磁波,实现电磁波与电信号的相互转换,从而与通讯网络或者其他设备进行通讯。RF电路810可包括各种现有的用于执行这些功能的电路元件,例如,天线、射频收发器、数字信号处理器、加密/解密芯片、用户身份模块(SIM)卡、存储器等等。RF电路810可与各种网络如互联网、企业内部网、无线网络进行通讯或者通过无线网络与其他设备进行通讯。上述的无线网络可包括蜂窝式电话网、无线局域网或者城域网。上述的无线网络可以使用各种通信标准、协议及技术,包括但并不限于全球移动通信系统(Global System for Mobile Communication,GSM)、增强型移动通信技术(Enhanced DataGSM Environment,EDGE),宽带码分多址技术(Wideband Code DivisionMultiple Access,WCDMA),码分多址技术(Code DivisionAccess,CDMA)、时分多址技术(Time DivisionMultipleAccess,TDMA),无线保真技术(Wireless Fidelity,Wi-Fi)(如美国电气和电子工程师协会标准IEEE 802.11a,IEEE 802.11b,IEEE802.11g和/或IEEE 802.11n)、网络电话(Voice overInternetProtocol,VoIP)、全球微波互联接入(Worldwide InteroperabilityforMicrowaveAccess,Wi-Max)、其他用于邮件、即时通讯及短消息的协议,以及任何其他合适的通讯协议,甚至可包括那些当前仍未被开发出来的协议。
存储器820可用于存储软件程序以及模块,如上述实施例中网络服务处理方法对应的程序指令/模块,处理器880通过运行存储在存储器820内的软件程序以及模块,从而执行各种功能应用以及对网络服务处理方法。
存储器820可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器820可进一步包括相对于处理器880远程设置的存储器,这些远程存储器可以通过网络连接至电子设备800。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入单元830可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,输入单元830可包括触敏表面831以及其他输入设备832。触敏表面831,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面831上或在触敏表面831附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面831可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器880,并能接收处理器880发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面831。除了触敏表面831,输入单元830还可以包括其他输入设备832。具体地,其他输入设备832可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元840可用于显示由用户输入的信息或提供给用户的信息以及电子设备800的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元840可包括显示面板841,可选的,可以采用LCD(Liquid Crystal Display,液晶显示器)、OLED(Organic Light-Emitting Diode,有机发光二极管)等形式来配置显示面板841。进一步的,触敏表面831可覆盖显示面板841,当触敏表面831检测到在其上或附近的触摸操作后,传送给处理器880以确定触摸事件的类型,随后处理器880根据触摸事件的类型在显示面板841上提供相应的视觉输出。虽然在图中,触敏表面831与显示面板841是作为两个独立的部件来实现输入和输出功能,但是在某些实施例中,可以将触敏表面831与显示面板841集成而实现输入和输出功能。
电子设备800还可包括至少一种传感器850,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板841的亮度,接近传感器可在翻盖合上或者关闭时产生中断。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于电子设备800还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路860、扬声器861,传声器862可提供用户与电子设备800之间的音频接口。音频电路860可将接收到的音频数据转换后的电信号,传输到扬声器861,由扬声器861转换为声音信号输出;另一方面,传声器862将收集的声音信号转换为电信号,由音频电路860接收后转换为音频数据,再将音频数据输出处理器880处理后,经RF电路810以发送给比如另一终端,或者将音频数据输出至存储器820以便进一步处理。音频电路860还可能包括耳塞插孔,以提供外设耳机与电子设备800的通信。
电子设备800通过传输模块870(例如Wi-Fi模块)可以帮助用户接收请求、发送信息等,它为用户提供了无线的宽带互联网访问。虽然图中示出了传输模块870,但是可以理解的是,其并不属于电子设备800的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器880是电子设备800的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器820内的软件程序和/或模块,以及调用存储在存储器820内的数据,执行电子设备800的各种功能和处理数据,从而对电子设备进行整体监测。可选的,处理器880可包括一个或多个处理核心;在一些实施例中,处理器880可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解地,上述调制解调处理器也可以不集成到处理器880中。
电子设备800还包括给各个部件供电的电源890(比如电池),在一些实施例中,电源可以通过电源管理系统与处理器880逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源890还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,电子设备800还包括摄像头(如前置摄像头、后置摄像头)、蓝牙模块等,在此不再赘述。具体在本实施例中,电子设备的显示单元是触摸屏显示器,移动终端还包括有存储器,以及一个或者一个以上的程序,其中一个或者一个以上程序存储于存储器中,且经配置以由一个或者一个以上处理器执行一个或者一个以上程序实现上述实施例提供的网络服务处理方法中的任一步骤。
具体实施时,以上各个模块可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个模块的具体实施可参见前面的方法实施例,在此不再赘述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。为此,本申请实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器执行时实现上述实施例所提供的网络服务处理方法中的任一步骤。
其中,该存储介质可以包括:只读存储器(ROM,Read OnlyMemory)、随机存取记忆体(RAM,RandomAccess Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本申请实施例所提供的网络服务处理方法任一实施例中的步骤,因此,可以实现本申请实施例所提供的任一网络服务处理方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种网络服务处理方法、装置、电子设备及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上,本说明书内容不应理解为对本申请的限制。并且,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本申请的保护范围。
Claims (10)
1.一种网络服务处理方法,其特征在于,包括:
在接收到代码执行请求的情况下,确定接收待执行代码的网路服务容器是否存在相连接的内核容器;
在确定不存在相连接的内核容器的情况下,创建与所述网络服务容器相对应的目标内核容器,并对所述目标内核容器分配相应的GPU资源用于执行所述待执行代码;
建立所述目标内核容器与所述网络服务容器之间的连接,并将所述待执行代码发送至所述目标内核容器进行代码执行。
2.如权利要求1所述的方法,其特征在于,所述在接收到代码执行请求的情况下,确定接收待执行代码的网路服务容器是否存在相连接的内核容器之前,还包括:
在接收到实例创建请求的情况下,确定所述实例创建请求是否为首次请求;
在确定为首次请求的情况下,创建用于响应所述实例创建请求的网络服务容器;
在接收到代码上传请求的情况下,将所接收到的待执行代码存储在所述网络服务容器中。
3.如权利要求1所述的方法,其特征在于,所述在确定不存在相连接的内核容器的情况下,创建与所述网络服务容器相对应的目标内核容器,并对所述目标内核容器分配相应的GPU资源用于执行所述待执行代码,包括:
在确定不存在相连接的内核容器的情况下,根据所述代码执行请求得到当前的GPU算力需求;
根据所述GPU算力需求进行资源分配,在本地缓存中确定用于执行所述待执行代码的内核容器的容器信息;
根据所述容器信息确定用于执行所述待执行代码的目标内核容器,并拉起所述目标内核容器建立与所述网络服务容器的连接。
4.如权利要求1所述的方法,其特征在于,所述方法还包括:
对与第一网络服务容器相连接的第一内核容器进行监控,得到所述第一内核容器的空闲时长;
根据所述空闲时长确定是否对所述第一内核进行释放;
在所述空闲时长大于或者等于预设时长的情况下,断开所述第一内核容器与所述第一网络服务的连接,并对所述第一内核容器进行资源释放;
在所述空闲时长小于预设时长的情况下,保持所述第一内核容器与所述第一网络服务的连接。
5.如权利要求4所述的方法,其特征在于,所述在所述空闲时长小于预设时长的情况下,保持所述第一内核容器与所述第一网络服务的连接之后,还包括:
在确定所述第一网络服务接收到上传的代码执行请求的情况下,创建与所述第一网络服务相对应的第二内核容器,其中,所述第一内核容器与所述第二内核容器均为可使用内核容器中的任意一个。
6.如权利要求1所述的方法,其特征在于,所述在确定执行代码的情况下,确定接收所述代码的网路服务容器是否存在相连接的内核容器之后,还包括:
在确定存在相连接的内核容器的情况下,将所述代码发送至相连接的内核容器中进行处理;
接收相连接的内核容器执行所述代码得到的执行结果,并将所述执行结果发送至所述目标内核容器。
7.如权利要求1所述的方法,其特征在于,所述建立所述目标内核容器与所述网络服务容器之间的连接,并将所述代码发送至所述目标内核容器进行代码执行之后,还包括:
在确定所述目标内核容器完成代码执行的情况下,获取相应的执行结果,并将所述执行结果发送至所述网络服务容器;
将所述执行结果发送至发出所述代码执行请求的终端,以将所述执行结果显示在所述终端的显示界面上。
8.一种网络服务处理装置,其特征在于,包括:
请求接收模块,用于在接收到代码执行请求的情况下,确定接收待执行代码的网路服务容器是否存在相连接的内核容器;
容器创建模块,用于在确定不存在相连接的内核容器的情况下,创建与所述网络服务容器相对应的目标内核容器,并对所述目标内核容器分配相应的GPU资源用于执行所述待执行代码;
代码执行模块,用于建立所述目标内核容器与所述网络服务容器之间的连接,并将所述待执行代码发送至所述目标内核容器进行代码执行。
9.一种电子设备,其特征在于,所述电子设备包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如权利要求1至7任一项所述的方法中的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311555199.XA CN117555649A (zh) | 2023-11-20 | 2023-11-20 | 网络服务处理方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311555199.XA CN117555649A (zh) | 2023-11-20 | 2023-11-20 | 网络服务处理方法、装置、设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117555649A true CN117555649A (zh) | 2024-02-13 |
Family
ID=89820167
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311555199.XA Pending CN117555649A (zh) | 2023-11-20 | 2023-11-20 | 网络服务处理方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117555649A (zh) |
-
2023
- 2023-11-20 CN CN202311555199.XA patent/CN117555649A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106919918B (zh) | 一种人脸跟踪方法和装置 | |
WO2018103484A1 (zh) | 直播页面的数据处理方法、装置和系统 | |
CN107391259B (zh) | 资源处理方法和装置、计算机可读存储介质、移动终端 | |
EP3531290B1 (en) | Data backup method, apparatus, electronic device, storage medium, and system | |
EP3471450B1 (en) | Network bandwidth management method, terminal and computer storage medium | |
CN106406924B (zh) | 应用程序启动和退出画面的控制方法、装置及移动终端 | |
CN109714476B (zh) | 数据处理方法、装置、移动终端及存储介质 | |
CN109144723B (zh) | 一种分配存储空间的方法和终端 | |
CN111078316B (zh) | 布局文件加载方法、装置、存储介质及电子设备 | |
CN108874554B (zh) | 信息通信方法及装置 | |
CN111338745B (zh) | 一种虚拟机的部署方法、装置及智能设备 | |
CN114327087A (zh) | 输入事件处理方法、装置、电子设备和存储介质 | |
CN111026457B (zh) | 一种硬件配置方法、装置、存储介质及终端设备 | |
WO2023246757A1 (zh) | 算力服务方法、装置及终端 | |
CN110309462B (zh) | 数据展示方法及系统 | |
CN112235082A (zh) | 通信信息的传输方法、装置、设备及存储介质 | |
CN106209601B (zh) | 状态更新消息的推送方法及装置 | |
CN117555649A (zh) | 网络服务处理方法、装置、设备及存储介质 | |
CN110209491B (zh) | 一种资源管理方法、装置、服务器及存储介质 | |
CN116684467B (zh) | 数据获取方法、电子设备及存储介质 | |
CN112333787B (zh) | 数据传输方法、装置、存储介质、终端及网络接入点设备 | |
CN111488123B (zh) | 存储空间管理方法、装置、存储介质及移动终端 | |
CN111026488B (zh) | 通信数据保存方法、装置、终端设备和存储介质 | |
CN115829897B (zh) | 一种图像融合处理方法、装置、电子设备及介质 | |
CN110990606B (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 |