如何针对游戏优化虚拟机

Pan*_*ard 2 virtualbox virtualization graphics-card virtual-machine gaming

我和我的朋友喜欢玩一款名为“Red Dead Redemption 2”的游戏,但遗憾的是他的电脑很弱,这就是为什么他不想再玩了。昨天我们想出了一个解决方案。我的电脑相当高端,我想,我可以通过使用 VM 软件和远程桌面共享软件(如 Teamviewer 或 Chrome 远程桌面)将我的电脑“拆分”为 2 部分。一路上我遇到了很多问题。

首先我使用 Virtualbox,但那里有 VRAM 限制,上限为 256 MB VRAM,这对于 Red Dead Redemption 2 来说是不够的。后来我考虑使用 Vmware,但遗憾的是没有发现有关 VRAM 的具体信息。顺便我还发现有一个非常好的远程桌面软件叫Parsec,据说很好用,但是我安装到Virtual Box上后却说需要更强大的显卡,因为Virtualbox只注册了集成显卡进入虚拟机。

所以我的目标是搜索一个既能为虚拟机提供 VRAM 又提供优质显卡的虚拟机软件(我指的是虚拟机中显示的假显卡)。

经过一番研究,我发现了 Windows Hyper-V 和这个 YouTube 教程:https://www.youtube.com/watch? v=aZtuiLYnb_g,视频中的人发布了 2 个脚本的链接,这些脚本在 PowerShell 中执行时会自动为您的虚拟机提供帮助一个好的显卡。我自然而然地认为 Hyper-V 没有 VRAM,但我不确定,所以这是我的第一个问题。

后来我在设置 Hyper-V 时遇到了问题,因为网络连接不起作用,而且我的主机 PC 没有连接到互联网或我的虚拟机。我还在 Hyper-V 上尝试了与私有、内部、外部网络的各种组合。这是我的第二个问题。最后我放弃了,来到了这里。

总而言之,我只想为我的朋友在虚拟机上获得平衡的性能和高质量的游戏体验。这个想法是,我基本上下载游戏两次,然后他登录到他的帐户并通过远程桌面共享从那里玩。

以下是我的电脑规格:CPU:AMD Ryzen 7 5800X,GPU:AMD Radeon RX 6800 16GB VRAM,RAM:32GB,存储:目前约为 200GB,有关解决我的问题所需的任何信息,请在论坛中回复或给我发消息不和谐:索尔·古德曼#5628

小智 7

好吧,在完全阅读您的问题之前,我已经完成了您在那里列出的一些步骤,呵呵。延迟在我心里呼喊。

是的,hyper-v 将允许虚拟机访问显卡。

我在这里看到的问题首先是延迟。您的机器通过本地网络跟上帧传输可能会出现问题,但您是说通过互联网?

其次,您可以将虚拟网卡添加到您的计算机,但 IP 必须对您的 LAN 可见。

要连接到此 IP,您必须创建从互联网到该 IP 的路由,因此您必须将 RDP 端口进行端口转发到您必须静态分配的虚拟机的 IP 地址。

在您认识到您的连接和机器必须跟上玩游戏所需的帧速率这一事实之前,虚拟机、显卡和 CPU 使用之间发生了很多事情。

您可以先在本地尝试一下,看看是否可以完成。

这在理论上似乎是可能的,这就是虚拟机被设计为共享计算资源的原因之一,而不是在没有必要的情况下将整个计算机专用于服务器场中。

但在互联网上闲逛时,我的第一个想法似乎得到了认同:将会出现大量的帧延迟,并且 rdp 将无法足够快地刷新以跟上它。

这样考虑吧。

标准显示:1280x763。那是 976640 像素。每个光栅化帧三通道颜色。即每帧 2929920 字节。60 fps,每秒 175795200 字节。即每秒 167 mb。现在,rdp 服务器当然会尝试压缩它,因为这是原始信息。这将需要每秒 60 次压缩操作 = 延迟。

流形式的视频传输是与关键帧相加的,不同的故事,但这就是人们在线观看电影的方式,并且使用经过预处理的视频文件。流媒体也做了类似的事情。

关键是,RDP 不是您想要使用的工具。

有多种方法可以在远程计算机上渲染 opengl 并在本地显示它们,opengl 最初是为了包含此功能而构建的,但对于您特定的相当小众的要求,我认为这不会有帮助。

简而言之,因为用例是有限的,并且不太可能是这一代技术用户需要的东西(在过去,有人可能想到了这个确切的场景,然后放弃了它),可能没有可用的端到端产品它。

您可以假设您的机器足够强大来处理所有这些,但 RDP 主要用于技术问题和/或开发人员从家里访问他们的工作机器,例如,它并不意味着高帧速率的低延迟图形传输。

您可能会实施一些其他类型的屏幕共享软件来跟上这一切。

为了进行比较,您可以在虚拟机上播放视频,然后在连接的客户端上查看屏幕是否断断续续,以进行说明。