目录
Toggle
继续分享wordpress网站维护教程。最近有个网站频繁出现数据库连接出错的问题,这个网站在我的演示服务器上一直都是正常的,但迁移到客户自己服务器后就这样了,出错后多刷新几次又可以恢复正常。
数据库链接出错一般有多种情况,悦然wordpress建站之前的网站维护相关文章已经介绍过,大家可以去阅读了解一下。因为网站多刷新几次又可以恢复正常,所以可以排除数据库配置信息的问题了。最大的可能就是服务器的性能问题或网络攻击了。
这个网站是刚刚上线,所以攻击基本可以先排除。

后来看了客户的服务器状态截图,内存和CPU的占用是偏高的,多来几个访问或进行编辑后台时,占用很容易就100%了。问题基本就在这里了。
通过上面分析,频繁出现数据库连接出错的原因主要就是服务商的性能限制,性能较差,是共享主机。最直接的方法是更换更好的服务器或wordpress主机。(购买服务器可以参考上面几个,新用户注册,价格更优惠)
不过从成本上考虑,我们最好还是先从其它方面来处理。一般可以通过缓存插件、服务器缓存Memcached/Redis来降低服务器的压力。
现在用的比较多的wordpress缓存插件是wp rocket或litespeed cache。接下来两种方式都讲一下,2选1即可。
插件安装之后把缓存和预缓存功能都打开即可。不过配置较差的虚拟主机或服务器安装wp rocket后,可能会被它的预缓存功能占用过多的性能,从而导致出现同样的问题——数据库连接出错,或者是CPU占用100%,打开非常卡。
如果出现了这种情况可以通过下面的设置来降低性能占用:
1.把下面的代码添加到主题的functions.php文件中,或者添加到wp code插件中。
function preload_batch_size( $value ) {
// change this value, default is 45 urls:
$value = 15;
return $value;
}
add_filter( 'rocket_preload_cache_pending_jobs_cron_rows_count', __NAMESPACE__ .'\preload_batch_size' );
/**
* 2) CRON INTERVAL:
* Set the desired cron interval in seconds
* By setting a higher value the server will have more time to rest between processing batches.
*/
function preload_cron_interval( $interval ) {
// change this value, default is 60 seconds:
$interval = 120;
return $interval;
}
add_filter( 'rocket_preload_pending_jobs_cron_interval', __NAMESPACE__ .'\preload_cron_interval' );
/**
* 3) DELAY BETWEEN REQUESTS:
* This is the delay between requests. A higher delay will reduce the CPU usage.
* Default is 0.5 seconds (500000 microseconds)
*/
function preload_requests_delay( $delay_between ) {
// Edit this value, change the number of seconds
$seconds = 1.2;
// finish editing
// All done, don't change this part.
$delay_between = $seconds * 1000000;
return $delay_between;
}
add_filter( 'rocket_preload_delay_between_requests', __NAMESPACE__ .'\preload_requests_delay' );
其中【interval = 120】【seconds = 1.2】数值越大,服务器压力越少,可以根据情况适当调大。
2.打开wp rocket设置。

在【心跳监测】设置中勾选【心跳控制】,下面三个选项选项都修改为【减少活动】,然后保存。
经过这两步的设置就可以减少wp rocket的性能占用了,能解决大多数问题。但是,客户的网站通过这个方面并没有解决问题,性能占用还是比较大。因为是虚拟主机,又不太好修改服务器的配置。
所以继续看下面的方法。
启用插件,应用一个缓存预设或自己设置都行。

然后打开缓存设置,在对象缓存/Object中,打开开关,下面的Memcached/Redis二选一即可,然后保存。需要注意的是,这里是否生效要看你的虚拟主机或服务器是否支持,如果不支持,就用不了。

接下来打开litespeed cache插件设置中的【Toolbox】工具箱,打开心跳控制【Heartbeat】,把里面的3个选项都打开,里面的数值默认即可,然后保存。
通过测试,客户的网站使用litespeed cache插件优化之后,数据库连接出错的问题目前看来暂时是修复了。不过后面随着流量增加,这个问题可能还会出现,到时就只能更换配置更好的主机或服务器了。
© Copyright 2024. 悦然网络工作室/悦然wordpress建站 专注中小企业wordpress建站 All Rights Reserved.网站地图
本站图片来源为Pexels、Pixabay、Freepik、Unsplash等图片库的免费许可,CC0协议;还有部分为自己手绘,版权碰瓷请自重!法律服务:law@yueranseo.com 蜀ICP备20016391号-1 川公网安备 51011502000367号