Katsuya Utada
utada****@themi*****
2007年 4月 25日 (水) 13:23:38 JST
お世話になっております うただです On Wed, 25 Apr 2007 11:24:49 +0900, Tetsuro IKEDA wrote: |こんにちは。池田です。 | |うたださん、追加情報ありがとうございます。 | |なるほど、、、Handlerレベルでは同じ処理量みたいですね。 |また、IO処理が重いということでも無いようですね。 | |たびたびすみません。「パソコン」以外の4文字のキーワードで、 |遅いキーワードはありますか? | |「パソコン」vs「パソ」のみに着目すると、 |フレーズ検索 vs 非フレーズ検索という面もありますので。 ご指摘ありがとうございます。 応答に30秒程必ずかかるキーワードは 「パソコン」のみでした。他のフレーズ検索は通常一秒以内に レスポンスが帰ってきます。 なぜこのワードのみなのかは不明です。 他にもあるかもしれませんが、見つかりましたらご報告させていただきます。 | | |> 池田様 |> |> お世話になっております |> うただです |> |> On Tue, 24 Apr 2007 19:44:21 +0900, Tetsuro IKEDA wrote: |> |こんにちは。池田@tritonnプロジェクトです。 |> | |> |うたださん、情報ありがとうございます。 |> |よろしければ以下についてもいただけないでしょうか? |> |> ご指摘ありがとうございます。 |> こちらで特定のキーワードで遅い場合の値を取って見ました。 |> |> |- show statusで得ることができる"Handler_XXX" (XXXにはHandler API |> |の名前が入る)の値が、遅いキーワードと速いキーワードでそれぞれ |> |どのようになっているか。 |> |# 投げる前にflush statusを実行して値をクリアして取得してみてください。 |> |> # 遅いキーワード実行時のステータス |> mysql> flush status; |> Query OK, 0 rows affected (0.00 sec) |> |> mysql> select count(*) from sitest where match(keywords) against('パソコン'); |> +-----------+ |> | count(id) | |> +-----------+ |> | 278108 | |> +-----------+ |> 1 row in set (28.07 sec) |> |> mysql> show status like 'handle%'; |> +----------------------------+--------+ |> | Variable_name | Value | |> +----------------------------+--------+ |> | Handler_commit | 0 | |> | Handler_delete | 0 | |> | Handler_discover | 0 | |> | Handler_prepare | 0 | |> | Handler_read_first | 0 | |> | Handler_read_key | 0 | |> | Handler_read_next | 278109 | |> | Handler_read_prev | 0 | |> | Handler_read_rnd | 0 | |> | Handler_read_rnd_next | 0 | |> | Handler_rollback | 0 | |> | Handler_savepoint | 0 | |> | Handler_savepoint_rollback | 0 | |> | Handler_update | 0 | |> | Handler_write | 14 | |> +----------------------------+--------+ |> 15 rows in set (0.00 sec) |> |> # 速いキーワードの時のステータス |> mysql> flush status; |> Query OK, 0 rows affected (0.00 sec) |> |> mysql> select count(id) from sitest where match(keywords) against('パソ'); |> +-----------+ |> | count(id) | |> +-----------+ |> | 278229 | |> +-----------+ |> 1 row in set (0.07 sec) |> |> mysql> show status like 'handle%'; |> +----------------------------+--------+ |> | Variable_name | Value | |> +----------------------------+--------+ |> | Handler_commit | 0 | |> | Handler_delete | 0 | |> | Handler_discover | 0 | |> | Handler_prepare | 0 | |> | Handler_read_first | 0 | |> | Handler_read_key | 0 | |> | Handler_read_next | 278230 | |> | Handler_read_prev | 0 | |> | Handler_read_rnd | 0 | |> | Handler_read_rnd_next | 0 | |> | Handler_rollback | 0 | |> | Handler_savepoint | 0 | |> | Handler_savepoint_rollback | 0 | |> | Handler_update | 0 | |> | Handler_write | 14 | |> +----------------------------+--------+ |> 15 rows in set (0.00 sec) |> |> query_cacheは無効にして試しました。 |> |> | |> |- 遅いキーワードの時のvmstat等によるリソースのボトルネック |> 遅いキーワードselect時のvmstat |> procs -----------memory---------- ---swap-- -----io---- --system-- ----cpu---- |> r b swpd free buff cache si so bi bo in cs us sy id wa |> 1 0 32 1263552 18456 2441644 0 0 0 0 1005 11 25 0 75 0 |> 1 0 32 1263552 18456 2441644 0 0 0 0 1003 8 25 0 75 0 |> 1 0 32 1263488 18464 2441636 0 0 0 10 1007 15 25 0 75 0 |> 1 0 32 1263488 18464 2441636 0 0 0 0 1003 10 25 0 75 0 |> 1 0 32 1263424 18464 2441636 0 0 0 0 1003 9 25 0 75 0 |> 1 0 32 1263424 18464 2441636 0 0 0 0 1003 9 25 0 75 0 |> 1 0 32 1263360 18464 2441636 0 0 0 0 1003 8 25 0 75 0 |> 1 0 32 1263360 18464 2441636 0 0 0 4 1005 11 25 0 75 0 |> 1 0 32 1263296 18464 2441636 0 0 0 0 1003 9 25 0 75 0 |> 1 0 32 1263296 18468 2441632 0 0 0 38 1021 11 25 0 75 0 |> 1 0 32 1263296 18468 2441632 0 0 0 0 1003 9 25 0 75 0 |> 1 0 32 1263232 18468 2441632 0 0 0 0 1003 9 25 0 75 0 |> 1 0 32 1257344 18468 2441632 0 0 0 0 1003 10 25 0 75 0 |> 0 0 32 1272256 18468 2441632 0 0 0 0 1005 11 20 0 80 0 |> |> 何もしていない時のvmstat |> 0 0 32 1272232 18456 2441644 0 0 0 0 1003 9 0 0 100 0 |> 0 0 32 1272248 18456 2441644 0 0 0 0 1003 9 0 0 100 0 |> |> CPU使用率以外はあまり違いがありませんでした。。 |> 要望ばかりで申し訳ありませんが、よろしくお願いいたします・・。 |> |> | |> |07/04/24 に Katsuya Utada<utada****@themi*****> さんは書きました: |> |> お世話になっております |> |> うただです |> |> |> |> |2ind機能はまだ未完成の部分がある&不具合があると認識しております。 |> |> |こうした具体的な情報は非常にありがたいです。 |> |> 2ind利用時のパフォーマンスに関してですが |> |> 当方でもMySQL5.0.37+tritonn-1.0.2.mysql-5.0.37.senna-1.0.4(ngram) |> |> の環境で、特定のキーワードで応答が極端に遅くなる場合があります。 |> |> 2ind ON/OFF時でも応答時間に変化は見られませんでした。。 |> |> 遅延の発生する条件が分かりませんが、 |> |> 一応情報としてレポートさせて頂きます。 |> |> |> |> 安定性が上がったのは大変助かっております。 |> |> 今後の改良に期待致しております。 |> |> |mysql> show senna status\G |> |> |*************************** 1. row *************************** |> |> | Table: sitest |> |> | Key_name: keywords |> |> | Column_name: keywords |> |> | Encoding: euc_jp |> |> | Index_type: NGRAM |> |> | Normalize: ON |> |> | Split_alpha: OFF |> |> | Split_digit: OFF |> |> | Split_symbol: OFF |> |> | Initial_n_segments: 512 |> |> | Senna_keys_size: 4624378 |> |> | Senna_keys_file_size: 113319936 |> |> | Senna_lexicon_size: 2503513 |> |> |Senna_lexicon_file_size: 67182592 |> |> | Senna_inv_seg_size: 181833728 |> |> | Senna_inv_chunk_size: 485888000 |> |> |> |> |mysql> select count(*) from sitest where match(keywords) against('コン'); |> |> |+----------+ |> |> || count(*) | |> |> |+----------+ |> |> || 371907 | |> |> |+----------+ |> |> |1 row in set (0.11 sec) |> |> | |> |> |mysql> select count(*) from sitest where match(keywords) against('パソコン'); |> |> |+----------+ |> |> || count(*) | |> |> |+----------+ |> |> || 278108 | |> |> |+----------+ |> |> |1 row in set (30.95 sec) |> |> |> |> --- |> Katsuya Utada <utada****@themi*****> |> |> _______________________________________________ |> Senna-dev mailing list |> Senna****@lists***** |> http://lists.sourceforge.jp/mailman/listinfo/senna-dev | |----------------------------------------- |Tetsuro IKEDA, te.ik****@jpta***** |Kachidoki, Tokyo, Jpan |http://www.scs.co.jp/mysql/ |----------------------------------------- | |_______________________________________________ |Senna-dev mailing list |Senna****@lists***** |http://lists.sourceforge.jp/mailman/listinfo/senna-dev | --- Katsuya Utada <utada****@themi*****>