mysql5.6でやたらメモリを使用するため、取り急ぎ対応した
事象
なぜかmysqlのプロセスが450MBのメモリを使用していた。
# ps alx | grep mysql | awk '{printf ("%d\t%s\n", $8,$13)}' 1400 /bin/sh 452404 /usr/local/mysql/bin/mysqld 916 grep
調査、検証
そのため、ちょいと調査。
下記にバグ?っぽいこと、あと対処方法が書いてあるので、実施。
http://bugs.mysql.com/bug.php?id=68980
設定変更対象は、mysqlパラメータの「table_definition_cache」
定義キャッシュに保存できるテーブル定義数。テーブル数が多い場合は増やす。
しかし、wordpressくらいしか運用していないので、減らしてみる。
mysql> show variables like 'table_definition_cache'; +------------------------+-------+ | Variable_name | Value | +------------------------+-------+ | table_definition_cache | 1400 | +------------------------+-------+ # vi /etc/my.cnf + table_definition_cache=400 mysql> show variables like 'table_definition_cache'; +------------------------+-------+ | Variable_name | Value | +------------------------+-------+ | table_definition_cache | 400 | +------------------------+-------+
再起動
# /etc/init.d/mysqld restart mysqld を停止中: [ OK ] mysqld を起動中: [ OK ]
結果
メモリ量の確認。92MBまで減っていた。
# ps alx | grep mysql | awk '{printf ("%d\t%s\n", $8,$13)}' 1400 /bin/sh 92224 /usr/local/mysql/bin/mysqld 916 grep
無駄にキャッシュされていたのかな。
もう少し、チューニングが必要やな。
以上。