ここまでの経緯
- 仮想マシン上の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の値を変更する