通过网络共享硬件资源:特别是RAM


8

我有两个系统。一个是笔记本电脑,具有2 GB RAM,另一个是台式机,具有8 GB RAM。是否可以共享这些资源,以便两个系统都具有10 GB RAM?

我要在两个系统上运行的软件是Android Studio ...目前笔记本电脑的处理效果不太好。

附加信息:两个系统都运行Windows 8,并具有Intel Core i3处理器。

谢谢ppl,但我还有另一个问题..如何通过以太网电缆共享它?就像通过交换机或v-lan一样,therby根本不使用互联网,但获得了下降的传输速率?


2
不可以,ram不可转让。
Ctrl-alt-dlt

15
当然可以。但是共享RAM只会和您的网络速度一样快。换句话说,这是可能的(从理论上讲还是可以),但是不切实际。
Ajedi32

4
要求您切换操作系统是不合理的,但是您确实知道Linux具有虚拟内存压缩功能,这意味着通过使用LZO压缩某些内存段,您可以比实际使用更多的RAM。
Naftuli Kay 2015年

5
如果您使用的是Linux,则可以使用ramdisk,网络块设备和交换文件来安装某些东西。我不认为Windows具有这种功能。
2015年

4
您问错了问题。您应该问的问题是,如何利用功能更强大的机器执行构建?一个可能的答案是Gradle SSH插件
迈克尔·汉普顿

Answers:


21

只有某些程序允许通过网络拆分进程(某些3D渲染程序,有效共享RAM)(请参阅朱利安·奈特的答案)

互联网的问题是太慢了(请参阅Spiff的答案)

我认为您台式机的RAM与硬件不兼容,因此仅将RAM条放到笔记本电脑中是行不通的。

你可以做什么:

在笔记本电脑上安装远程桌面客户端,然后连接到桌面。这样,您可以通过隧道“在桌面上工作”。

因此,繁重的程序(Android Studio)将在您的桌面上运行!而且笔记本电脑只会受到远程桌面客户端的困扰。

这样可以有效地使用PC硬件,从而可以更好地工作(如果您的笔记本电脑和远程桌面客户端足够且容易使用)。

我想补充一点,这不是“共享” RAM,而只是使用PC的RAM,这足够了。


1
我认为有些程序可以让您将窗口从一个操作系统拖到另一个操作系统,但是如果处理仍在本地或其他任何方式进行,我不确定名称。
伊斯梅尔·米格尔

1
并行,但这就是虚拟化。
亚瑟·凯

1
@Alvin除非您为此专门设置了网络,否则远程桌面应用程序将无法通过Internet。如果使用网络上的IP连接到桌面,则该连接将仅存在于网络上。
Logarr 2015年

9

可能不是,因为与将虚拟内存分页到本地驱动器相比,这将非常慢。SATA-3每秒6吉比特,我有一个使用了两年的4TB 7200 RPM SATA-3硬盘,具有157兆字节/秒(〜1.3吉比特/秒)的持续读写速度。千兆以太网上的持续传输速率最高约为0.942吉比特/秒。


4
请注意,对于某些工作负载,随机访问延迟比带宽更重要(我怀疑您的磁盘带宽数字是针对大型访问而不是随机的4KiB块)。即使存在网络开销,将4KiB从一个系统直接传输到另一个系统也可能比平均磁盘访问(查找,建立和循环延迟)更快。在SSD变得流行之前,有研究使用其他系统的RAM来交换空间。FuaZe将工作转移到更大的系统的答案似乎更实际。
Paul A. Clayton

3
是的,但是您的驱动器的随机访问速度比千兆以太网低很多。为此,您需要固态。
亚瑟·凯

@Spiff感谢ppl,但我还有另一个问题..如何通过以太网电缆共享它?就像通过交换机或v-lan一样,therby根本不使用互联网,但获得了下降的传输速率?
Alvin

@ArthurKay:或用于负载平衡虚拟化群集的专业级30Krpm驱动器。
user2284570 2015年

