gpt4 book ai didi

networking - 在两个实例上加快小文件 (500kb) 的 rsyncing

转载 作者:行者123 更新时间:2023-12-02 13:58:01 25 4
gpt4 key购买 nike

我有两个 ec2 实例,webserverproduction .我需要productionwebserver 之间复制小文件 (2-5kb) ,而网络服务器无法访问生产。我正在使用 ubuntu 12.04。目前,我在 ssh 上使用 rsync 会有 4-5 秒的延迟。有没有更快的方法来做到这一点?我可以忍受 1 秒的延迟。

我正在考虑在 vpc 中启动实例,并通过网络过程,但我不确定这是否足够快 - 关于这方面的教程也很少。或者,我已经开始阅读 nfs,但我再次不确定它是否能解决问题。

最佳答案

您的初始 rsync 延迟有几个可能的原因

  • rsync在完成任何数据更新之前,对双方进行调查以确定有什么不同。如果您有一些大数据 block 或大量目录条目,这可能需要一段时间。如果您有 --checksum,这尤其是一个问题。启用,它会执行完整的内容校验和以检查差异。
  • rsync通常与 SSH 一起使用,这可能会由于 DNS 滞后和超时而出现延迟,因此您可以检查以确保两台主机的 DNS 记录都有正向 (A) 和反向 (PTR) 记录,并且 DNS 在两端都起作用, 或者主机是通过 /etc/hosts 相互认识的之类的。

  • 假设您使用 SSH 作为 rsync 的传输机制,请确保首先测试 SSH 连接是否存在延迟。 (默认),在 ~/.ssh/authorized_keys 中使用 SSH key 目标端的文件。如果是这样,您还应该检查该文件,以查看它使用的记录是否涉及具有自身滞后问题的包装脚本 - 如果其他人编写它并且您是对其进行故障排除的人,这可能会令人惊讶。

    另一个问题是您是否应该考虑编写一些代码以使延迟无关紧要。即使是一秒钟的实际更新也会有问题, rsync ed 目录可以很容易地在动态内容中增长,因此以后需要更多的更新时间。在以前的公司中,我们有时不得不维护不同的代码层次结构(比如说两个)并执行 rsync在不使用的那个上,然后切换。当然,这可能不适用于您的情况(类似的问题可能会出现在 git 部署更新等中,如果有运行仍然开放的源文件的脚本语言,例如 bash 倾向于)。

    在本地网络上的一个小目录上进行测试的时间(使用 time ... )显示:
    sent 160 bytes  received 13 bytes  115.33 bytes/sec
    total size is 3455 speedup is 19.97

    real 0m0.499s
    user 0m0.008s
    sys 0m0.000s
    strace可以让你看看时间都去哪儿了:
    strace -tt -f -o /tmp/log  rsync -avz  ....

    在我看来,它在等待目标主机的反馈时似乎有少量延迟,大致如我所料。

    关于networking - 在两个实例上加快小文件 (500kb) 的 rsyncing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17353077/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com