确定镜像延迟(使用rsync和rsh完成镜像)

时间:2013-02-28 05:50:49

标签: algorithm bash rsync mirroring rsh

我有一台主服务器,可以在网上抓取数据,并进行索引编制。之后,它开始镜像到所有镜像服务器。

为此,我使用 rsync和rsh

但是在镜像服务器中开始更新之前,需要时间。我想找到延迟发生的地方。

我的理解

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

我的问题

EDITED

  1. rsh.c 代码或rsync代码中添加一些日志是否正确
  2. 如果第一个问题的答案是肯定的,那么我想列出当反向DNS查找启用时的消耗时间列表以及当反向DNS查找禁用时,请告诉我能为此做些什么?
  3. 告诉我在哪里可以添加日志以记录消耗的时间?

    如果根据我想要的任务,我的理解和问题没有达到标记或相关,那么请纠正我,给我更好的路径,这样我就能实现我的目标。

    提前致谢。寻找你的回应。

    编辑第2号

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

    我的任务是分析代码,找出延迟的原因。多数民众赞成。

    我想现在我的任务中的所有事情都很清楚。

1 个答案:

答案 0 :(得分: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命令占用了大部分时间