确定镜像中的延迟(通过使用rsync和rsh完成镜像)



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

我使用rsync和rsh

但是在开始更新镜像服务器之前,需要时间。我想知道这个延迟是在哪里发生的。

我的理解

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

我的问题

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

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

如果我的理解和问题不符合我想要的任务或不相关,那么请纠正我,并给我更好的路径,使我能够实现我的目标。

提前感谢。期待您的回复。

编辑2

基本上我是在分析所消耗的时间来确定延迟的原因。不需要修改现有的代码。

我的任务是分析代码,找出延迟的原因。那它。

我想现在我任务的所有事情你都清楚了。

在更改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调用占用了大部分时间

最新更新