在白嫖的AWS(Amazon Linux 2,单核,1G内存,30G硬盘)安装Wordpress之后,主页经常出现数据库链接错误:Error Establishing a Database Connection。一看是mariadb挂掉了,重启之后可以解决。查看日志发现是内存不足所致,通过 free -m查看系统只有1G内存,而且快用完了,于是给系统增加了SWAP,并做了一些优化,目前工作比较正常。大部分命令都需要sudo,这里就不专门指出了。
一、增加SWAP
创建 swapfile,大小一般为物理内存的两倍:
dd if=/dev/zero of=/swapfile bs=1M count=2048
配置 swap 文件:
mkswap /swapfile
设置正确的权限类型:
chmod 600 /swapfile
启用 swapfile:
swapon /swapfile
在 /etc/fstab 中添加下面一行,这样可以在系统下次重启时自动生效创建的 swapfile:
/swapfile swap swap defaults 0 0
二、修改mysql配置
在/etc/my.cnf增加下面一行,将InnoDB缓存改成32M(默认128M):
innodb_buffer_pool_size=32M
可以登录mariadb后用SQL查看当前配置:
SELECT @@innodb_buffer_pool_size/1024/1024;
三、利用crontab守护Mariadb
使用crontab -e
命令在crontab添加一行计划任务(拷贝下面的命令到末尾保存即可):每分钟对Mariadb进程进行检查,若进程不存在则重新启动数据库服务:
*/1 * * * * if [ -z `ps -ef|grep mariadb|grep -v grep|awk '{print $2}'` ];then systemctl start mariadb;fi
重载crontab使配置生效:
systemctl reload crond.service
开机自启crontab,编辑/etc/rc.d/rc.local文件,在末尾添加以下内容并保存即可:
systemctl start crond.service
四、优化php-fpm
修改/etc/php-fpm.d/www.conf里的下列配置:
pm = dynamic
pm.max_children = 15
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 15