CN117539594A - 一种面向像素流程序并发渲染的负载均衡方法 - Google Patents

一种面向像素流程序并发渲染的负载均衡方法 Download PDF

Info

Publication number
CN117539594A
CN117539594A CN202410031996.6A CN202410031996A CN117539594A CN 117539594 A CN117539594 A CN 117539594A CN 202410031996 A CN202410031996 A CN 202410031996A CN 117539594 A CN117539594 A CN 117539594A
Authority
CN
China
Prior art keywords
load balancing
server
mode
pixel
weight
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
CN202410031996.6A
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.)
CETC Information Science Research Institute
Original Assignee
CETC Information Science Research Institute
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 CETC Information Science Research Institute filed Critical CETC Information Science Research Institute
Priority to CN202410031996.6A priority Critical patent/CN117539594A/zh
Publication of CN117539594A publication Critical patent/CN117539594A/zh
Pending legal-status Critical Current

Links

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
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • 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/4557Distribution of virtual machine instances; Migration and load balancing

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请涉及一种面向像素流程序并发渲染的负载均衡方法。该方法包括在Docker容器中部署运行像素流程序;获得用户的像素流计算资源调用请求;其中所述像素流计算资源调用请求包括负载均衡方式;当所述负载均衡方式为默认方式时,依据用户权重规则和服务器权重规则,为多个用户和多个服务器分别配置相应权重;依据用户权重和服务器权重的配置关系,选择目标服务器提供像素流计算资源。此外,负载均衡方式还包括轮询方式、预设权重方式和/或单计算节点方式,并可依据所选定的负载均衡方式,确定相应的负载均衡回退机制。本申请以Docker容器虚拟技术为基础,可以实现更为灵活地调度硬件资源,提高像素流渲染时的服务器资源利用效率。

Description

