[groonga-dev,01904] Re: Droongaの504エラー時の挙動について

Back to archive index

Kouhei Sutou kou****@clear*****
2013年 11月 13日 (水) 12:34:20 JST


須藤です。

In <CANM+****@mail*****>
  "[groonga-dev,01903] Droongaの504エラー時の挙動について" on Wed, 13 Nov 2013 12:20:22 +0900,
  Naoya Murakami <visio****@gmail*****> wrote:

> すいません。宛先を間違ってしまいましたので、MLに再送いたします。

いえいえ!

> また、追加の情報として以下を提供します。

ありがとうございます!

> ・現在起動中のfluent-plugin-droongaの出力(随時更新されます)
> http://test.createfield.com/back.log
>
> ・現在起動中のexpress-droongaの出力(随時更新されます)
> http://test.createfield.com/front.log
> ※09:46:40は、空クエリのエラー

やっぱり、このあたりのログをもう少し細かく出すようにしないと
原因特定が難しいですねぇ。。。

> ・express-droongaで504エラーとなるクエリのGroongaコマンドによる出力結果
> % groonga /var/lib/mysql/jppat_ft.mrn "select ftext --match_columns
> title||abstract||claims||freeword||description_19xx||description_200x||description_201x
> --query '画像のハーフトーン閾値生成装置及び方法' --output_columns app_id,title --offset 0
> --limit 20" | jq .
> [
>   [
>     0,
>     1384311647.11816,
>     134.869267463684
>   ],
>   [
>     [
>       [
>         1
>       ],
>       [
>         [
>           "app_id",
>           "ShortText"
>         ],
>         [
>           "title",
>           "LongText"
>         ]
>       ],
>       [
>         "JP19820151640",
>         "画像のハーフトーン閾値生成装置及び方法"
>       ]
>     ]
>   ]
> ]
> ※別のもう少しハードスペックの良いサーバの場合20sぐらいでした。

おぉ、かなり重いクエリーですねぇ。。。

> -----------------------------
> 
> Mroongaのストレージモードで作成したGroongaのデータベースを使って、
> Droongaで検索システムを作ろうとしています。

おぉ。

> 検索に時間がかかってタイムアウトになっているのかと、以下を参考にexpress-droonga
> に渡すメッセージにタイムアウト値を渡すもかわりませんでした。
> https://github.com/droonga/express-droonga/wiki/Message-format%3A-search-feature

あぁ、これはまだ使われていないパラメーターなのです。
なので、指定しても何も変わりません。。。

> Q1. 504エラーを回避するチューニング方法等はありますでしょうか?

今の時点では、原因がわかっていないのでチューニング方法もわか
りません。

> Q2. 504エラーが発生した後に、すぐに検索結果を得られるようにできないでしょうか?

こちらも、まずは原因を特定することから始めるのがよさそうだと
思っています。

> 特定のクエリではなく、ある程度、大きくて負荷が高い場合に発生する
> らしく、簡単に再現できる方法は特定できていません。
> 以下のURLにqueryとtimeoutだけ設定できる簡単なフォームをつくりました。
> 
> http://test.createfield.com:3000/
> (データベースサイズ460GiB メモリ16GBのHDD2本 解約済みで期限切れ待ちのサーバ)
> 
> 1.たとえば、検索クエリに「データベース」と入力し、タイムアウトに「3000」
> を入力して検索をクリックすると、321256件が0.4秒ぐらいで返ってきます。
> 
> 2.つぎに検索結果で得られた長めのタイトル「画像のハーフトーン閾値生成装置
> 及び方法」を検索クエリに適当に入力して、検索すると504エラーコードが返ってきます。
> 
> 3.再度検索クエリを「データベース」にしても、504エラーコードが返ってきます。
> その後、しばらくの間は、なにをやっても504エラーコードになります。
> 
> 4.その後何分かまつと、再度検索クエリ「データベース」で検索結果が返ってくる
> ようになります。

再現手順を用意してもらってありがとうございます。
再現することを確認しました。うーん、何が原因でしょうねぇ。。。

要所々々でログを出すようにすればどこまでうまく動いているかが
わかるので、ログ周りを整備するところからがよいかと思っていま
す。が!すぐには着手できなそうなんですよねぇ。。。すみません。


-- 
須藤 功平 <kou****@clear*****>
株式会社クリアコード <http://www.clear-code.com/> (03-6231-7270)

Groongaサポート:
  http://groonga.org/ja/support/
パッチ採用はじめました:
  http://www.clear-code.com/recruitment/
コミットへのコメントサービスはじめました:
  http://www.clear-code.com/services/commit-comment.html




groonga-dev メーリングリストの案内
Back to archive index