
问题描述:
本以为网站开启了redis插件之后,速度会大大提升,刷新FLUSH之后结果却cpu突然爆满,没刷新前是正常的。redis并没有起到查询次数减少的基本作用。网页的速度也被服务器的负载拖累。不知道是什么问题,所以开始漫长排查相关配置或者问题。
观察redis的数据库键值对变化为非有规律的逐渐增长,而是随机变化键值对的数量,可以通过宝塔面板刷新redis查看或者参考本站相关文章。
排查经过:
问题一:(考虑到内存不足导致的问题,常规问题可以用此方法尝试)
修改wp-congif.php配置文件增加内存
define(‘WP_MEMORY_LIMIT’, ’256M’);
如果还不行 256M改成512M
结果:实际测试操作无效。
问题二:(还是考虑到内存不足导致的问题,常规问题可以用此方法尝试)
打开wp-includes目录下default-constants.php文件,找到如下代码(如果没有就新增):
// set memory limits if ( !defined(‘WP_MEMORY_LIMIT’) ) { if( is_multisite() ) { define(‘WP_MEMORY_LIMIT’, ’64M’); } else { define(‘WP_MEMORY_LIMIT’, ’32M’); } } if ( ! defined( ‘WP_MAX_MEMORY_LIMIT’ ) ) { define( ‘WP_MAX_MEMORY_LIMIT’, ‘256M’ ); } 然后把define(‘WP_MEMORY_LIMIT’, ’32M’)中的32M修改为64M,或者增大96M 128M。
问题三:(可能是由于某个插件影响的,其他人可尝试操作)
禁用插件
结果:实际测试操作无效。
问题四:(考虑到服务器本身配置不足以支撑环境的运行,其他人可尝试操作)
优化 数据库 PHP 性能
服务器内存提升
目前看2G内存不够使用,增加到4G
PHP INI 基本设置 中修改可用内存大小,原来默认可用内存是256M,修改成512M。
结果:实际测试操作无效。
问题五:(考虑到近期的WordPress版本问题,其他人可尝试操作)
WordPress版本升高或者降低
结果:实际测试操作无效。
问题六:(网站在维护菜单过程中包含大量遗留和autoload键值对)
删除原始菜单,重新新建菜单(可以新建页面打开,然后删除原始菜单,新建菜单的时候参考新建页面)
结果:有部分效果但很少。
最终问题:(wp-options表特别大,另外出现大量的menu cache)
忘记了排查问题最根本的方法就是开启DEBUG模式,开启之后重新刷新网页错误成功展示出来了。
WordPress网站前台或后台出现Fatal error: Allowed memory size of xxx bytes exhausted (tried to allocate xxx bytes) in xxx.php on line xxx的解决办法。
错误的意思是:wordpress网站程序占用主机CPU和内存资源大,主机分配的可用内存满了,用完了,需要增加可用内存。
开始排查:
查看数据库:发现wp-options表特别大,另外出现大量的menu cache。
删除缓存:删除这些cache表之后网站恢复正常(数据库注意先备份),不过继续追踪数据库,这些cache表还是继续产生!
解决方式:(目前redis的解决办法还没想到,欢迎大神评论区留言指导!)
方式一:新建个同名字的站点,将wp-option表全部导入线上表。
方式二:使用memcache来替代redis
还没有评论,来说两句吧...