Parallel processing 什么';这是通过网络将文件夹复制到多个服务器的最快方法(Python)
正如标题所说,我想完成的是给一个包(通常大小可能在500Mb和1Gb之间变化),我想同时(同时)复制大约40台服务器,我一直在使用一个脚本来运行一个副本,因此我正在考虑以下可能性: 1-多进程库,并为每个复制函数创建单个进程,以便它们可以并发运行; -尽管我认为最终可能会出现I/O瓶颈,并且进程不能共享相同的数据 2-我使用的不是单一的互联网连接,而是一个巨大的企业广域网 有谁能告诉我,是否有其他更有效(更快)的方法来实现同样的目标?或者其他解决方法?(我可以在2核工作站上运行此任务)。1)我没有这方面的经验,但它看起来很适合您的用例:Parallel processing 什么';这是通过网络将文件夹复制到多个服务器的最快方法(Python),parallel-processing,multiprocessing,python-2.7,Parallel Processing,Multiprocessing,Python 2.7,正如标题所说,我想完成的是给一个包(通常大小可能在500Mb和1Gb之间变化),我想同时(同时)复制大约40台服务器,我一直在使用一个脚本来运行一个副本,因此我正在考虑以下可能性: 1-多进程库,并为每个复制函数创建单个进程,以便它们可以并发运行; -尽管我认为最终可能会出现I/O瓶颈,并且进程不能共享相同的数据 2-我使用的不是单一的互联网连接,而是一个巨大的企业广域网 有谁能告诉我,是否有其他更有效(更快)的方法来实现同样的目标?或者其他解决方法?(我可以在2核工作站上运行此任务)。1)我没
2) 另一个选择是使用。我最近(跳到31:00查看torrent内容)发现facebook通过torrent发布每日软件更新(并在15分钟左右用1.5GB二进制文件更新1000台服务器)。假设您的机器有1Gbit连接。如果幸运的话,你将获得800Mbit/s的速度,而复制每1G字节大约需要10秒,更新这些机器需要6-7分钟。如果这足够好的话,您需要做的唯一一件事就是高效地使用1Gbit来达到目标(您从当前的脚本中看到了什么?好的,1Gbit在WAN上可能很有挑战性,但您可以做类似的分析)。多处理在这里可能有帮助,也可能没有帮助。。。但它不会神奇地给你带来更多的带宽 如果不够好,我会考虑:
- 去P2P(见miku的答案),这样只要一台机器有一点 它可以使用自己的数据与其他机器共享数据 带宽。这有多大帮助在某种程度上取决于你的 网络拓扑(存在其他瓶颈点)
- 看看多播,如果网络在你的控制下足够好,你可以适当地路由(这看起来很不错) 对广域网来说不太可能,但也许有一天在IPv6仙境中。 而不是将相同的数据复制40次(假设相同 每一次),你只要播放一次,所有的接收者都会选择它 同时上升。多播UDP不可靠(更多用于 我想是IPTV),但也有技术,例如和
- 去P2P(见miku的答案),这样只要一台机器有一点 它可以使用自己的数据与其他机器共享数据 带宽。这有多大帮助在某种程度上取决于你的 网络拓扑(存在其他瓶颈点)
- 看看多播,如果网络在你的控制下足够好,你可以适当地路由(这看起来很不错) 对广域网来说不太可能,但也许有一天在IPv6仙境中。 而不是将相同的数据复制40次(假设相同 每一次),你只要播放一次,所有的接收者都会选择它 同时上升。多播UDP不可靠(更多用于 我想是IPTV),但也有技术,例如和