今日は台風とBugの日。
朝一で対応したRDS(MySQL5.6.19)が落ちた件。
前提
ストレージエンジン:Innodb
innodb_file_per_table:1
partition:バリバリ(一定期間でPurge)
・Metrics
FreeMemory減少
SWAP上昇
・Error_log
2014-10-05 12:25:53 26178 [ERROR] InnoDB: InnoDB: Unable to allocate memory of size 1208.
2014-10-05 12:25:53 2b119160d7002014-10-05 12:25:53 26178 [ERROR] InnoDB: InnoDB: Unable to allocate memory of size 1248.
2014-10-05 12:25:53 2b11913c4700 InnoDB: Assertion failure in thread 17254461035092 in file ha_innodb.cc line 17080
InnoDB: We intentionally generate a memory trap.
InnoDB: Submit a detailed bug report to http://bugs.mysql.com.
InnoDB: If you get repeated assertion failures or crashes, even
InnoDB: immediately after the mysqld startup, there may be
InnoDB: corruption in the InnoDB tablespace. Please refer to
InnoDB: http://dev.mysql.com/doc/refman/5.6/en/forcing-innodb-recovery.html
InnoDB: about forcing recovery.
12:25:53 UTC - mysqld got signal 6 ;
This could be because you hit a bug. It is also possible that this binary
or one of the libraries it was linked against is corrupt, improperly built,
or misconfigured. This error can also be caused by malfunctioning hardware.
We will try our best to scrape up some info that will hopefully help
diagnose the problem, but since we have already crashed,
something is definitely wrong and this may fail.
signal 11 に並ぶお馴染みの signal 6。
いろいろ調べて辿り着いたBug。
あー条件に当てはまるわー(棒読み)。
最近データ量増えて、purge も追いついていなかったなー。
というか、この Bug 上げたの松信さんなのかー。
ということは、これは facebook で既に踏んだ Bug なのかな?
ともあれ、Fix した vsersion 5.6.21 はまだ RDS では提供していない。
現状対策
・partition の数を減らす
・多くのメモリを搭載したインスタンスタイプを利用
・purge の間隔短くする
・同時接続数を減らす
--
で様子見る。