Search

mysql5.6 メモリ使用量を減らす。

2015年10月19日

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

無駄にキャッシュされていたのかな。

もう少し、チューニングが必要やな。

以上。