一种面向像素流程序并发渲染的负载均衡方法
技术领域
本申请涉及图像处理技术领域,尤其涉及一种面向像素流程序并发渲染的负载均衡方法。
背景技术
像素流技术可以在用户不可见的“电脑”上远程运行虚幻引擎应用程序,这台“电脑”可以是机构中的一台实体电脑,也可以是云端服务提供的虚拟机,以使虚幻引擎使用该“电脑”的可用资源来运行游戏逻辑并渲染每一帧,然后将此渲染输出编码到一个媒体流送中,再通过轻量级网页服务堆栈进行传递,用户即可在其他电脑和移动服务器上运行的标准网页浏览器中查看直播流送。像素流视频画面传输通常使用WebRTC技术,即网页即时通信。是一个支持网页浏览器进行实时语音对话或视频对话的技术方案。从前端技术开发的视角来看,是一组可调用的API标准。由于像素流技术起初是为游戏引擎开发的,特别是当“电脑”采用Windows虚拟机时性能损失严重,而采用Docker容器虚拟不仅性能高效,而且可以方便接入Kubernetes等类似的生态环境,实现高效调度容器资源。
因此,如何采用Docker容器虚拟方式时更灵活调度硬件资源,即设计一套面向像素流程序并发渲染的负载均衡调度方案,是需要解决的技术问题。
发明内容
本申请意在提供一种面向像素流程序并发渲染的负载均衡方法、装置、电子服务器及存储介质,所要解决的技术问题通过以下技术方案来实现。
本实施例第一方面,提出了一种面向像素流程序并发渲染的负载均衡方法,在Docker容器中部署运行像素流程序;所述方法包括:
获得用户的像素流计算资源调用请求;其中所述像素流计算资源调用请求包括负载均衡方式;
当所述负载均衡方式为默认方式时,依据用户权重规则和服务器权重规则,为多个用户和多个服务器分别配置相应权重;
依据用户权重和服务器权重的配置关系,选择目标服务器提供像素流计算资源。
进一步地,依据用户权重规则,为多个用户配置相应权重,包括:
获取用户到服务器的时间延迟;
依据时间延迟从低到高顺序,对应确定多个用户配置的权重值。
进一步地,依据服务器权重规则,为多个服务器配置相应权重,包括:
获取服务器的相关配置参数;其中所述相关配置参数至少包括GPU、CPU、物理内存和网络传输参数;
依据相关配置参数,按照预设规则计算获得对应多个服务器的权重值,以及获得多个服务器进行负载计算的可承载容量。
进一步地,依据相关配置参数,按照预设规则计算获得对应多个服务器的权重值,包括对相关配置参数进行归一化后相加排序,获得对应多个服务器的权重值。
进一步地,依据用户权重和服务器权重的配置关系,选择目标服务器提供像素流计算资源,包括:
依据用户权重,确定对应的服务器容量;
依据服务器容量占全部可承载容量的比例,确定不同的服务器资源配置;
依据不同的服务器资源配置,选择目标服务器提供像素流计算资源。
进一步地,所述服务器资源配置至少包括像素流帧率、起始码率、最大码率、最小码率、最小量化步长和像素流编码方式。
进一步地,所述负载均衡方式还包括轮询方式、预设权重方式和/或单计算节点方式。
进一步地,依据所选定的负载均衡方式,确定相应的负载均衡回退机制;包括:
若用户选定默认方式、轮询方式、预设权重方式、单计算节点方式中的任一负载均衡方式,当选择目标服务器失败时,直接反馈相应错误信息;
若用户未选定任一负载均衡方式,当选择目标服务器失败时,依据预设回退顺序切换负载均衡方式,直至选择目标服务器成功;否则,在切换运行全部负载均衡方式均失败后,反馈相应错误信息。
本实施例第二方面,提出一种面向像素流程序并发渲染的负载均衡装置,在Docker容器中部署运行像素流程序;所述装置包括:
第一模块,被配置为获得用户的像素流计算资源调用请求;其中所述像素流计算资源调用请求包括负载均衡方式;
第二模块,被配置为当所述负载均衡方式为默认方式时,依据用户权重规则和服务器权重规则,为多个用户和多个服务器分别配置相应权重;
第三模块,被配置为依据用户权重和服务器权重的配置关系,选择目标服务器提供像素流计算资源。
本实施例第三方面,提出了一种电子服务器,包括存储器、处理器以及存储在所述存储器中并且可在所述处理器上运行的计算机程序,所述处理器在执行所述计算机程序时,实现如第一方面所述的面向像素流程序并发渲染的负载均衡方法的步骤。
本实施例第四方面,提出了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时,实现如第一方面所述的面向像素流程序并发渲染的负载均衡方法的步骤。
本申请实施例包括以下优点:
本申请实施例提供的面向像素流程序并发渲染的负载均衡方法,在Docker容器中部署运行像素流程序;首先,获得用户的像素流计算资源调用请求;其中所述像素流计算资源调用请求包括负载均衡方式;当所述负载均衡方式为默认方式时,依据用户权重规则和服务器权重规则,为多个用户和多个服务器分别配置相应权重;依据用户权重和服务器权重的配置关系,选择目标服务器提供像素流计算资源。此外,负载均衡方式还包括轮询方式、预设权重方式和/或单计算节点方式,并可依据所选定的负载均衡方式,确定相应的负载均衡回退机制。本申请以Docker容器虚拟技术为基础,可以实现更为灵活地调度硬件资源,提高像素流渲染时的服务器资源利用效率。
附图说明
图1是本申请实施例的面向像素流程序并发渲染的负载均衡方法流程示意图之一;
图2是本申请实施例的面向像素流程序并发渲染的负载均衡方法流程示意图之二;
图3是本申请实施例的面向像素流程序并发渲染的负载均衡方法流程示意图之三;
图4是本申请实施例的面向像素流程序并发渲染的负载均衡方法流程示意图之四;
图5是本申请实施例的面向像素流程序并发渲染的负载均衡方法流程示意图之五;
图6是本申请实施例的面向像素流程序并发渲染的负载均衡装置结构示意图;
图7是本申请实施例提供的一种电子服务器的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
如背景技术所述,像素流可以在用户不可见的“电脑”上远程运行虚幻引擎应用程序,这台“电脑”可以是机构中的一台实体电脑,也可以是云端服务提供的虚拟机。虚幻引擎将使用该“电脑”可用的资源,例如CPU、GPU、内存等,来运行游戏逻辑并渲染每一帧。它会不断将此渲染输出编码到一个媒体流送中,再通过一个轻量级的网页服务堆栈进行传递。用户即可在其他电脑和移动服务器上运行的标准网页浏览器中查看直播流送。对于用户而言,这种体验就像是在YouTube或Netflix上观看视频流送,但有以下两点例外:一是流送并非播放预先录制的视频片段,而是播放虚幻引擎实时生成的渲染帧和音频;二是用户可通过自己的浏览器对体验进行控制,将键盘、鼠标、触摸事件和播放器网页发出的自定义事件发送回虚幻引擎。
像素流的视频画面传输使用WebRTC技术(Web Real-Time Communication),即网页即时通信技术,是支持网页浏览器进行实时语音对话或视频对话的技术方案。从前端技术开发的视角来看,是一组可调用的API标准。在WebRTC发布之前,开发实时音视频交互应用的成本是非常昂贵,需要考虑的技术问题很多,如音视频的编解码问题,数据传输问题,延时、丢包、抖动、回音的处理和消除等,如果要兼容浏览器端的实时音视频通信,还需要额外安装插件。
由于像素流技术本来是为游戏引擎开发的,但是因为游戏公司为成本考虑,较多维护使用windows系统,一般Windows虚拟机采用qemu虚拟,其性能损失严重。而采用Docker容器虚拟的方法不仅性能高效,而且可以方便接入Kubernetes等类似的生态环境,可以高效调度容器资源,甚至也可以扩展至Linux操作系统生态中。
通常,像素流后端UE程序的运行,例如仿真计算、渲染、编码、解码等均可以在Docker容器中,因此在面向像素流程序并发渲染时,最主要是对Docker容器进行调度。Docker 是一种开源项目,用于将应用程序自动部署为可在云或本地运行的便携式独立容器。它与云、Linux和 Windows 供应商(包括 Microsoft)协作,致力于推广和发展这项技术。Docker 容器可以在任意位置运行,也可以在 Linux 和Windows 上本机运行。
因此,如何采用Docker容器虚拟方式时更灵活调度硬件资源,即设计一套面向像素流程序并发渲染的负载均衡调度方案,是需要解决的技术问题。
实施例一:
首先,在Docker容器中部署运行像素流程序,即对于像素流的执行采用Docker容器方式,实现伪代码如下。
container = docker.run(
run_image, // 运行镜像
gpus=(调用NVML, 选择当前机器负载最低GPU)
networks=["host"], //使用主机网络通信,减少nat消耗
volumes=[ // 映射相关文件
(
"/etc/vulkan/icd.d/nvidia_icd.json",
"/etc/vulkan/icd.d/nvidia_icd.json",
),
(
"/etc/vulkan/implicit_layer.d/nvidia_layers.json",
"/etc/vulkan/implicit_layer.d/nvidia_layers.json",
),
(
"/usr/share/glvnd/egl_vendor.d/10_nvidia.json",
"/usr/share/glvnd/egl_vendor.d/10_nvidia.json",
),
(docker_program_path, "/work/program"),
(
pixelStreamingInfrastructure_path, // 信令服务器附加到容器内部,用于和client通信
"/work/PixelStreamingInfrastructure",
),
],
)
如图1所示,为本申请实施例的一种面向像素流程序并发渲染的负载均衡方法流程示意图。上述方法包括:
S101:获得用户的像素流计算资源调用请求;其中所述像素流计算资源调用请求包括负载均衡方式。
S102:当所述负载均衡方式为默认方式时,依据用户权重规则和服务器权重规则,为多个用户和多个服务器分别配置相应权重;
S103:依据用户权重和服务器权重的配置关系,选择目标服务器提供像素流计算资源。
在一些实施例中,依据用户权重规则,为多个用户配置相应权重,如图2所示,包括:
S211:获取用户到服务器的时间延迟。
S212:依据时间延迟从低到高顺序,对应确定多个用户配置的权重值。
在一些实施例中,依据服务器权重规则,为多个服务器配置相应权重,如图3所示,包括:
S311:获取服务器的相关配置参数;其中所述相关配置参数至少包括GPU、CPU、物理内存和网络传输参数。
S312:依据相关配置参数,按照预设规则计算获得对应多个服务器的权重值,以及获得多个服务器进行负载计算的可承载容量。
在一些实施例中,依据相关配置参数,按照预设规则计算获得对应多个服务器的权重值,包括对相关配置参数进行归一化后相加排序,获得对应多个服务器的权重值。
具体地,收集其他服务器GPU、CPU、物理内存physical_memory、网络传输信息netio等等,默认单位为Byte,温度单位℃,其中网络传输net_io_bytes_recv是当前系统接受总Byte。
{
# cpu
"cpu_count": psutil.cpu_count(),
"cpu_physical_core_count": psutil.cpu_count(logical=False),
"cpu_percent": psutil.cpu_percent(),
"cpu_percent_percpu": psutil.cpu_percent(percpu=True),
# physical_memory
"physical_memory_total": psutil.virtual_memory().total,
"physical_memory_available": psutil.virtual_memory().available,
"physical_memory_used": psutil.virtual_memory().used,
# "physical_memory_buffers": psutil.virtual_memory().buffers,
"physical_memory_percent": psutil.virtual_memory().percent,
# net io
"net_io_bytes_recv": psutil.net_io_counters().bytes_recv,
"net_io_bytes_sent": psutil.net_io_counters().bytes_sent,
# gpu
"gpu_status_all": gpu_status_list,
# -------------
"gpu_memory_total": gpu_memoryInfo.total,
"gpu_memory_free": gpu_memoryInfo.free,
"gpu_memory_used": gpu_memoryInfo.used,
"gpu_name": pynvml.nvmlDeviceGetName(gpu_handle),
"gpu_count": pynvml.nvmlDeviceGetCount(),
"gpu_version": pynvml.nvmlSystemGetDriverVersion(),
"gpu_power_usage": pynvml.nvmlDeviceGetPowerUsage(gpu_handle) / 1000,
"gpu_power_capacity":pynvml.nvmlDeviceGetEnforcedPowerLimit(gpu_handle)
/ 1000,
"gpu_temperature ": pynvml.nvmlDeviceGetTemperature(gpu_handle, 0),
在一些实施例中,依据用户权重和服务器权重的配置关系,选择目标服务器提供像素流计算资源,如图4所示,包括:
S411:依据用户权重,确定对应的服务器容量。
S412:依据服务器容量占全部可承载容量的比例,确定不同的服务器资源配置。
S413:依据不同的服务器资源配置,选择目标服务器提供像素流计算资源。
在一些实施例中,所述服务器资源配置至少包括像素流帧率、起始码率、最大码率、最小码率、最小量化步长和像素流编码方式。
具体实现中,可以对用户和服务器权重排序。对用户的权重分级,将所有用户按条件分为三个挡位,例如按照用户的延迟率,分为:
"高":占用3个服务器容量;
"中":占用2个服务器容量;
"低":占用1个服务器容量。
对服务器权重排序,可以分为
if 服务器使用数不足总容量1/3 :(按照服务器使用率低)
//所有用户使用"高"挡位
else if 服务器使用数不足总容量2/3: (按照服务器使用率中)
//所有用户分为两个挡位 "中"/"高 (已有运行实例不变)
else: (按照服务器使用率高)
//所有用户分为三个挡位 "中"/"高/"低" (已有运行实例不变)。
而对于三个不同的挡位使用不同服务器配置,权重大的用户依次在权重大的服务器执行,直到所有服务器容量满载为止,例如:
"高":
-PixelStreamingWebRTCMaxFps=120 \
-PixelStreamingWebRTCStartBitrate=4000000 \
-PixelStreamingWebRTCMinBitrate=100000 \
-PixelStreamingWebRTCMaxBitrate=20000000 \
-PixelStreamingEncoderMinQP=0 \
-ExecCmds="t.MaxFPS 120" \
-PixelStreamingEncoderCodec=H264
"中":
-PixelStreamingWebRTCMaxFps=60 \
-PixelStreamingWebRTCStartBitrate=4000000 \
-PixelStreamingWebRTCMinBitrate=100000 \
-PixelStreamingWebRTCMaxBitrate=10000000 \
-PixelStreamingEncoderMinQP=8 \
-ExecCmds="t.MaxFPS 60" \
-PixelStreamingEncoderCodec=H264
"低":
-PixelStreamingWebRTCMaxFps=60 \
-PixelStreamingWebRTCStartBitrate=2000000 \
-PixelStreamingWebRTCMinBitrate=100000 \
-PixelStreamingWebRTCMaxBitrate=10000000 \
-PixelStreamingEncoderMinQP=15 \
-ExecCmds="t.MaxFPS 30" \
-PixelStreamingEncoderCodec=VP8
在一些实施例中,所述负载均衡方式还包括轮询方式、预设权重方式和/或单计算节点方式。
在一些实施例中,依据所选定的负载均衡方式,确定相应的负载均衡回退机制,如图5所示,包括:
S511:若用户选定默认方式、轮询方式、预设权重方式、单计算节点方式中的任一负载均衡方式,当选择目标服务器失败时,直接反馈相应错误信息。
S512:若用户未选定任一负载均衡方式,当选择目标服务器失败时,依据预设回退顺序切换负载均衡方式,直至选择目标服务器成功;否则,在切换运行全部负载均衡方式均失败后,反馈相应错误信息。
对于可能造成的负载均衡失败的原因,例如对于采用默认方式进行负载均衡时,失败的原因可能包括:1) 无法获取CPU、物理内存或者网络传输数据;2)无法调用nvml,导致GPU数据无法获取,或者GPU硬件故障;3) 其他未知错误等等。再例如,对于采用预设权重方式的失败可能包括:1) 没有配置权重;2) 其他未知错误等等。
本申请实施例提供的面向像素流程序并发渲染的负载均衡方法,在Docker容器中部署运行像素流程序;首先,获得用户的像素流计算资源调用请求;其中所述像素流计算资源调用请求包括负载均衡方式;当所述负载均衡方式为默认方式时,依据用户权重规则和服务器权重规则,为多个用户和多个服务器分别配置相应权重;依据用户权重和服务器权重的配置关系,选择目标服务器提供像素流计算资源。此外,负载均衡方式还包括轮询方式、预设权重方式和/或单计算节点方式,并可依据所选定的负载均衡方式,确定相应的负载均衡回退机制。本申请以Docker容器虚拟技术为基础,可以实现更为灵活地调度硬件资源,提高像素流渲染时的服务器资源利用效率。
实施例二:
图6是本申请实施例提供的一种面向像素流程序并发渲染的负载均衡装置的示意图。如图6所示,在Docker容器中部署运行像素流程序,所述装置包括:
第一模块601,被配置为获得用户的像素流计算资源调用请求;其中所述像素流计算资源调用请求包括负载均衡方式;
第二模块602,被配置为当所述负载均衡方式为默认方式时,依据用户权重规则和服务器权重规则,为多个用户和多个服务器分别配置相应权重;
第三模块603,被配置为依据用户权重和服务器权重的配置关系,选择目标服务器提供像素流计算资源。
应理解,本说明书实施例的一种面向像素流程序并发渲染的负载均衡装置还可执行图1至图5中面向像素流程序并发渲染的负载均衡装置执行的方法,并实现面向像素流程序并发渲染的负载均衡装置在图1至图7所示实例的功能,在此不再赘述。
同时,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
实施例三:
图7是本申请实施例提供的电子服务器7的示意图。如图7所示,该实施例的电子服务器7包括:处理器701、存储器702以及存储在该存储器702中并且可在处理器701上运行的计算机程序703。处理器701执行计算机程序703时实现上述各个方法实施例中的步骤。或者,处理器701执行计算机程序703时实现上述各装置实施例中各模块/单元的功能。
电子服务器7可以是桌上型计算机、笔记本、掌上电脑及云端服务器等电子服务器。电子服务器7可以包括但不仅限于处理器701和存储器702。本领域技术人员可以理解,图7仅仅是电子服务器7的示例,并不构成对电子服务器7的限定,可以包括比图示更多或更少的部件,或者不同的部件。
存储器702可以是电子服务器7的内部存储单元,例如,电子服务器7的硬盘或内存。存储器702也可以是电子服务器7的外部存储服务器,例如,电子服务器7上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。存储器702还可以既包括电子服务器7的内部存储单元也包括外部存储服务器。存储器702用于存储计算机程序以及电子服务器所需的其它程序和数据。
处理器701可以是中央处理单元(Central Processing Unit,CPU),也可以是其它通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其它可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器701从非易失性存储器中读取对应的计算机程序到内存中然后运行,在逻辑层面上形成共享资源访问控制装置。处理器,执行存储器所存放的程序,并具体用于执行以下操作:
在Docker容器中部署运行像素流程序,包括:
获得用户的像素流计算资源调用请求;其中所述像素流计算资源调用请求包括负载均衡方式;
当所述负载均衡方式为默认方式时,依据用户权重规则和服务器权重规则,为多个用户和多个服务器分别配置相应权重;
依据用户权重和服务器权重的配置关系,选择目标服务器提供像素流计算资源。
上述如本说明书图1至图5所示实施例揭示的面向像素流程序并发渲染的负载均衡方法可以应用于处理器701中,或者由处理器701实现。处理器701可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以实现或者执行本说明书实施例中公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本说明书实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
当然,除了软件实现方式之外,本说明书实施例的电子服务器并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,计算机程序可以存储在计算机可读存储介质中,该计算机程序在被处理器执行时,可以实现上述各个方法实施例的步骤。计算机程序可以包括计算机程序代码,计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。计算机可读介质可以包括:能够携带计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、电载波信号、电信信号以及软件分发介质等。需要说明的是,计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如,在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
实施例四:
本说明书实施例还提出了一种计算机可读存储介质,该计算机可读存储介质存储一个或多个程序,该一个或多个程序包括指令,该指令当被包括多个应用程序的便携式电子服务器执行时,能够使该便携式电子服务器执行图1至图5所示实施例的面向像素流程序并发渲染的负载均衡方法,并具体用于执行以下方法:
在Docker容器中部署运行像素流程序,包括:
获得用户的像素流计算资源调用请求;其中所述像素流计算资源调用请求包括负载均衡方式;
当所述负载均衡方式为默认方式时,依据用户权重规则和服务器权重规则,为多个用户和多个服务器分别配置相应权重;
依据用户权重和服务器权重的配置关系,选择目标服务器提供像素流计算资源。
总之,以上该仅为本说明书的较佳实施例而已,并非用于限定本说明书的保护范围。凡在本说明书的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本说明书的保护范围之内。
应该指出,上述详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语均具有与本申请所属技术领域的普通技术人员的通常理解所相同的含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式。此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,以便这里描述的本申请的实施方式能够以除了在这里图示或描述的那些以外的顺序实施。
此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含。例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或服务器固有的其它步骤或单元。
为了便于描述,在这里可以使用空间相对术语,如“在……之上”、“在……上方”、“在……上表面”、“上面的”等,用来描述如在图中所示的一个器件或特征与其他器件或特征的空间位置关系。应当理解的是,空间相对术语旨在包含除了器件在图中所描述的方位之外的在使用或操作中的不同方位。例如,如果附图中的器件被倒置,则描述为“在其他器件或构造上方”或“在其他器件或构造之上”的器件之后将被定位为“在其他器件或构造下方”或“在其他器件或构造之下”。因而,示例性术语“在……上方”可以包括“在……上方”和“在……下方”两种方位。该器件也可以其他不同方式定位,如旋转90度或处于其他方位,并且对这里所使用的空间相对描述作出相应解释。
在上面详细的说明中,参考了附图,附图形成本文的一部分。在附图中,类似的符号典型地确定类似的部件,除非上下文以其他方式指明。在详细的说明书、附图及权利要求书中所描述的图示说明的实施方案不意味是限制性的。在不脱离本文所呈现的主题的精神或范围下,其他实施方案可以被使用,并且可以作其他改变。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请保护范围之内。

