Topics & News
マピオンラボリニューアルしました。

Mapion マピオンラボ セミナー/勉強会 第3回Solr勉強会 資料公開しました

第3回Solr勉強会 資料公開しました

岩澤です。

週末、海でキャッキャ、ウフフ遊んだらすっかり資料を公開することを忘れておりました。
遅くなってしまい、済みませんでした。

前回の最後に、1.4化実はまだでした!ってのがオチだったので、今回は本当にやりました!(`・ω・´) という報告です。
ユルめの内容ですが、Solr1.3時のマピオンの赤裸々な状況や、パフォーマンスを出すために手を入れたところなど、他でも役に立つ事もあるのではないかと思います。

前回同様テキストも貼ってみる。

第3回Solr勉強会 こんどこそ本当のSolr1.4化 - Presentation Transcript

   1. こんどこそ 本当の Solr1.4 化 株式会社マピオン 岩澤英治 株式会社データ・コム・ナレッジ 坂田敏郎
   2. マピオン新サーチのあゆみ
          * 2009/8/12 新フロント オープン 
                o ⇒ 開始 30 分で切り戻し 
                o Proxy のキャシュが効かず全アクセスが 
                o Solr へ集中した為。 
                o 対策: Solr のインフラ増強 
                o      Zone Solr のメモリを 8G ⇒ 16G 
                o      Solr の負荷が少ない地図からオープン 
   3. マピオン新サーチのあゆみ
          * 08/13 県地図オープン 
          * 08/18 住所検索オープン 
          * 08/24 郵便番号検索オープン 
          * 09/02 電話帳キャッシュ生成開始 
          * 09/07 電話帳検索オープン 
                o ⇒ 11 時にサービスイン 11:30 に切り戻し orz 
   4. マピオン新サーチのあゆみ
          * 対策:アクセスが少なくなる21時から翌朝8時 
          *     まで本番公開しキャッシュを貯める 
          * 09/15 電話帳検索 24時間サービスに成功! 
          * 構成 
                o ユーザー側 9台 
                o クローラ側 3台 
      計: 12 台
   5. マピオン新サーチのあゆみ
          * 11/10 Proxy に ICP 設定を実施 
          * 11/16 月曜 10 時問題 
          * 12/07 クローラ用サーバ増設 
          * 構成 
                o ユーザー側 12 台 
                o クローラ側 4 台 
      計: 16 台
   6. 原因として
          * 現在使用している Proxy サーバは、以前使っていた製品よりキャッシュが効かず Solr へのアクセスが想定より多くなった。 
          * Solr1.3 のパフォーマンスが当初の見込みより出なかった。 
   7.
          * Solr パフォーマンス改善プロジェクト 
   8. Solr パフォーマンス改善プロジェクト
          * Solr1.4 動かしてみた 
      11.73 18.03 20 25.52 18.05 10 上記4つのテストのミックス 5.73 9.01 20 8.56 9.01 10 緯度経度 - 距離 5000 ファセット 5.61 9.00 20 7.76 9.01 10 緯度経度 - 距離 5000 1201.83 1801.69 20 1325.81 1510.58 10 東京 - 市区町村でファセット 1650.56 2135.83 20 1848.82 1846.32 10 大手町 - ファセットなし Solr1.4 Solr1.3 TPS 同時接続数 テスト内容
   9. Solr パフォーマンス改善プロジェクト あれ・・? Solr1.4 でもあまりパフォーマンスでねぇ。 そこで
  10. Solr パフォーマンス改善プロジェクト
          * 起動オプションのチューニング 
                o Solr をベースにした検索エンジン Fess( フェス ) を参考に 
                o チューニング 
          * -Xmx8192m 
          * -Xms5120m 
          * -XX:+UseGCOverheadLimit 
          * -XX:+UseConcMarkSweepGC 
          * -XX:+CMSIncrementalMode 
          * -XX:+UseTLAB 
          * -XX:MaxPermSize=128m 
  11. Solr パフォーマンス改善プロジェクト
          * Solr サーバのキャッシュ機能を OFF 
                o マピオンの場合、 Solr のキャッシュを使用すると 
                o Full GC 地獄に... 
                o キャッシュは専門サービスに任せる 
                      + Proxy によるページキャッシュ 
                      + ファイルシステムのキャッシュ機能 
  12. Solr パフォーマンス改善プロジェクト
          * ZFS を積極的に利用 
                o Solaris 使ってるんだし、 Solr のキャッシュではなくファイルシステムのメモリキャッシュで IO を稼ぐ 
                o あと、マピオンの場合、 IO-Drive 使っても、残念ながら見違える程の効果がなかった... 
                o コストパフォーマンスからいっても、 ZFS で十分 
      ZFS 利用時の注意として、システム既定値の空いているメモリを全部 ZFS が使える設定にすると、使い切ったところでシステムが固まる... -> 空きメモリの範囲に制限すると安定
  13. Solr1.4 + チューニングの結果
          * Solr1.3 ⇔ Solr1.4 の比較 
      221.38 11.73 18.03 20 上記4つのテストのミックス 112.86 5.73 9.01 20 緯度経度 - 距離 5000 ファセット 121.67 5.61 9.00 20 緯度経度 - 距離 5000 Solr1.4 Solr1.4 チューニング後 チューニング前 Solr1.3 TPS 同時接続数 テスト内容 X 12 倍
  14. マピオン検索の利用現状
          * 1日の Solr への総リクエスト 1千万リクエスト超 
                o 範囲検索はそのうち 64 万リクエスト 
          * 最高秒間アクセス 400 リクエスト前後 
      それをどのくらいの台数でさばけるようになったかというと... ユーザ側サーバのみの数値です
  15. 現在構成
                o 構成 
                      + ユーザー側 4 台 
                      + クローラ側 3 台 
      計: 16 台 計: 7 台 クローラ側に1台でも十分なくらいだが 冗長性を維持するため3台配備
  16. 本番導入 ユーザ側のサーバの 場合です。 12 台-> 4 台と サーバ台数1/3 にもかかわらず、 負荷激減 ( ・∀・ )
  17. 移行作業時につまづいた事
                o 現状、最前段のマージ用 Solr は負荷が問題になっていないため ver1.3 の ままです。 
                o 当初、検索用 Solr を1台ずつサービスから切り離し、 1.4 化していく計画でしたが、 1.3 と 1.4 が混ざった状態になると、レスポンスをマージできずエラーとなってしまいました。 
                o Solr1.4 のサーバを予め4台セットアップして用意しておき、 LB の機能で一気に切り替えることにより対応しました。 
  18. Solr1.4 化に 際しての 小ネタ
  19. 小ネタ その1
          * lucene-spatial で一部のエリアが検索できない !? 
                o 四角く検索できないエリアがポツポツあることが判明 
                o ググってもバグ情報なし 
                o BoxId の計算に問題がありそうだけど修正方法がわからん 
      ボソ:「そう言えば、作っているのってアメリカ人だよね?」
  20. 小ネタ その1
          * 北米の緯度経度に近いものに変換して計算したら OK!! 
                o org.apache.lucene.spatial.tier.projections.CartesianTierPlotter.java 
      public   double  getTierBoxId ( double  latitude, double  longitude) { double [] coords = projector.coords(latitude, longitude -200.0D ); ※ ついでに半径 23km までしか検索できない問題もこれで解決   前回の勉強会でウソ言ってスミマセン orz
  21. 小ネタ その2
          * 新しいトークナイザー 
                o 「京都府」問題 
                o 「京都府」で検索すると「東京都府中市」がヒットしてしまう 
                      + つまり N-GRAM の検索ノイズ 
                o 形態素解析+ N-GRAM !! 
                      + 形態素解析したトークンが3文字以上の場合に、 N-GRAM でさらに分割 
                o 「東京都府中市」を N-GRAM すると 
                      + 「東京」「京都」 「都府」 「府中」「中市」 
      新しいトークナイザーでは、こうゆう不要なトークンができない !! ● 「東京」「都」「府中」「市」
  22. 小ネタ その3
          * データインポートハンドラーの差分更新 
                o optimize するとスナップショットを作るように設定 
                o 差分更新で1件も追加/更新/削除がなくても optimize が実行される。。。 無駄じゃねぇ? 
                o org.apache.solr.handler.dataimport.DocBuilder.java 
      private   void  finish(Properties lastIndexTimeProps) { if( importStatistics.docCount.longValue() == 0 && importStatistics.deletedDocCount.longValue() == 0 ){ return; } 全く更新していなければ return
  23. 小ネタ その4
          * ResponseWriter 
                o Solr の XML はフィールド名がタグの属性( name="hoge" ) 
                o タグ名=フィールド名が分り易くねぇ? 
                o 独自の ResponseWriter を作成 
                      + タグ名=フィールド名 
                o ついでにオープンサーチ用の ResponseWriter も作成 
      FireFox でマピオンの TOP ページ行くと。。。
  24. ご清聴 ありがとう ございました 

メモ

■株式会社ロンウイット 関口さま
・LuceneとSolrのソース統合について。
・Solr1.4.1ではバグがたくさん直っているらしい。
 - メモリリークが幾つか直っているのは魅力的かも
 - マピオンも1.4化したばかりだが、試してみたい...
■株式会社サイバーエージェント 田代さま、安田さま
・すごいインフラ使ってますね...
・データ量がハンパない!さすがAmeba
・MessagePack興味あり
・Tokenizerはみなさんサービスに合わせてカスタマイズしてる
・ディスクアレイすごい効果だ
■チームラボ 田村さま
・おもしろアイディアのサービスがたくさん
・キーワードレス検索というアイディア
・画像の検索もキーワード検索にうまく置き換えて低コストで実現できる場合も
■LT Basis Technology 黒坂さま
・各種コンサルをやってくれる。
・Tシャツいただきました。ありがとうございます!
■LT ECナビ 春山さま
・メモリ23GB超えへの挑戦
・VMのバージョンのチョイスは慎重に
・やっぱり23GB超えはおすすめできないw
■まとめ
・おおむね開発者募集中w

会場を提供していただいたECナビさま、ありがとうございました。 懇親会、ごちそうさまでした!

comment
ニックネーム 
trackback

この記事のトラックバックURLhttp://labs.mapion.co.jp/mtos/mt-tb.cgi/69

Mashup Awards 7 (#MA7)
ユーザーアーカイブ