@Alvin正是这个答案在说什么。“ ...通过千兆以太网的传输速率...”
BenjiWiebe,2015年

1

不,这是不可能的。

唯一的例外是使用的工具能够在多台计算机之间拆分处理,例如3d图形渲染。但是,这并不是您真正要的。


你知道地狱吗?由于他使用的是x86,因此可以通过网络访问DMA。
user2284570

OP指定使用Windows 8,因此恐怕对他没有帮助。
朱利安·奈特

这仅仅是为了表明与您所说的相反,这是可能的。对于OS,系统显示为非共享内存SMP系统。
user2284570

1

大约七年前,内存控制器已从单独的芯片(北桥或内存控制器中枢)移至CPU。你知道为什么吗?为了减少延迟,因为CPU需要非常非常高的速度访问RAM。当前的CPU以68 GB / s的速度访问RAM :http : //ark.intel.com/products/82930/Intel-Core-i7-5960X-Processor-Extreme-Edition-20M-Cache-up-to-3_50-GHz。现代的1 Gbit / s以太网每秒可为您提供约120 MB的速度,因此速度要慢560倍。因此,这不是您在常规PC上可以做的事情。

存在基于群集计算的解决方案,其中许多计算机连接到网络,每台计算机都将部分数据存储在其RAM中。它比常规RAM慢得多,但是如果您需要10 TB的数据可用,则别无选择。但是此类解决方案应由软件支持。而且Android Studio不支持它。

因此,不幸的是,答案是否定的。


1
对于使用虚拟化容错群集,我可以说通过cat5E以太网将RAM共享到速度更慢的驱动器上,可以很好地与现代OS和程序配合使用。
user2284570 2015年

1

目前尚不可能,但这实际上是以某种形式在卡上列出的,并在“ ReadyBoost”系统的一部分上用铅笔标记为“ After Vista ”,该系统允许您使用USB记忆棒作为读取页面文件的媒介(和其他文件)比使用磁盘更快。它不是这样的额外RAM,但是如果您使用大量RAM,则可以减少计算机花在磁盘上和从磁盘上分页的时间。

在您的情况下,您可能会受益于专用于ReadyBoost的32 GB USB记忆棒。


这似乎无法回答OP的问题。虽然最初可能是ReadyBoost计划允许在网络上共享RAM,但目前并非如此。
ChrisInEdmonton

@ChrisInEdmonton好的,我已经编辑了答案,以明确指出这是不可能的,但计划是在某一时刻进行的,而不是仅仅说明已计划了。
马修·斯蒂夫斯

2
而且ReadyBoost的速度太慢,无法使用。使用ReadyBOOST时,计算机实际上会变慢。一点都没有提升。
托尼2015年

1
@Tonny认为这是“您的里程可能会有所不同”的情况之一。我个人发现它加快了速度较慢的计算机的速度,对速度较快的计算机没有太大的影响。从未经历过它会降低计算机的速度。显然,没有什么可以替代大量的RAM和SSD磁盘,但是如果您不能/不会这样做并且没有拥挤的USB总线会闲置,那么这可能会有所帮助
Matthew Steeples

0

这是不可能的,至少在没有Google的巨大努力的情况下。

基本上,Android Studio必须支持多节点分布式处理,就像BitCoin挖掘和Folding @ Home一样。

在笔记本电脑上按compile后,它将向您的台式机发送大量代码进行处理。桌面处理完成后,它将把它发送回您的笔记本电脑,以便可以将所有东西修补在一起。


我怀疑编译是在Android Studio中消耗内存的原因。
阿特斯比,2015年

-1

我有办公室 一个带私人助理的房间和一个可存储5000本书的柜子,以及一个可容纳20本书的办公桌。将此配置图片为

  • 办公室=电脑
  • 我=处理器(CPU)
  • 助手=操作系统(OS)
  • 桌子= RAM
  • 机柜=硬盘

我的助手最多只能将20本书从柜子中取出,放在我的办公桌上工作。由于我秘书的工作,他可能将自己的一本书或两本书放在我的桌子上(假设我们很穷,买不起另一张桌子)。

