小空间VPS安装Apache和MariaDB (MySQL)内存不够的问题

我的是Linode 1G空间的VPS,CentOS 7系统。上面目前安装了SS、Web(Apache)、MariaDb(MySQL)、PHP、Wordpress等服务。前两天在安装一个WP插件时,突然发现WP提示连接不上数据库。还以为是插件把WP弄掉了,看了一下日志,发现MySQL down了。

所以ssh上去,systemctl start mariadb.service,没成功,查看其log,发现InnoDB out of memory字样的提示。

free -h看了一下内存,发现只有几十MB内存可用,怪不得网页打开也慢的可怜。而MySQL默认要128MB的内存。

放狗找了一翻,有网页建议在 /etc/my.cnf 里的[mysqld]下面增加:

performance_schema=0

把performance方案关闭掉。

照做,重启,但问题仍然没有解决,MySQL无法启动。

通过top命令看了进程的内存使用情况,发现其中有很多个Apache进程,吃掉了很多内存。

因此修改了一下httpd.conf,将原Linode推荐的大数字改小,如下:

$vi /etc/httpd/conf/httpd.conf

<IfModule prefork.c>

StartServers 4

MinSpareServers 5

MaxSpareServers 6

MaxClients 100

MaxRequestsPerChild 1500

</IfModule>

重启Apache(systemctl reload httpd),再free -h,发现内存有500多可用了。再重启MySQL,发现问题消除。

总结:

  1. 在 /etc/my.cnf 里的[mysqld]下面增加:performance_schema=0
  2. 修改了一下httpd.conf,减少Apache启动的Server数
  3. 重启Apache,重启MariaDb/MySQL

Leave a Reply

Your email address will not be published. Required fields are marked *