VPS上のMySQLのチューニング。
少し前からABLENETのVPSサービスを借りて、手持ちのウェブサイトの運用をその上で行うように切り替えています。
ABLENET® VPS|高速SSD対応・即日試用可・WindowsServerも選べる格安VPS
しかしどうもmysqldが定期的に黙り込んでしまう現象が起きていたのですが、調査が面倒で気づくたびに再起動掛けていたのですが「さすがにその運用はどうよ?」といわれてしまったのでログ調査。
Fatal error: cannot allocate memory for the buffer pool
というエラーが出ていて調べてみるとどうやらメモリ不足になっている様子。VPSだとメモリ量がサーバとしては極端に少ない(512MBとか)ので、MySQLのデフォルト設定値を下回ってしまったようです。そりゃ落ちるわな。
というわけで以下のページを参考に /etc/my.cnf に適当にメモリ関連の設定を追加して再起動。これでしばらく様子を見てみます。
[mysqld]
innodb_buffer_pool_size=400M
innodb_additional_mem_pool_size=20M
sort_buffer_size=2M
read_rnd_buffer_size=512K
join_buffer_size=256K
read_buffer_size=1M
key_buffer_size=64M