如果我想处理其他书籍,则没有更多空间了,我的助手必须确定当前我最不可能使用的桌上哪本当前书籍,并将该书籍放回橱柜中,以便为我想要的其他书籍让路。每当我不想在自己触手可及的地方工作时,助手都必须在书桌和橱柜上来回走动。

对于RAM不足的系统,操作系统将对似乎不太活跃的进程执行此操作-拿走它们的内存内容并将它们写入虚拟内存存储中的磁盘,从而为需要它的其他进程释放RAM。就像桌子和机柜之间有距离,处理器,RAM和磁盘之间也有“距离”。就像您使用笔记本电脑时所经历的那样,磁盘的移动速度实在令人难以置信。

在隔壁的办公室里,我的同事有一张桌子,足够容纳80本书。如果他可以“分享”他的一些桌子来存放我的书,那不是很好吗?这样我实际上可以拥有100本书?

好吧,首先,每个办公室的助手都不可避免地需要放置一些自己的书,以便他们可以执行自己的工作(不可转让)。系统中的所有操作系统都需要使用一些RAM来完成其工作,否则您将没有操作系统。因此,我并没有真正获得全部20本书的分配,也没有真正给同事提供80本书的完整分配。我的同事有自己的工作要做,这会进一步耗尽可用空间。

此外,助理没有接受过在办公室之间移动书籍的培训(要以其能力水平为限)。现有的Windows体系结构无法直接使用另一台远程计算机的RAM。

现在,想象一下,如果确实对助手进行了培训,可以在办公室之间正确移动书籍并清楚地记住书籍的所有权,那么在办公室之间走动很可能会变得更慢,因为从一个办公室走到另一个办公室的距离更大。不仅如此,当助手从另一间办公室取书时,他还必须通过将不需要的书重新放回柜子来清理自己桌上的空间。为什么要让他走那么多?

至少对于您的用例而言,无法退出网络上的一台计算机以通过网络将内容存储/检索到另一台计算机中,因为应用程序或OS都不知道如何完成该操作。而且也不是很有效。

如果您想继续使用笔记本电脑,请安装更多的RAM(台式机),或安装固态磁盘(具有可更快查找书籍的组织功能的柜子)。

请注意,在某些配置中,实际上可以更快地从远程计算机存储和检索数据-群集软件技术可以做到这一点-然后访问速度较慢的旋转磁盘,但仍然不能满足您的方案。

考虑硬件资源之间数据访问的时间尺度


7
我认为您是从字面上解释这个问题。显然,每台计算机不可能有10GB,但从原则上讲,它们有可能共享10GB,因此,例如,每台计算机可以使用5GB,而不是将笔记本电脑限制为2GB。性能会很糟糕,但原则上是可能的。
David Richerby

@DavidRicherby-问题应该从字面上看。文字是一件很了不起的事情,它唯一的含义就是您所说的。因此,作者实际上是在询问他们是否可以组合两个独立计算机的系统内存来提高性能,这当然是不可能的。
拉姆猎犬,2015年

6
@Ramhound您似乎误解了这个答案。这个回答说,这是不可能的了2GB系统和8GB的系统,以获得两个系统结合各自具有10GB(因为这将是一个总的20GB,它不存在)。从字面上解释,这就是问题的所在。您正在谈论将2GB + 8GB组合在一起以使两个系统共享10GB,这就是这个问题要问的问题。因此,您宁可打断自己的脚步,声称应该从字面上阅读问题:字面上的问题是无稽之谈;预期的问题至少是有道理的。
David Richerby,2015年

@DavidRicherby-如果您这么说。我发现答案很有帮助。由于正确指出,您无法将两个独立的计算机系统中的系统内存组合起来,就像无法组合来自两个独立的汽车中的两个气罐一样。当然,我不确定他是否提出了220,这确实没有道理。
拉姆猎犬,2015年

这个问题和答案是GIGO的完美范例:)
拉特纳2015年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.