0

Web 上のデータをクロールし、インデックス作成を行うマスター サーバーがあります。その後、すべてのミラーサーバーへのミラーリングを開始します。

そのために、rsync と rshを使用します。

ただし、ミラーサーバーで更新を開始するまでには時間がかかります。その遅延がどこで発生するかを見つけたい。

私の理解

DNS の逆引きに時間がかかる場合があります。

私の質問

編集済み

  1. rsh.cコード または rsync コードにログを追加するのは正しいですか?
  2. 最初の質問の答えが「はい」の場合、逆引き DNS ルックアップが有効な場合と逆引き DNS ルックアップが無効な場合の消費時間のリストを作成したいので、そのために何ができるか教えてください。

消費された時間を記録するためにログを追加できる場所を教えてください。

私の理解と質問が目標に達していない、または私が望むタスクに関連していない場合は、目標を達成できるように、私を修正し、より良い道を教えてください.

前もって感謝します。あなたの親切な対応を求めています。

編集2

基本的に、遅延の理由を判断するためにかかった時間を分析しています。既存のコードを変更するものは何もありません。

私の仕事は、コードを分析し、遅延の理由を見つけることです。それでおしまい。

私の仕事のすべてがあなたには明らかだと思います。

4

1 に答える 1

1

rsh を変更する前に、strace を使用して、どのシステム コールに時間がかかるかを確認してみてください。

strace -c は、システム コールのリストと、それらのコールで使用された時間の割合を生成します。(2番目の質問にも役立つはずです)

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 に答える