[groonga-dev,04412] Mroonga-4.10(Groonga-4.1.1)にてUPDATEが遅くなる現象について

Back to archive index

Masanori Miyashita walnu****@gmail*****
2017年 7月 21日 (金) 20:06:19 JST


いつもお世話になっております。宮下と申します。

不定期なのですが、掲題の通りUPDATEが遅くなる現象を確認しております。
もし、類似の現象をご存じの方がいらっしゃいましたら、対策など教えていただけますと幸いです。

-----
発生頻度:
週に1,2回 ~ 2週に1回程度

現象:
UPDATEクエリが遅くなる。
遅いクエリにはURLの更新が入っているが、このクエリが常に遅いわけではなく、高速に処理される場合もありました。
また、以下のログが多い時間帯にCPU使用率のsystemの値が上昇し、UPDATEが遅くなっていました。
(そうでない時間帯でも、いつもCPU使用率のsystemの値は高いですが・・・)

ログ:
2017-07-06 02:13:22.049002|d|6ec53700|flushing a[0]=3867028
seg=59(0x7f1025400000) free=4
2017-07-06 02:13:22.053452|d|6ec53700|flushed  a[0]=3867028
seg=59(0x7f101ba80000) free=4->258112 nterms=251 v=0

再現:
他の要因も絡んでいるせいか、単純に更新前のデータに同じUPDATEを実行しても再現はできませんでした。
遅くなるUPDATEにはURLが入っているので、URL部分のインデックス作成が要因だとは思っているのですが・・・


lib/ii.cのgrn_ii_update_oneでsizeがb->header.buffer_freeより小さくなると上記ログが出力されるようなのですが
このbuffer_freeの値をコントロールすることは可能なのでしょうか。。。

その他、各種情報は以下の通りです。ほかに必要な情報などありましたら、ご指摘いただけますと幸いです。

OS:
CentOs6.5

MySQL:
5.6.17

Mroonga:
4.10

Groonga:
4.1.1

データサイズ:
20GB(InnoDB) *ラッパーモード

テーブル定義:
CREATE TABLE `table_a` (
`col1` int(11) NOT NULL,
`col2` bigint(20) NOT NULL,
`col3` bigint(20) NOT NULL,
`col4` text,
`col5` varchar(255) NOT NULL,
`col6` varchar(255) DEFAULT NULL,
`col7` varchar(255) NOT NULL,
`col8` varchar(32) DEFAULT NULL,
`col9` varchar(255) NOT NULL,
`col10` varchar(255) DEFAULT NULL,
`col11` varchar(255) DEFAULT NULL,
`col12` varchar(255) DEFAULT NULL,
`col13` varchar(255) DEFAULT NULL,
`col14` varchar(255) DEFAULT NULL,
`col15` text,
`col16` text,
`col17` mediumtext,
`col18` text,
`col19` text,
`col20` text,
`col21` text,
`col22` text,
`col23` mediumtext,
`col24` text,  <-URLのカラム
`col25` tinyint(4) NOT NULL,
`col26` varchar(128) DEFAULT NULL,
`col27` varchar(128) DEFAULT NULL,
`col28` varchar(128) DEFAULT NULL,
`col29` varchar(128) DEFAULT NULL,
`col30` varchar(128) DEFAULT NULL,
`col31` varchar(128) DEFAULT NULL,
`col32` int(11) DEFAULT NULL,
`col33` datetime NOT NULL,
`col34` datetime NOT NULL,
`col35` datetime NOT NULL,
`col36` datetime NOT NULL,
PRIMARY KEY (`col1`,`col2`),
KEY `idx1` (`col25`),
KEY `idx2` (`col33`),
KEY `idx3` (`col34`),
KEY `idx4` (`col5`,`col32`),
KEY `idx5` (`col1`,`col5`,`col32`),
KEY `idx6` (`col1`,`col3`),
FULLTEXT KEY `ftx1` (`col4`) COMMENT 'parser "TokenDelimit"',
FULLTEXT KEY `ftx2` (`col5`,`col6`,`col7`,`col8`) COMMENT 'parser "
TokenBigramSplitSymbolAlphaDigit"',
FULLTEXT KEY `ftx3` (`col9`,`col10`,`col11`,`col12`,`col13`,`col14`)
COMMENT 'parser "TokenBigramSplitSymbolAlphaDigit"',
FULLTEXT KEY `ftx4` (`col16`,`col17`,`col18`,`col19`,`col20`,`col21`)
COMMENT 'parser "TokenBigramSplitSymbolAlphaDigit"',
FULLTEXT KEY `ftx5` (`col15`,`col22`) COMMENT 'parser "
TokenBigramSplitSymbolAlphaDigit"',
FULLTEXT KEY `ftx6` (`col24`) COMMENT 'parser "
TokenBigramSplitSymbolAlphaDigit"',
FULLTEXT KEY `ftx7` (`col26`,`col28`,`col30`) COMMENT 'parser "
TokenBigramSplitSymbolAlphaDigit"',
FULLTEXT KEY `ftx8` (`col27`,`col29`,`col31`) COMMENT 'parser "
TokenBigramSplitSymbolAlphaDigit"'
) ENGINE=Mroonga DEFAULT CHARSET=utf8 COMMENT='engine "InnoDB"'

クエリの処理時間:
通常:1秒未満
現象発生時:1秒~3秒

並列性:
Master(InnoDB)からのレプリケーションのため直列です。

以上、よろしくお願いいたします。
-------------- next part --------------
HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
Télécharger 



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