最近给我们另一个网站迁移到了腾讯云轻量服务器中,主要原因还是为了节省成本,但是腾讯云的轻量云服务器好像和vultr的云服务器性能不一样,同样都是2核4G的配置,承载能力要弱很多,动不动mysql服务就宕了。在vultr的云服务器中一次也没有出现过宕机。(相同配置,相同的环境,同一个网站服务)
mysql服务停止无非是内存或cpu跑满了,看了腾讯云后台的服务器监控图表
宕机前cpu使用率达到了100%
宕机前内存的使用率达到了100%
解决方法:
增加swap虚拟内存
先设置服务器swap虚拟内存,增加服务器稳定性,建议swap容量在真实内存容量的1.5倍左右,若您的服务器内存大于4GB,可设1-2GB的固定值。 我是直接设置的和我的真实内存一样大小。注意swap文件默认保存在/www/swap,设置前请确保磁盘空间够用。ssd的硬盘效果更佳!
开启memcached缓存器
然后再设置启用Memcached缓存器 ,Memcached 是一个高性能的分布式内存对象缓存系统。要想使用Memcached 需要先安装Memcached 并且还要Memcached 的php扩展。
详细安装教程请看这个:Linux Memcached 安装 | 菜鸟教程 (runoob.com)
我服务器使用的是宝塔面板,安装就更简单了,只需要打开php设置里面的“安装扩展” 就可以安装Memcached 的php扩展了,他还会自带帮你把Memcached 服务安装完毕。无需任何额外操作!
建议把 opcache
这个扩展也安装上,配合使用效果更佳!
然后还需要在wordpress网站的 wp-content 目录放入一个object-cache.php 文件才可以。object-cache.php 建议使用下面的这个开源程序:
wordpress-pecl-memcached-object-cache: https://github.com/tollmanz/wordpress-pecl-memcached-object-cache
下载上门github项目中的代码,将其中的 object-cache.php 文件上传到网站的 wp-content 目录下,即可完成安装。目前不需要额外设置。
测试WordPress缓存设置是否正常:
<?php
$key = 'zpl';
$value = 'zhuangpenglong.com';
$dummy_value = wp_cache_get( $key );
if ( $value !== $dummy_value ) {
echo "没有找到缓存。现在添加这个缓存项。";
wp_cache_set( $key, $value );
} else {
echo "得到缓存结果: " . $dummy_value . "。 这证明 WordPress Memcached 正在工作";
}
把上面这些代码,添加到你现在正在使用的主题目录中的 function.php 文件中,然后重新加载 WordPress 网站两次。在第二次加载时,您应该会看到下面的一串字符出现在网站顶部
得到缓存结果: zhuangpenglong.com。 这证明 WordPress Memcached 正在工作