wordpress搭建的网站,xianganyu.com用的是一个超级简单的主题,阿里的免费虚机,纯粹的文字内容,几乎没有插件。flytofilm.com用的是正版begin主题,插件尽可能少,最近连seo插件都没用了,但是依旧经常宕机,动不动提示数据库连接错误,重启立刻恢复。看了看,内存占用一直在90%以上,所以怀疑是主题功能太多,占用内存高,导致mysql挂掉。几乎一天挂一次了。
目前反而免费虚机稳定,不过一被攻击就停机4小时实在受不了,不过反正就是放自己文字,没什么别的用处,也没想要人访问,所以无所谓了。flytofilm.com飞向电影还是希望能有些访问的,但是一直经常性的出现mysql挂掉的问题,自己网站运维确实是小白,心碎。
关于ECS上搭建wordpress网站,mysql挂掉的问题,网上好多建议用阿里云RDS,但是价格太高,目前低配一年就1000多,比ECS价格贵得多。对于一个没收入的个人小站来说,没必要投这个钱。也有建议升级内存的,但是我不确定是不是确实就仅仅是内存问题,留待观察,有必要的话倒是可以升级一下。
问度娘了之后,做了些修改。
一:通过修改WordPress自身文件修改放宽内存限制(如果你也是由于使用过多插件造成该问题的,建议使用此方法)
只要打开WordPress根目录wp-includes文件夹下default-constants.php文件,搜索“set memory limits”找到如下代码
// set memory limits
if ( !defined('WP_MEMORY_LIMIT') ) {
if( is_multisite() ) {
define('WP_MEMORY_LIMIT', '64M');
} else {
define('WP_MEMORY_LIMIT', ‘40M');
}
}
if ( ! defined( 'WP_MAX_MEMORY_LIMIT' ) ) {
define( 'WP_MAX_MEMORY_LIMIT', '256M' );
}
然后把define(‘WP_MEMORY_LIMIT’, ‘40M’);32M这个默认值修改为更大一些的值,我把它修改为512M!
二:修改php-fpm.conf的pm.start_servers、pm.min_spare_servers、pm.max_spare_servers等项
据说问题出在PHP-CGI会释放内存,但并不会把内存归还系统,所以当过多的PHP-FPM子进程存在时,内存就会一点点被吃干,最终导致溢出。
php-fpm.conf文件在/alidata/server/php/etc里,找到并做了几项修改:
打开编辑这个文件,可以通过FTP或者LINUX命令行进行修改。主要涉及几个参数。
pm 这个是设置运行方式的,分别是static(静态)或者dynamic(动态)
默认应该是在214行左右,显示为?pm = dynamic,意思就是动态方式,如果内存小,比如512M,1G,2G之类,建议使用动态。
pm.max_children:静态方式下开启的php-fpm进程数量,这个是有在pm模式为static的情况下生效。
pm.start_servers:动态方式下的起始php-fpm进程数量,这个是pm位dynamic模式下需要设置的参数,意思就是启动运行时建立的起始php-fpm进程数量,默认20,暂时改成pm.start_servers =?3
pm.min_spare_servers:动态方式下的最小php-fpm进程数,默认5,暂时改成pm.min_spare_servers =?3
pm.max_spare_servers:动态方式下的最大php-fpm进程数量,默认60,暂时改成pm.max_spare_servers =?10
pm.max_requests:接受多少次请求后自动重启进程的,默认是500,暂时改成pm.max_requests = 200
重启后睡觉了(呃,太晚了),第二天看了下云监控,内存占用从98%,降到了54%.
目前就改了这两处,留待观察。