今のサイズより大きくする(サイズ拡大編)は別エントリーで。
↑のエントリーにも書いたけど、理屈的には
* バッファプールサイズを今より大きく変更する時には全ブロック
* バッファプールサイズを今より小さく変更する時にはブロックなし
らしい。れつご。
# mysqladmin -r -i 2 ex | grep Innodb_rows_inserted .. | Innodb_rows_inserted | 19837 | -- 前のエントリーの続きで、バッファプール80GBでtpcc_startでトラフィックかけてる | Innodb_rows_inserted | 18892 | | Innodb_rows_inserted | 18198 | | Innodb_rows_inserted | 17974 | | Innodb_rows_inserted | 4293 | -- このへんでSET GLOBAL | Innodb_rows_inserted | 1261 | | Innodb_rows_inserted | 1160 | | Innodb_rows_inserted | 1669 | | Innodb_rows_inserted | 1207 | | Innodb_rows_inserted | 744 | | Innodb_rows_inserted | 1274 | | Innodb_rows_inserted | 964 | | Innodb_rows_inserted | 1060 | | Innodb_rows_inserted | 1134 | | Innodb_rows_inserted | 1197 | | Innodb_rows_inserted | 1147 | | Innodb_rows_inserted | 1199 | | Innodb_rows_inserted | 1261 | | Innodb_rows_inserted | 1247 | -- まだ終わってないけど、以降は似たような値が続く .. | Innodb_rows_inserted | 2998 | | Innodb_rows_inserted | 3325 | | Innodb_rows_inserted | 3434 | | Innodb_rows_inserted | 2894 | -- たぶんここでCompleted resizing buffer pool | Innodb_rows_inserted | 902 | | Innodb_rows_inserted | 559 | | Innodb_rows_inserted | 765 |
コマンド。
mysql> SELECT NOW(); SET GLOBAL innodb_buffer_pool_size= 4 * 1024 * 1024 * 1024; +---------------------+ | NOW() | +---------------------+ | 2014-09-18 07:32:19 | +---------------------+ 1 row in set (0.00 sec) Query OK, 0 rows affected (0.01 sec) mysql> SHOW GLOBAL STATUS LIKE 'innodb_buffer_pool_resize%'; +----------------------------------+------------------------------------+ | Variable_name | Value | +----------------------------------+------------------------------------+ | Innodb_buffer_pool_resize_status | Withdrawing blocks to be shrunken. | +----------------------------------+------------------------------------+ 1 row in set (0.00 sec) mysql> SHOW GLOBAL STATUS LIKE 'innodb_buffer_pool_resize%'; +----------------------------------+----------------------------------------------------+ | Variable_name | Value | +----------------------------------+----------------------------------------------------+ | Innodb_buffer_pool_resize_status | Completed resizing buffer pool at 140918 7:41:30. | +----------------------------------+----------------------------------------------------+ 1 row in set (0.00 sec)
10分かかったけど特にブロックもなく(ただし、innodb_lock_wait_timeout= 1にしてるから、それでタイムアウトしたトランザクションはあった)ある程度想像通り。
----system---- ----total-cpu-usage---- -dsk/total- -net/total- ---paging-- ---system-- ------memory-usage----- ---load-avg--- date/time |usr sys idl wai hiq siq| read writ| recv send| in out | int csw | used buff cach free| 1m 5m 15m 18-09 07:31:34| 7 1 88 4 0 0|7576k 158M| 60B 711B| 0 0 | 69k 92k|51.8G 136M 67.3G 609M|3.59 8.37 8.50 18-09 07:31:39| 6 1 89 4 0 0|8872k 164M| 222B 600B| 0 0 | 60k 83k|51.9G 136M 67.3G 577M|3.38 8.25 8.46 18-09 07:31:44| 7 1 88 4 0 0|9477k 147M| 276B 1082B| 0 0 | 59k 83k|51.9G 136M 67.2G 577M|3.11 8.11 8.42 18-09 07:31:49| 7 1 88 4 0 0|8838k 145M| 324B 380B| 0 0 | 64k 88k|51.9G 136M 67.2G 566M|2.94 7.99 8.38 18-09 07:31:54| 7 1 88 4 0 0|9045k 145M| 534B 690B| 0 0 | 65k 89k|51.9G 136M 67.2G 569M|2.79 7.88 8.34 18-09 07:31:59| 8 1 87 4 0 0|9562k 152M| 414B 524B| 0 0 | 68k 95k|52.0G 136M 67.1G 607M|2.81 7.79 8.31 18-09 07:32:04| 7 1 88 4 0 0|8458k 154M| 324B 1376B| 0 0 | 68k 93k|52.0G 136M 67.1G 625M|2.74 7.70 8.28 18-09 07:32:09| 8 2 86 4 0 0|9323k 149M| 192B 1059B| 0 0 | 71k 99k|52.0G 136M 67.1G 584M|2.60 7.59 8.24 18-09 07:32:14| 6 1 88 4 0 0| 10M 179M| 462B 526B| 0 0 | 67k 91k|52.0G 136M 67.1G 572M|2.47 7.48 8.20 ### ここでSET GLOBAL 18-09 07:32:19| 7 1 87 4 0 0| 11M 149M| 78B 83B| 0 0 | 73k 98k|52.1G 136M 67.0G 591M|2.35 7.37 8.16 18-09 07:32:24| 2 0 94 3 0 0|3083k 122M| 246B 370B| 0 0 | 68k 78k|52.1G 136M 67.1G 570M|2.33 7.28 8.13 18-09 07:32:29| 1 0 95 3 0 0|2534k 116M| 210B 257B| 0 0 | 68k 76k|52.1G 136M 67.0G 616M|2.22 7.18 8.09 18-09 07:32:34| 1 0 95 3 0 0|3034k 115M| 108B 65B| 0 0 | 64k 72k|52.1G 136M 67.0G 596M|2.12 7.07 8.05 18-09 07:32:39| 1 0 95 3 0 0|2546k 121M| 450B 1102B| 0 0 | 66k 74k|52.1G 136M 67.1G 579M|2.03 6.97 8.01 18-09 07:32:44| 1 0 95 3 0 0|2746k 118M| 54B 22B| 0 0 | 68k 76k|52.1G 136M 67.0G 632M|1.95 6.87 7.97 18-09 07:32:49| 1 0 95 3 0 0|2560k 122M| 0 0 | 0 0 | 64k 72k|52.1G 136M 67.0G 616M|1.87 6.78 7.9 .. 18-09 07:41:09| 1 1 93 5 0 0|6458k 302M| 60B 610B| 0 0 | 11k 16k|52.1G 134M 67.1G 580M|1.88 3.00 5.51 18-09 07:41:14| 1 1 94 4 0 0|5389k 299M| 72B 559B| 0 0 | 12k 16k|52.1G 134M 67.1G 566M|1.81 2.97 5.49 18-09 07:41:19| 1 1 94 4 0 0|5843k 299M| 60B 544B| 0 0 | 13k 17k|52.1G 134M 67.1G 571M|1.90 2.97 5.47 18-09 07:41:24| 1 1 94 4 0 0|5178k 312M| 60B 544B| 0 0 | 13k 18k|52.1G 134M 67.1G 576M|1.91 2.95 5.45 18-09 07:41:29| 1 5 94 1 0 0|1595k 42M| 60B 554B| 0 0 |2307 2665 |17.3G 134M 67.1G 35.3G|2.08 2.97 5.45 18-09 07:41:34| 1 1 97 1 0 0|7552k 66M| 60B 548B| 0 0 |2987 3801 |9.81G 134M 67.1G 42.8G|1.99 2.94 5.42 ### ここでCompleted resizing buffer pool 18-09 07:41:39| 0 0 99 0 0 0| 10M 14M| 60B 554B| 0 0 |1004 1337 |9.81G 134M 67.1G 42.8G|1.83 2.89 5.39 18-09 07:41:44| 0 0 99 0 0 0| 10M 14M| 60B 554B| 0 0 |1023 1352 |9.81G 134M 67.2G 42.7G|1.69 2.84 5.36 18-09 07:41:49| 0 0 99 0 0 0|8557k 14M| 60B 554B| 0 0 | 932 1250 |9.81G 134M 67.2G 42.7G|1.55 2.79 5.33 18-09 07:41:54| 0 0 99 0 0 0|9382k 14M| 60B 554B| 0 0 | 950 1275 |9.81G 134M 67.2G 42.7G|1.43 2.75 5.31 18-09 07:41:59| 0 0 99 0 0 0|8710k 13M| 60B 554B| 0 0 | 942 1257 |9.81G 134M 67.2G 42.7G|1.31 2.70 5.28 18-09 07:42:04| 0 0 99 0 0 0|9101k 14M| 60B 554B| 0 0 | 986 1297 |9.81G 134M 67.3G 42.6G|1.21 2.66 5.25 18-09 07:42:09| 0 0 99 0 0 0|8640k 15M| 60B 607B| 0 0 |1243 1673 |9.81G 134M 67.3G 42.6G|1.11 2.61 5.22
* ストレージへのWriteがゴリゴリ走るのは、バッファプールの縮小はつまるところバッファプールからページがこぼれるのと同じ動作になのでflushが頻発する
* 最終的なfreeは当然バッファプールリサイズが全て終わったあと。
* Last checkpointed atの値から1GBくらい引き離されたところでやってみたけど一応吸収してくれてるぽい。
ある意味想定内だったアレとしては、
* innodb_buffer_pool_instances= 1で(でないとinnodb_buffer_pool_sizeを1GB未満にできないから)
* innodb_log_file_size= 2Gで
* innodb_buffer_pool_size= 80Gから
* innodb_buffer_pool_size= 256Mに変更したら
ハングアップ!
ご利用は計画的にってことですねわかりますん :)
0 件のコメント :
コメントを投稿