[OSM-ja] キャッシュデータの分割

Shun N. Watanabe shunw @ ics.uci.edu
2010年 3月 18日 (木) 05:23:23 GMT


nazotoko の渡邊です。

2010/3/17 SHIBATA Akira <help @ eva.gr.jp>:
> 柴田(あ)です。
>
> 当方あせっていて…
> この週末にイベントがあって、少なくとも 24 時間は
> まったく PC に触れない時間がありそうと考えていて
> いない間でも wget を継続できるようにと仕込みの
> 方法を模索していました。
>
> 手動だとずっと張り付いていないといけないので…

安心してください。
実は、もうそのスクリプト止めてくれと言うところだったので。
例の海をさけてリクエストをだす手はずが整ったのですが、
自分の手元でやった方が、どう考えても早いのです。
地図を見て、だせるんですよ。
http://38.127.225.239/Browse/map.html?lat=-27.1373683598&lon=152.314453125&zoom=11

私がやらせてたのは、私がそれを作るまでに、
私も張り付いてるのが面倒なので、柴田さんに座標計算させていただけで、
効率は初めっから悪いのはわかってました。

あと、色々指示するサーバーを動かしたので、
柴田さんが持ってる全タイルを正確には把握してません。
ls -R か、 find でリストをもらえませんか。
メールで送る前に gzip などしてください。

>> 逆に184.73.236.108 は、かなりの負荷に耐えられるタイプのサーバーです。
>> こっちはまだ暇で、千葉茨城が終わったらやること無いので、
>> こっちに回してください。
>
> 現在安定的に 8 〜 12 ほど並列に回っていると思います。
> これ以上増やしてもしょうがない気がしますがいかがでしょう?

こいつは本当に強いので、気になってません。
自分も同じので千葉を8機ほど取ってます。

> wget するスクリプト(downdoad.sh)について下のように記述
>  #!/bin/sh
>  bash ./download.sh XXXXX+(32x0) YYYYY XXXXX+(32x0)+32 YYYYY+32 &
>  bash ./download.sh XXXXX+(32x1) YYYYY XXXXX+(32x1)+32 YYYYY+32 &
>   :

自分は、perl のfor文を使うことが多いです。
こんな感じ、
perl -e 'for($i=1560;$i<1600;$i++){print `perl level12.pl 3646 $i `;}'

> # ってわかっているひとには当然のことかもしれませんが、
> # 当方のような wget 初心者には負荷のかけ方がわかって
> # いませんで、他の方の益になればと思います。

柴田さんがwget をかけるとこんな感じになってました。

wget -> wms2tile (0.1秒)
wms2tile -> WMS (0.1秒)
(0.5 秒待ち)
WMS -> wms2tile (4 秒)
(optipng  2秒)
wms2tile -> wget (6 秒) (ここまでwget は待ってるだけ)

並列化するとある程度早くなるのは、optipng (png 画像の再圧縮)と
柴田さんところに送ってる時間の間にWMSが暇になるので、
そこを狙えばよかったのですが、(だから4 くらい)

やりすぎて、CPU が耐えきれず、optipng が10 秒くらいに間延びして、
結果WMS はほとんど暇になりました。

wget をやめてくださいと言うのは、このwget 柴田さんに送る時間6 秒を
削減できるからです。

> ○遺言のような (笑
> 多分そうなりませんが、万一のときにはということで…
> 先述の内容にて少なくとも 24 時間は PC に触れない予定なのは
> この週末に自転車の遠乗りのイベントのためです。
> ですので、少なくとも 24 時間は触らなくても黙って稼動する
> ことを期待しているわけです。

とりあえず触らなくてもいいです。
たぶん週明けに、今度は違うスクリプトで、wget を指示しますが、
こいつは並列などしなくても、帯域全部使って10 時くらい勝手に動いているはずです。
その日はメール読めないかもしれません。覚悟しといてください。

 Shun N. Watanabe




Talk-ja メーリングリストの案内