クロール三角関係


こんにちは。


SharePoint サポートチームのたらかわです。


 


実は、先月半ば頃から風邪を変な風にこじらせたらしく、咳が止まらなくて大変でした。ようやく咳が治まってきたと思ったら、今度は肋骨の左のほうがズキズキと痛むですよ。。病院に行ってみたら、何と肋骨が折れてました。(正確には疲労骨折といって軽くヒビが入っただけなのですが。) 自然治癒にまかせるしかないので、湿布を貼ってしのいでいるのですが、毎回くしゃみをするたびに悶絶している今日この頃です。


 


さて、先週は社内行事などで色々忙しかったので、あまり凝ったネタを提供できず申し訳ないのですが、今回はちょっとした小ネタをご紹介しましょう。


 


問題:増分クロールのスケジュールを 5 分おきに設定したときに、1 回のクロールに 5 分以上かかる環境だと次にスケジュールされたクロールはいったいどうなるのか?


 


A) クロールがもう一つ別スレッドで走る


B) そのスケジュールは無視される


C) そのスケジュールは待機キューに入れられ、直前のクロールが終わった後すぐに実行される


 


…答えは、「B) そのスケジュールは無視される」です。


無視されたスケジュールには申しわけないですが、同時に 2 つのクロールを実行してインデックスサーバーに負担をかけるよりも、現在クロール中の処理を早く終わらせることがのほうが重要です。


心配しなくても、現在進行中のクロールが完了すれば、次のスケジュールではちゃんとクロールが実行されます。


 


もう少しわかりやすく解説すると、次のような動作になります。


 


(5 分おきにクロールする設定の場合)


0:05 増分クロール A 開始


0:10 増分クロール B 開始…しようとしたけど、まだ前回のクロールが終わってないので今回はスキップ


0:12 増分クロール A 完了


0:15 増分クロール C 開始


 


いかがでしょうか。


ちなみに、WSS 3.0 で使用される Windows SharePoint Server Search サービスでは、スキップされたクロールの心の叫びが診断ログに残ります。(補足:Office SharePoint Server Search では残らないようです。)


例えば、上記の状況では、以下のようなメッセージが診断ログに残ります。


 


------------------------------------------


07/15/2009 00:10:00.00   OWSTIMER.EXE (0x0758)   0x07BC  Search Server Common   MS Search Administration   8ijm  Verbose   WSS Search: Skipping start address cleanup phase because the default content source is not idle (status = CRAWLING_INCREMENTALLY).


------------------------------------------


 


既定のコンテンツ ソースがアイドルではないため、開始アドレスのクリーン アップ処理 (クロール開始時の処理) がスキップされました。(ステータス = 増分クロール中)」と書いてありますね。


 


つまり要約すると、「あ、私、お邪魔みたいだから帰るね。ごめんね、なんか、余計なお世話だったよね。あとは 2 人で楽しんで! (その帰り道) …あはは、私一人で空回りしちゃって、馬鹿みたい。…さようなら。」的なドラマが繰り広げられているというわけですな。


 


…切ない。


 


男として、ここで甲斐性を見せて 2 つのクロールを同時進行させたいところですが、現実はそう甘くは無く、現在進行中のクロールを維持するだけでインデックス サーバーのキャパは一杯なわけです。下手に小細工しようものなら、その場は修羅場と化し、何とか器用にその場を取り繕ったとしても、クロールって意外とリソース要求されるわけで、色々やっているうちにいずれはボロがでて、後々大変なことになるわけですよ。…あ、あくまでクロールの話ですよ、もちろん!


 


…あ、あれ?何の話してましたっけ?


ま…まぁ、そういうわけですので、ことクロールにおいて、MOSS 2007/WSS 3.0 「誠実な動作をする」ということを覚えておきましょう。


 


- 補足


上述の診断ログは既定の設定では記録されません。


WSS 3.0 Windows SharePoint Server Search サービスでクロールがスキップされたことを確認するには、以下の手順にて、診断ログの設定を変更する必要があります。


診断ログの設定を変えると、ログのサイズが予想以上に大きくなったりしますので、トラブルシュートなどの特別な目的がなければ、既定の設定でお使いいただくことをお勧めします。


 


<診断ログの設定変更手順>


1) サーバーの全体管理サイトにアクセスします。


2) [サーバー構成の管理] をクリックします。


3) [ログおよびレポートの作成] セクションの [診断ログ] をクリックします。


4) [記録されるイベントの設定] セクションで以下のように設定します。


   カテゴリの選択:MS 検索管理


   トレース ログの記録対象となる重要度の最も低いイベント:詳細 (既定では「中」になっています。)


 


診断ログの設定


 


5) [OK] をクリックして変更を保存します。


 


 


by たらかわ@経験者は語る


Comments (0)

Skip to main content