[Senna-dev 577] Re: MySQL5.0でのパフォーマンス悪化 及び 2indパッチの不具合の件

Back to archive index

Katsuya Utada utada****@themi*****
2007年 4月 25日 (水) 11:00:42 JST


池田様

お世話になっております
うただです

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 メーリングリストの案内
Back to archive index