MySQL
swap

オンプレのmysqlのswapがでるんすけどって言われた調査メモ

オンプレのmysqlのswapがでるんすけど
と対策を聞かれたので検索したのと記憶してたことを検索しなおして返事した備忘録です。

vm.swappiness=1とinnodb_flush_method=O_DIRECT

http://t-suzuki.hatenablog.jp/entry/2017/07/27/131810
これみるとsysctlでvm.swappinessを1にとinnodb_flush_method=O_DIRECTにしろと書いてますね。
(O_DIRECTは全部InnoDBかつRaidコントローラのWriteBackキャッシュ必須なやつ)
RHEL6.4(kernel 2.6.32-303)以降、vm.swappiness=0 にすると OOM Killer が発動しやすくなるので、1 がいいとのこと。
http://d.hatena.ne.jp/yohei-a/20151115/1447594914

NUMAによるswapインサニティー対策

これも(NumaとOOM_killer対策もやろうぜ的な)
https://yakst.com/ja/posts/3983

思い出した。スワップインサニティーでした(Numaのせい)
http://d.hatena.ne.jp/fat47/20121121/1353495937
https://enterprisezine.jp/dbonline/detail/3829?p=3

numaのパラメータは5.7.9からぽいです(5.6だそうなのでないみたい)
https://dev.mysql.com/doc/refman/5.7/en/innodb-parameters.html#sysvar_innodb_numa_interleave

innodb_numa_interleave=1

numaによるswap対策のpatchはここらへんに転がってる模様です(ビルドと不穏なことがかいてた)
https://bugs.mysql.com/bug.php?id=72811
日本語訳されてる愚痴記事(最後マージされてうれしそうでよかった)
https://yakst.com/ja/posts/2650

ここにnuma対策のパッチ紹介してるキータ記事が。
(こっちのはmysqld_safeへのパッチなのでまあそんなにビビらなくても大丈夫そう(再起動は要りますが))
https://qiita.com/tktk2354/items/917b66ddd128f36b80e4

5.7のinnodb_bufferpoolのバグ対策

innodb_buffer_pool_size パラメータの値を innodb_buffer_pool_instances および innodb_buffer_pool_chunk_size パラメータの積の 8 倍に設定

https://bugs.mysql.com/bug.php?id=79379
https://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/UserGuide/MySQL.KnownIssuesAndLimitations.html

以上