dav*_*e44 5 networking memory swap cluster
我知道之前有一个类似的问题:如何共享 CPU 或 RAM?
但是,让我再详细说明一下……
当 Microsoft Windows 需要的 RAM 容量超过可用容量时,它使用交换文件将数据临时存储在那里,这实际上类似于基于硬盘的 RAM。该技术已使用多年。
从理论上讲,使用网络中不同计算机的 RAM 来临时存储数据的类似技术应该不会太难实现。这只需要一个在网络中的计算机上运行的软件,该软件从/向主计算机接收和返回数据,并将该数据保存在 RAM 中;加上主计算机的操作系统必须能够使用网络中的计算机来代替(或除了)交换文件。
我想知道,这个想法有任何实现吗?这将允许用户使用他们所有的家庭或办公室计算机构建 RAM 集群,这将提高单个计算机的性能,用于某些开发/游戏/视频任务等。
实际上,即使可能,它也仅在极少数情况下有效(当然不是游戏!)。
第一步是导出原始设备协议,因为 Windows 采用直接访问来实现更快的交换操作。目前这不能完成,因为没有适用于 Windows 的原始设备协议(Linux 和一些 Unices 上有,也许 iSCSI 可以)。
然后,您需要将客户端计算机上的设备作为物理设备导入。这也可以完成,但出于安全原因,大多数实现将网络设备视为可移动设备。不过,可以通过调整 ReadyBoost 技术来做到这一点。
但现在的问题是,网络设备比物理磁盘设备慢几个数量级(比内存慢几个数量级),因此您将无法在不使系统陷入停顿的情况下交换太多.
仅当您的快速 RAM 要求较低并且您的大容量存储要求巨大并且可以容忍非常低的速度时,您才可以使用它。只有当您在多台计算机上使用它时才值得。这意味着你已经建立了一个计算集群……这意味着你有分布式计算的问题(它有自己的一套工具,通常通过将整个进程及其所有内存卸载到其他节点来解决)。
在日常使用中,如果更大的磁盘交换文件因为太慢而无法帮助您并且颠簸会影响您的性能,那么更慢的网络驱动器如何解决任何问题?
这将允许用户使用他们所有的家庭或办公室计算机构建 RAM 集群,这将提高单个计算机的性能,用于某些开发/游戏/视频任务等。
对于视频处理,可以将任务并行卸载到客户端计算机,每个客户端计算机都在一个视频帧块或不同的通道上运行。对此有积极的研究。诀窍是所有客户端都可以快速访问大容量存储(也可以是分布式的:还有网络分布式文件系统,其中文件可能驻留在多个物理服务器上),每个客户端都在处理受 CPU 限制的任务。
对于开发,有一些工具,例如dmake,允许将项目构建(以及静态分析、测试和文档...)分区到不同的主机。这也可以通过连续的 make 系统和自动构建自动完成,结果可能比从单个命令主机按需执行所有操作要好得多。
| 归档时间: |
|
| 查看次数: |
16790 次 |
| 最近记录: |