$ cat /var/log/mysql/error.log 171215 7:30:07 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead. 171215 7:30:07 [Note] Plugin 'FEDERATED' is disabled. 171215 7:30:07 InnoDB: The InnoDB memory heap is disabled 171215 7:30:07 InnoDB: Mutexes and rw_locks use GCC atomic builtins 171215 7:30:07 InnoDB: Compressed tables use zlib 1.2.8 171215 7:30:07 InnoDB: Using Linux native AIO 171215 7:30:07 InnoDB: Initializing buffer pool, size = 128.0M InnoDB: mmap(137363456 bytes) failed; errno 12 171215 7:30:07 InnoDB: Completed initialization of buffer pool 171215 7:30:07 InnoDB: Fatal error: cannot allocate memory for the buffer pool 171215 7:30:07 [ERROR] Plugin 'InnoDB' init function returned error. 171215 7:30:07 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed. 171215 7:30:07 [ERROR] Unknown/unsupported storage engine: InnoDB 171215 7:30:07 [ERROR] Aborting 171215 7:30:07 [Note] /usr/sbin/mysqld: Shutdown complete
MySQLのエンジンであるInnoDBで何か問題が発生し、リカバーしようと試みたけれどもメモリを確保出来ず死んだようです。解決策として手っ取り早いのはVMのメモリを増やすこと。vmタイプを「g1-small(vCPU x 1、メモリ 1.7 GB)」に設定したら落ちなくなりました。
が、小さいフットプリントで動かしてみたいので簡単にチューニングしてみることに。
不要データの削除
<a href=”https://wordpress.org/plugins/wp-optimize/”>WP-Optimizeプラグイン</a>を使うと、投稿の古いリビジョンやスパム投稿などをまとめて削除してDBをクリーンアップできます。古いリビジョンやスパム投稿がDBのメモリ上に乗ることがあるのかどうかはわからないけど・・・。
消したいものを選択して”Run all selected optimizations”を押すだけ。
MySQLをチューニング
たぶん128MBとか必要ないので、メモリ確保量を減らします。
参考にしたサイト:
MySQL最低限のメモリ設定 – Qiita
MySQL のキャッシュサイズ変更で高速化
GCPでMySQLの設定は/etc/mysql/my.cnfに書かれており、また/etc/mysql/conf.d/ディレクトリ内に.cnfという拡張子がついているファイルで設定を上書きしてくれるみたい。
/etc/mysql/my.cnfより抜粋:
# # * IMPORTANT: Additional settings that can override those from this file! # The files must end with '.cnf', otherwise they'll be ignored. # !includedir /etc/mysql/conf.d/
innodb_buffer_pool_sizeとinnodb_log_file_sizeを指定している箇所はどうも見当たらなかったけど、
/etc/mysql/conf.d/yusuke.cnf というファイルを作って明示的に指定してみました
innodb_buffer_pool_size = 32M innodb_log_file_size = 8M
f1-micro(vCPU x 1、メモリ 0.6 GB)のインスタンスで起動直後のメモリ使用量はこんな感じ。
$ free total used free shared buffers cached Mem: 608676 405508 203168 41568 15708 149872 -/+ buffers/cache: 239928 368748 Swap: 0 0 0
これでちょっと様子を見てみます。
Comments are closed.