MYSQLのメモリ消費を設定1行で半減させた

※記事内に商品プロモーションを含む場合があります

9月始めより移行した現VPS。
サーバ監視用スクリプトも導入して、サーバの状況を時々見ています。
【関連】サーバのモニタリンクと異常通知用PHPスクリプトを作った

最近、メモリ使用率が何故か高いので、
ps auxで見てみたらMySQLの使用率が高めでした。

高いと言っても全体では40%ぐらいです。

しかし、WordPessのPHP処理が立て続けに入るとメモリを消費するので
なるべく空き容量を開けてお必要があります。

そこで、いろいろ調べたらmy.cnfに1行追加するだけで
使用量が半減したので紹介します。

my.cnfへ設定1行で追加でメモリ使用が半減

mysqlのメモリ使用率の比較、table_definition_cache設定前と後

設定前がメモリ使用率16%。

設定はすでにしてあるのでsystemctl restart mysql.serviceで再起動させます。

その後確認すると使用率は3.8%まで減りました。

サーバ全体で見ても40%近いメモリ使用率が20%近くまで落ちました。

Mysqlにtable_definition_cache設定・反映後のメモリ使用率の減少

設定した内容

参考にしたサイト
【参考】mysql5.6 メモリ使用量を減らす。
【参考】MySQL5.6がメモリを沢山お召し上がりになる件

ちなみに、現在のVPSのMySQLバージョンは 5.6でした。
設定を行う際は、自己責任でお願いします。

設定はMySQLの設定ファイルであるmy.cnfを編集します。
ファイルの場所は私の環境では/etc/my.cnfでした。

編集はローカルに落とすのも面倒なのでviで行いました。
【関連】これだけ覚えておけば、何とかなるViエディタのコマンド5選

設定した内容はこちら
table_definition_cache=400

この設定は、キャッシュに保存できるテーブル定期数との事。
5.6にはバグがあるらしく、メモリ使用量が多い場合はこの設定が有効な様です。