0

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

为此,我使用rsync 和 rsh

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

我的理解

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

我的问题

已编辑

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

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

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

提前致谢。寻找您的善意回应。

编辑第 2 号

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

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

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

4

1 回答 1

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 调用花费了大部分时间

于 2013-02-28T07:02:20.827 回答