【问题标题】:Determine the delay in mirroring ( mirroring is done by using rsync and rsh )确定镜像的延迟(通过使用 rsync 和 rsh 完成镜像)
【发布时间】:2013-02-28 05:50:48
【问题描述】:

我有一个主服务器,它在网络上抓取数据并进行索引。然后开始镜像到所有的镜像服务器。

为此,我使用 rsync 和 rsh

但是在镜像服务器开始更新之前,需要一些时间。我想找出延迟发生的位置。

我的理解

反向 DNS 查找可能需要一些时间。

我的问题

已编辑

  1. rsh.c代码或rsync代码中添加一些日志是否正确
  2. 如果第一个问题的答案是肯定的,那么我想列出当反向 DNS 查找启用和反向 DNS 查找禁用时消耗的时间,所以告诉我该怎么办?

告诉我在哪里可以添加日志来记录消耗的时间?

如果我的理解和问题与我想要的任务不相符或相关,请纠正我,给我更好的路径,以便我实现目标。

提前致谢。期待您的善意回应。

2号编辑

基本上我正在分析确定延迟原因所花费的时间。无需修改现有代码。

我的任务是分析代码,找出延迟的原因。就是这样。

我想你现在已经清楚了我的任务。

【问题讨论】:

    标签: algorithm bash rsync mirroring rsh


    【解决方案1】:

    在更改 rsh 之前,您可以尝试使用 strace 来查看哪些系统调用需要更长的时间。

    strace -c 将生成系统调用列表和这些调用使用的时间百分比。 (应该也有助于解决第二个问题)

    为了使 DNS 查找更加明显,您可以使用 ltrace:

    示例:

    ltrace -c -o log.txt wget http://dkjflsdfjka/
    

    那么 log.txt 会是这样的:

    root@host:~# head log.txt 
    % time seconds usecs/call calls function 
    ------ ----------- ----------- --------- -------------------- 
    74.27 0.130779 130779 1 getaddrinfo 
    6.63 0.011680 33 344 strlen 
    3.05 0.005371 35 152 free 
    2.98 0.005255 35 147 malloc 
    2.74 0.004830 38 127 fgets
    

    然后你可以看到...... getaddrinfo 调用占用了大部分时间

    【讨论】:

    • 首先,在我的任务中,rsh 不需要更改。我只需要通过在某个时间点记录来找出延迟发生的位置。
    • strace -T -o logfile.txt ?
    • 我运行这个命令来查看输出。是的,这对我很有帮助。但是,当我阅读 rsh.c 时,它似乎非常复杂。你能帮我检测一下我可以把日志放在哪里,以检查反向 DNS 查找。
    • 从我的角度来看,修改 rsh.c 不是必需的,strace 应该为您提供所需的所有信息。无论如何,我不能帮你写代码。
    • 按照你的说法,当有数据从master复制到mirror开始时,才放这个命令。我说的对吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-09
    • 1970-01-01
    • 2012-09-28
    • 1970-01-01
    相关资源
    最近更新 更多