PeerStream企业版设计思路

前言

peerstream.js项目是我们团队开发的虚幻引擎像素流库,和官方臃肿不堪的像素流SDK相比,我们在官方的基础上做了大量的优化和精简,并加入了许多新功能,开发出了轻量、零依赖、开箱即用的软件套装,前端的peer-stream.js基于WebComponentsAPI,后端signal.js基于NodeJS和npm/ws。
目前对于单个UE项目来说,已经可以很好的完成其使命,但是对于多机器、多显卡、多个UE项目的管理来说,还是显得有些力不从心。针对这些问题,我们设计了一个全新的企业版。

设计思路

企业版取名为PeerStreamMulty,意思是可以管理多个UE实例。我们会保持和PeerStream项目采用一致的peerstream.js库,这样可以做到无缝切换。
PeerStreamMulty主要核心能力主要是多机器多显卡负载均衡,多个UE实例负载均衡。后期我们还会增加对UE进程的监控能力,从而提供更加稳定的像素流服务。

负载均衡

负载均衡是整个设计的最核心的地方,我们需要实现不同机器,不同显卡实例的负载均衡。这里引入显卡缓存的概念,我们整个负载均衡理论基于显卡的内存来进行。

比如4090显卡内存24G,4080显卡内存16G,那么我们就配置好,还可以配置多个显卡。示例如下

"gpu": [
    {
   "gpucard": 0,
   "gpumemory": 24
    },
    {
   "gpucard": 1,
   "gpumemory": 24
    }
  ]

UE实例我们也引入同样的概念,预先配置每个UE实例的显存大小,相关示例如下

{
  "name": "test",
  "path": "C:\\Users\\deans\\Desktop\\ueproject\\UE51\\Windows\\ue51.exe",
  "urlprefix": "hedongzai",
  "gpumemory": 9,
  "param": ""
   }

这样我们就可以计算出每个显卡剩余可用的显存大小,从而可以选择出最优的显卡进行运行。
此外,我们还引入了时间的概念,为了保证每个显卡都可以被使用,我们设计了一个显卡上次开启实例的时间,选择时间最小的那个作为下一个被使用的显卡。

gpu缓存锁定

有时候刚启动UE实例,但是还无法和signal建立连接,这个时候计算剩余缓存的时候,并不会进行计算。这里我们引入了一个缓存锁定的思路,即当执行启动UE实例的时候,我们就锁定这个GPU显卡的缓存,当UE与signal建立连接之后,我们再将锁定移除,有时候启动进程会失败,我们给出一个超过时间,超过这个时间也进行移除。

跨机器设计

我们将启动UE进程,统一放到execue.js中,这样就可以轻松实现分布式部署,天生支持跨机器负载。启动和逻辑分离的方法,还可以提供程序的健壮性,另外我们在execue中还可以增加监控进程的能力,更好的提高健壮性。

开发语音

相比peerstream,我们决定采用typescript进行开发,整个设计都是面向对象的,更好的提高了开发效率。

与peerstream对比

这是我们计划的功能开发,后续还可以根据各位朋友的需求近一步进行完善。5a42ab73701a63ec3fd587a4bf12ac65.png

关于企业版授权

企业版主要为源码授权的方式,目前还在开发中,目前有5个VIP的名额,可以参与到我们的项目中来,永久免费授权,并提供技术支持。后续只有按照年的授权方式。
价格如下:
5个VIP  10000元   永久授权和技术支持
后续价格:
99999元/年  1年的技术支持
欢迎各位老板联系。

Inveta团队

Inveta团队由研发、美术设计、建模等组成。团队介绍:
https://www.inveta.cn/about.html
团队开源项目:
https://github.com/inveta
团队推出了UE像素流的技术支持服务,帮助大家更好的管理UE的像素流。

合作支持

62ced3f3b1eebe2945d65e7070b00fe2.png
01-12 111
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值