Help us understand the problem. What is going on with this article?

メモリ食い過ぎてたのは、mysqlの設定が原因だった

More than 3 years have passed since last update.

ここまでの経緯

  • 仮想マシン上のWordPressが落ちるのはメモリが足りないからだ
  • httpdのプロセスが立ち上がりすぎてたので、極力増えないようにした
  • 今度はMySQLがメモリを食い過ぎてた。多分犯人はこいつだ

仮想マシンの環境

ハードウェアやミドルウェアについて、
この件に関係ありそうなもの

  • メモリ 1GByte(1024MByte)
  • Webサーバ Apache/2.2.15 (Unix)
  • MySQL 5.6.25

MySQL5.6系では、メモリ消費多すぎたので設定変更した。という
主旨の情報が多数。

table_definition_cache の設定を変更する

table_definition_cacheの設定変更だけで、以上なメモリ消費は治まった。

/etc/my.cnf に以下の記述をする。

my.cnf
[mysqld]
table_definition_cache=400

そして再起動

# servise mysqld restart

メモリ消費状況

メモリ消費量は一気に減った。

設定直後
# free
             total       used       free     shared    buffers     cached
Mem:       1020288     246544     773744         92       4744      58528
-/+ buffers/cache:     183272     837016
Swap:      2064380      12996    2051384

しばらくブラウザアクセスしてから
# free
             total       used       free     shared    buffers     cached
Mem:       1020288     693968     326320         92       8180      70088
-/+ buffers/cache:     615700     404588
Swap:      2064380      12844    2051536

メモリ使用状況

ブラウザで何度かアクセスしたのちに、各プロセスを調べる。
MySQL による消費は減った。apacheでの消費は多いけど

mysqlによる消費
# ps aux | grep mysql
mysql     2304  0.1  9.4 782832 96536 pts/0
mysqlによる消費
# ps aux | grep mysql
root      2334  0.0  0.0 107456   940 pts/0    S+   14:21   0:00 grep mysql
Apacheのメモリ消費状況
# ps aux | grep httpd
root      1697  0.0  1.1 311536 11660 ?        Ss   13:14   0:00 /usr/sbin/httpd
apache    1699  0.0  3.1 334168 32488 ?        S    13:14   0:00 /usr/sbin/httpd
apache    1700  0.0  5.1 354824 52636 ?        S    13:14   0:00 /usr/sbin/httpd
apache    1701  0.0  5.1 354844 52660 ?        S    13:14   0:00 /usr/sbin/httpd
apache    1702  0.0  5.1 354824 52636 ?        S    13:14   0:00 /usr/sbin/httpd
apache    1703  0.0  5.8 371144 59416 ?        S    13:14   0:01 /usr/sbin/httpd
apache    2009  0.0  4.0 343816 41532 ?        S    13:15   0:00 /usr/sbin/httpd
apache    2012  0.0  5.1 354808 52604 ?        S    13:15   0:00 /usr/sbin/httpd
apache    2013  0.0  5.1 354808 52600 ?        S    13:15   0:00 /usr/sbin/httpd
apache    2014  0.0  5.1 354808 52600 ?        S    13:15   0:00 /usr/sbin/httpd
apache    2015  0.0  5.1 354808 52600 ?        S    13:15   0:00 /usr/sbin/httpd
root      2336  0.0  0.0 107456   940 pts/0    S+   14:29   0:00 grep httpd

参考

MySQLでtable_definition_cacheの値を変更する

http://blog.ybbo.net/2015/12/26/change-table_definition_cache-on-mysql/

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした