ネタ元はOracle公式のここ。 MySQL Server 5.6 defaults changes
・binlog_checksum
⇒5.6からの新規パラメータ。
暗黙のデフォルトはcrc32だが、
マスターが5.6、スレーブが5.5以下の(定石を無視した)環境ではnoneでないとI/O Threadが転ける。
・innodb_buffer_pool_instances
⇒5.5ではデフォルト1が、デフォルト
木下さんが昔「5.5では1から動かさない方が良いよ」って書いていたけれど、
Dimitriさんが5.6でやったやつを見ると使い物になりそうだし、
Vadimさんが5.6.7でやったやつを見ても、バッファプールが100GB超えるまでは安定して動きそう。
・innodb_file_per_table
⇒暗黙のデフォルトがONに。やったね。
・innodb_stats_on_metadata
⇒暗黙のデフォルトがOFFに。やったね。
・query_cache_type
⇒暗黙のデフォルトが0(OFF)に。
query_cache_typeはオンラインで変更可能だけれど、
0で起動したインスタンスを1, 2に変更することはできないので注意。
・sort_buffer_size
⇒暗黙のデフォルト2Mから256Kへ。
filesortしてるけど2Mありゃ良いかーと思ってた環境は明示しないとなぁ。。
・sync_master_info/sync_relay_log/sync_relay_log_info
⇒0から10000へ。10,000イベント記録するたびにfdatasyncする、という意味。
10000イベントって結構簡単に行きそうな気がする。I/Oに負荷行くかも。
取り敢えず気が付いたところだけー。
【2013/02/21 12:25】
みんな innodb_buffer_pool_size に応じた数に innodb_buffer_pool_instances なってます?
— Ryuta Kamizonoさん (@kamipo) 2013年2月21日
mysql56> show variables like 'innodb_buffer_pool%';+-------------------------------------+----------------+| Variable_name | Value |+-------------------------------------+----------------+| innodb_buffer_pool_dump_at_shutdown | OFF || innodb_buffer_pool_dump_now | OFF || innodb_buffer_pool_filename | ib_buffer_pool || innodb_buffer_pool_instances | 8 || innodb_buffer_pool_load_abort | OFF || innodb_buffer_pool_load_at_startup | OFF || innodb_buffer_pool_load_now | OFF || innodb_buffer_pool_size | 2147483648 |+-------------------------------------+----------------+8 rows in set (0.00 sec)
Σ(゚д゚lll) 俺のところでもなってない!
storage/innobase/handler/ha_innodb.ccの中を覗いてみると、
---GPLのコードです---
3027 if (innobase_buffer_pool_instances == 0) {
3028 innobase_buffer_pool_instances = 8;
3029
3030 #if defined(__WIN__) && !defined(_WIN64)
3031 if (innobase_buffer_pool_size > 1331 * 1024 * 1024) {
3032 innobase_buffer_pool_instances
3033 = ut_min(MAX_BUFFER_POOLS,
3034 (long) (innobase_buffer_pool_size
3035 / (128 * 1024 * 1024)));
3036 }
3037 #endif /* defined(__WIN__) && !defined(_WIN64) */
3038 }
---GPLのコードここまで---
「8. On 32 bit Windows only, if innodb_buffer_pool_size is greater than 1300M, default is innodb_buffer_pool_size / 128M」
………8。 ただし、32bit Windowsだけ、ほげほげ~。
8, On 32bit Windows only. if ...ってコンマとピリオドを逆に読んでた。。ごめんなさい。。
【2013/02/26 10:05】
そういえば元ネタにしたページには載っていなかったけど、performanse_schemaもデフォルトで有効になりました。
performanse_schemaをそんなにカジュアルに使うか? というのと、
Bug #68413 performance_schema overhead is at least 10% こんなのもVerifyされているので、
基本的には明示的にOFFにした方が良いと思われ。。
【2013/03/08 18:37】
・join_buffer_size
⇒5.5はデフォルト128k、5.6では256k。
性能悪くなることはないだろー、とタカをくくってたけど、
コネクション数が多い環境だと無視できない差だなと気付いたので追記。
0 件のコメント :
コメントを投稿