Claims (10)

1.一种面向像素流程序并发渲染的负载均衡方法,其特征在于,在Docker容器中部署运行像素流程序;所述方法包括:
获得用户的像素流计算资源调用请求;其中所述像素流计算资源调用请求包括负载均衡方式;
当所述负载均衡方式为默认方式时,依据用户权重规则和服务器权重规则,为多个用户和多个服务器分别配置相应权重;
依据用户权重和服务器权重的配置关系,选择目标服务器提供像素流计算资源。
2.根据权利要求1所述的面向像素流程序并发渲染的负载均衡方法,其特征在于,依据用户权重规则,为多个用户配置相应权重,包括:
获取用户到服务器的时间延迟;
依据时间延迟从低到高顺序,对应确定多个用户配置的权重值。
3.根据权利要求2所述的面向像素流程序并发渲染的负载均衡方法,其特征在于,依据服务器权重规则,为多个服务器配置相应权重,包括:
获取服务器的相关配置参数;其中所述相关配置参数至少包括GPU、CPU、物理内存和网络传输参数;
依据相关配置参数,按照预设规则计算获得对应多个服务器的权重值,以及获得多个服务器进行负载计算的可承载容量。
4.根据权利要求3所述的面向像素流程序并发渲染的负载均衡方法,其特征在于,依据相关配置参数,按照预设规则计算获得对应多个服务器的权重值,包括对相关配置参数进行归一化后相加排序,获得对应多个服务器的权重值。
5.根据权利要求1至4任一项所述的面向像素流程序并发渲染的负载均衡方法,其特征在于,依据用户权重和服务器权重的配置关系,选择目标服务器提供像素流计算资源,包括:
依据用户权重,确定对应的服务器容量;
依据服务器容量占全部可承载容量的比例,确定不同的服务器资源配置;
依据不同的服务器资源配置,选择目标服务器提供像素流计算资源。
6.根据权利要求5所述的面向像素流程序并发渲染的负载均衡方法,其特征在于,所述服务器资源配置至少包括像素流帧率、起始码率、最大码率、最小码率、最小量化步长和像素流编码方式。
7.根据权利要求1所述的面向像素流程序并发渲染的负载均衡方法,其特征在于,所述负载均衡方式还包括轮询方式、预设权重方式和/或单计算节点方式。
8.根据权利要求7所述的面向像素流程序并发渲染的负载均衡方法,其特征在于,依据所选定的负载均衡方式,确定相应的负载均衡回退机制;包括:
若用户选定默认方式、轮询方式、预设权重方式、单计算节点方式中的任一负载均衡方式,当选择目标服务器失败时,直接反馈相应错误信息;
若用户未选定任一负载均衡方式,当选择目标服务器失败时,依据预设回退顺序切换负载均衡方式,直至选择目标服务器成功;否则,在切换运行全部负载均衡方式均失败后,反馈相应错误信息。
9.一种电子服务器,包括存储器、处理器以及存储在所述存储器中并且可在所述处理器上运行的计算机程序,其特征在于,所述处理器在执行所述计算机程序时,实现如权利要求1至8中任一项所述的面向像素流程序并发渲染的负载均衡方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至8中任一项所述的面向像素流程序并发渲染的负载均衡方法的步骤。
CN202410031996.6A 2024-01-10 2024-01-10 一种面向像素流程序并发渲染的负载均衡方法 Pending CN117539594A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410031996.6A CN117539594A (zh) 2024-01-10 2024-01-10 一种面向像素流程序并发渲染的负载均衡方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410031996.6A CN117539594A (zh) 2024-01-10 2024-01-10 一种面向像素流程序并发渲染的负载均衡方法

