我的同事正在使用一个占用大量内存的应用程序,导致系统运行缓慢。是否可以通过互联网与其他电脑共享内存?
系统有 8 GB 的 RAM,而该应用程序占用了 6 GB 以上。
答案1
我只考虑过在“标准”机器上运行的独立应用程序,无法简单地将其安装在其他地方或使用专业硬件或软件。其他答案(正确地)解决了软件迁移或用于该任务的专用硬件。
通过网络“共享 RAM”的任何方式都将受到该网络介质的限制。由于即使千兆以太网也限制在大约 100MB/s(兆字节),这意味着您的“RAM”速度也会受到限制。
100MB/s 只是系统中实际 RAM 速度的一小部分。你的程序会非常慢,感觉就像在 90 年代早期的计算机上运行一样
现代硬盘的顺序读写速度比这稍快一些。SSD 的速度则要快几倍。
这忽略了延迟问题,这将使你的程序再次慢一个数量级。
由于速度慢和其他技术问题,这个问题可能没有人认为值得为“家庭”或“办公室”系统尝试解决。如果需要,购买更多 RAM 更便宜、更有效。
只需购买更多 RAM,甚至购买用于页面文件的 SSD。没有其他方法可以做到这一点,而且不需要大量的工作或硬件,而收益却很小。
答案2
只是为了完整性:无限带宽允许直接访问其他机器的内存。
然而,它需要:
- InfiniBand 交换机
- 每台机器上都有一张 InfiniBand 附加卡
- 应用程序必须经过专门编程才能使用此功能
它无法在现有网络上工作,它需要为所有连接节点提供完全独立的基础设施。它也无法在互联网上工作
答案3
Is there any alternative solution?
这在很大程度上取决于数据的性质。
您可以在两台不同的机器上运行两个不同的 mysql 服务器。
然后将数据分成1/2,并编写程序自动知道要去哪个服务器。
当然,如果您有可用的服务器,则可以将其扩展到任意数量的服务器。
答案4
考虑到那些不重要的小细节“Windows 10,工作站有 8G B RAM”,实际上只有一个明智的答案:购买更多的 RAM,少运行一些垃圾程序。
购买 SSD 并将页面文件放在那里将是下一个最佳选择,但实际上……购买更多 RAM。
当然,通过网络提供页面文件(“共享内存”)是可能的,但这是一个非常糟糕的主意。虽然确实存在通过网络访问时间比访问本地驱动器更好的临界情况,但这与您的使用情况无关,因为您需要持续的低访问时间和同时使用高带宽。请记住,您不会预料到一两次页面错误,而是会不断进行交换。除非您愿意支付几千美元,否则您根本无法购买 RAM 或 SSD。
8 GB 不足以运行 Windows 10和一个占用大量内存的应用程序。它仅够同时运行 Word、Excel 和 Outlook。这正是典型的完全无法使用“完全是胡扯的公司设置”数百万人每天都要在工作笔记本电脑上使用这种内存。投资 100-200 元购买另一个内存模块,一周内就能收回成本(以前需要几分钟才能完成的事情现在只需要几秒钟,时间就是金钱——不幸的是,这通常很难进入当地会计师的头脑)。
或者,如果你拥有这台机器,你可以使用 NTLite 来减少 Windows 10 垃圾,减少其内存占用。或者,你可以关闭 80% 的大多数不必要的服务。这似乎令人难以置信,但它有可能运行最新版本的 Windows,所用 RAM 不足 2 GB。
但实际上,只需购买 RAM...这比花费数小时宝贵的时间来减少 Windows 垃圾要快得多,也容易得多。