试图find运行10个同步32位dos应用程序的“最佳”方法。
长话短说:我有一个老的2003年32位Dos应用程序(公司不再在业务),这是我的工作stream程至关重要。 它处理文本文件,CPU密集度很高。 我加速处理大文本文件,将它们分成10个部分,并将它们全部在不同的计算机上同时运行,最后连接结果。 这在大文件上节省了难以置信的时间。 我试图找出升级这个过程的最好方法。
现在我有10个运行Windows 10的虚拟机(只是从XP升级)工作正常 – 许可证不太昂贵。 我只是想知道是否有更便宜/更好的方法? 这似乎很疯狂,我必须有10个桌面操作系统许可和最新的。
我看着NANO服务器,但它不运行任何32位应用程序。 在我需要的时候,也许我可以在Azure中启动10个虚拟机? 我想我只有这10个虚拟机最多1小时CPU进程/天。 只是寻找想法。 这些虚拟机的唯一要求是在需要时运行32位进程,运行我编写的服务来协调一切,并在域上并有权访问域的文件共享。 谢谢。
具有一个操作系统实例和多个DOS进程的单个快速机器或虚拟机在许多方面可能优于10个虚拟机。
我build议你考虑在一个系统或虚拟机上运行一个操作系统实例。 如果你能够获得足够的vCPU /核心/任何虚拟机或者你需要的等效能力,你就可以得到你正在谈论的性能,而不需要运行所有这些虚拟机。 Windows可以同时执行多任务并运行多个DOS应用程序,将负载分散到多个内核中。 不是问题。
考虑你有什么真正的硬件可用
你只能运行这个DOS的东西有时候是对的? 然后停止? 我不知道你有什么样的电脑,但是现在8-16 +核心系统并不罕见。 我有一个8核心服务器在家里! 类似的东西可以pipe理,而不是一个或许多Azure虚拟机。 我不确定你希望有什么样的performance。 单个Skylake处理器也可以真正踢屁股。
过程隔离
如果你需要更多的隔离(比如你在评论中提到的),那么你的dos应用程序的多个副本不会相互干扰,你可以使用chroot / sandbox,如下所述:
有一个相当于chroot的窗口吗?
或使用Windows Server容器:
https://msdn.microsoft.com/en-us/virtualization/windowscontainers/about/about_overview
也许还有其他类似的Windows选项。
不要忘记,Linux可以做到一切
如果你对Linux有dosemu ,你可以用dosemu在Linux上运行dos。 过程隔离似乎不成问题。 只要告诉dosemu为每个实例使用一个不同的目录。