Publications (1)

Publication Number Publication Date
CN117539594A true CN117539594A (zh) 2024-02-09

Family

ID=89794314

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410031996.6A Pending CN117539594A (zh) 2024-01-10 2024-01-10 一种面向像素流程序并发渲染的负载均衡方法

Country Status (1)

Country Link
CN (1) CN117539594A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110224860A (zh) * 2019-05-17 2019-09-10 平安科技(深圳)有限公司 负载均衡应用创建方法、装置、计算机设备及存储介质
CN113807539A (zh) * 2021-09-06 2021-12-17 北狐数字科技(上海)有限公司 机器学习与图形算力的高复用方法、系统、介质及终端
CN114020474A (zh) * 2021-11-25 2022-02-08 元能星泰(广州)数字科技有限公司 一种能源工业元宇宙数字孪生云渲染动态分配方法及系统
US20230267015A1 (en) * 2020-06-23 2023-08-24 Zte Corporation Resource scheduling method and apparatus, electronic device and computer readable storage medium
CN116962419A (zh) * 2023-07-31 2023-10-27 中国工商银行股份有限公司 服务器分配策略的生成方法及装置、电子设备及存储介质

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110224860A (zh) * 2019-05-17 2019-09-10 平安科技(深圳)有限公司 负载均衡应用创建方法、装置、计算机设备及存储介质
US20230267015A1 (en) * 2020-06-23 2023-08-24 Zte Corporation Resource scheduling method and apparatus, electronic device and computer readable storage medium
CN113807539A (zh) * 2021-09-06 2021-12-17 北狐数字科技(上海)有限公司 机器学习与图形算力的高复用方法、系统、介质及终端
CN114020474A (zh) * 2021-11-25 2022-02-08 元能星泰(广州)数字科技有限公司 一种能源工业元宇宙数字孪生云渲染动态分配方法及系统
CN116962419A (zh) * 2023-07-31 2023-10-27 中国工商银行股份有限公司 服务器分配策略的生成方法及装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN107231815B (zh) 用于图形渲染的系统和方法
CN103888485B (zh) 云计算资源的分配方法、装置及系统
CN110235104B (zh) 用于虚拟化的图形处理单元分区
US8803876B2 (en) Hardware accelerated graphics for network enabled applications
US9998532B2 (en) Computer-based, balanced provisioning and optimization of data transfer resources for products and services
US10057187B1 (en) Dynamic resource creation to connect client resources in a distributed system
CN111966504B (zh) 图形处理器中的任务处理方法及相关设备
CN102378976B (zh) 使用多个处理器的图像压缩加速
CN114025238B (zh) 基于Linux服务器原生安卓应用云端虚拟化方法
US9613390B2 (en) Host context techniques for server based graphics processing
US10979531B2 (en) Pessimistic scheduling for topology optimized workload placement
CN112882826B (zh) 一种资源协同调度方法以及装置
US11249760B2 (en) Parameter management between programs
US12003739B2 (en) Cross component intra prediction mode
CN117539594A (zh) 一种面向像素流程序并发渲染的负载均衡方法
CN114726657A (zh) 中断管理和数据收发管理的方法、装置及智能网卡
CN112749111A (zh) 访问数据的方法、计算设备和计算机系统
CN117176964B (zh) 一种虚拟化视频编解码系统及方法、电子设备和存储介质
Repplinger et al. Stream processing on GPUs using distributed multimedia middleware
CN117176963B (zh) 一种虚拟化视频编解码系统及方法、电子设备和存储介质
US12003725B2 (en) Signaling method for chroma intra prediction mode
US20240184606A1 (en) Host/dpu service provisioning system
US20240111562A1 (en) User assigned network interface queues
CN115869616A (zh) 一种游戏服务器分配方法、系统及存储介质
CN110209464A (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