Wordpress 在 VPS 时非常慢
Wordpress extremely slow at VPS
最近一位客户在 1&1 购买了 VPS,我将 Worpress 网站从旧的共享主机 (Bluehost) 移至新的 VPS。该网站 非常慢 我不知道如何解决这个问题,如果我应该在 Apache 中优化某些东西,如果我应该安装一些插件来避免这个或其他什么,我不知道如何解决这个问题所以我需要一些建议。关于该 WP 的一些数据:
- 数据库拥有大约 35k 个帖子
- 我已禁用 W3C Total Cache 插件,因为我认为它配置不当并且会减慢网站速度
- 我没有使用任何像
thimbthumb
这样的图像压缩器(这是最初安装的,但出于安全原因我从网站上删除了)
- VPS 有两个内核和 4GB 内存,它是 运行 Centos、PHP 5.3.3、MySQL 5.5.x 和 Apache 2.2.15
可以给我一些想法吗?建议?经验?不知道还能做什么或如何解决这个问题,我的知识还没有到此为止。
注意:该站点this自己测试一下,速度有多慢
执行测试:
为了找到我启用的瓶颈:
Wordpress 调试日志:
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);
@ini_set('display_errors',0);
这会记录大部分时间这样的错误 [13-Feb-2015 12:01:46] PHP Notice: Undefined property: stdClass::$category_parent in /var/www/vhosts/elclarinweb.com/httpdocs/sistema/wp-content/themes/elclarin_v2/functions.php on line 136
MySQL 日志:mysql.log
、mysqld.log
和 mysqld_slow.log
对于 mysql.log
,我注意到大量访问,对于 mysqld_slow.log
,我注意到以下输出:
SET timestamp=1423830131;
SELECT option_name, option_value FROM wp_options WHERE autoload = 'yes';
# User@Host: elclarin_us[elclarin_us] @ localhost []
# Query_time: 0.001520 Lock_time: 0.000043 Rows_sent: 227 Rows_examined: 261
SET timestamp=1423830131;
SELECT option_name, option_value FROM wp_options WHERE autoload = 'yes';
# Time: 150213 13:22:14
# User@Host: elclarin_us[elclarin_us] @ localhost []
# Query_time: 0.003051 Lock_time: 0.000097 Rows_sent: 227 Rows_examined: 261
SET timestamp=1423830134;
SELECT option_name, option_value FROM wp_options WHERE autoload = 'yes';
# User@Host: elclarin_us[elclarin_us] @ localhost []
# Query_time: 0.003259 Lock_time: 0.000097 Rows_sent: 227 Rows_examined: 261
SET timestamp=1423830134;
SELECT option_name, option_value FROM wp_options WHERE autoload = 'yes';
# Time: 150213 13:22:15
# User@Host: elclarin_us[elclarin_us] @ localhost []
# Query_time: 0.001597 Lock_time: 0.000048 Rows_sent: 227 Rows_examined: 261
为什么一直执行同一个查询?任何 Web 服务器线程正在杀死我的 Wordpress?
看来你至少需要仔细看三方面:
- 服务器创建页面需要多长时间
- GZip 压缩
- 页面显示时加载的内容。
服务器创建您的页面需要很长时间。所有 SQL 查询都可能是原因。您将需要找出标准页面的数据库 activity。如果您能分辨出是什么导致了 activity,它将为您提供有关如何攻击它的线索。即使在 VPS.
上,WordPress 本身通常也不会那么慢
其次,您的站点未设置为使用 GZip。只需打开 GZip 即可显着减少要下载的数据量。
第三,您在上面给出的 link 页面发出了 168 个不同的 HTTP 请求。页面显示时间如此之长也就不足为奇了。其中一些请求会阻止浏览器开始显示(呈现)页面。我建议您使用像 WebPageTest 这样的网站。它将分析您的网站并为您提供有关确切情况的详细信息。然后您可以查看每个下载的项目,看看是否有加快速度的方法。
最近一位客户在 1&1 购买了 VPS,我将 Worpress 网站从旧的共享主机 (Bluehost) 移至新的 VPS。该网站 非常慢 我不知道如何解决这个问题,如果我应该在 Apache 中优化某些东西,如果我应该安装一些插件来避免这个或其他什么,我不知道如何解决这个问题所以我需要一些建议。关于该 WP 的一些数据:
- 数据库拥有大约 35k 个帖子
- 我已禁用 W3C Total Cache 插件,因为我认为它配置不当并且会减慢网站速度
- 我没有使用任何像
thimbthumb
这样的图像压缩器(这是最初安装的,但出于安全原因我从网站上删除了) - VPS 有两个内核和 4GB 内存,它是 运行 Centos、PHP 5.3.3、MySQL 5.5.x 和 Apache 2.2.15
可以给我一些想法吗?建议?经验?不知道还能做什么或如何解决这个问题,我的知识还没有到此为止。
注意:该站点this自己测试一下,速度有多慢
执行测试:
为了找到我启用的瓶颈:
Wordpress 调试日志:
define('WP_DEBUG', true); define('WP_DEBUG_LOG', true); define('WP_DEBUG_DISPLAY', false); @ini_set('display_errors',0);
这会记录大部分时间这样的错误
[13-Feb-2015 12:01:46] PHP Notice: Undefined property: stdClass::$category_parent in /var/www/vhosts/elclarinweb.com/httpdocs/sistema/wp-content/themes/elclarin_v2/functions.php on line 136
MySQL 日志:
mysql.log
、mysqld.log
和mysqld_slow.log
对于 mysql.log
,我注意到大量访问,对于 mysqld_slow.log
,我注意到以下输出:
SET timestamp=1423830131;
SELECT option_name, option_value FROM wp_options WHERE autoload = 'yes';
# User@Host: elclarin_us[elclarin_us] @ localhost []
# Query_time: 0.001520 Lock_time: 0.000043 Rows_sent: 227 Rows_examined: 261
SET timestamp=1423830131;
SELECT option_name, option_value FROM wp_options WHERE autoload = 'yes';
# Time: 150213 13:22:14
# User@Host: elclarin_us[elclarin_us] @ localhost []
# Query_time: 0.003051 Lock_time: 0.000097 Rows_sent: 227 Rows_examined: 261
SET timestamp=1423830134;
SELECT option_name, option_value FROM wp_options WHERE autoload = 'yes';
# User@Host: elclarin_us[elclarin_us] @ localhost []
# Query_time: 0.003259 Lock_time: 0.000097 Rows_sent: 227 Rows_examined: 261
SET timestamp=1423830134;
SELECT option_name, option_value FROM wp_options WHERE autoload = 'yes';
# Time: 150213 13:22:15
# User@Host: elclarin_us[elclarin_us] @ localhost []
# Query_time: 0.001597 Lock_time: 0.000048 Rows_sent: 227 Rows_examined: 261
为什么一直执行同一个查询?任何 Web 服务器线程正在杀死我的 Wordpress?
看来你至少需要仔细看三方面:
- 服务器创建页面需要多长时间
- GZip 压缩
- 页面显示时加载的内容。
服务器创建您的页面需要很长时间。所有 SQL 查询都可能是原因。您将需要找出标准页面的数据库 activity。如果您能分辨出是什么导致了 activity,它将为您提供有关如何攻击它的线索。即使在 VPS.
上,WordPress 本身通常也不会那么慢其次,您的站点未设置为使用 GZip。只需打开 GZip 即可显着减少要下载的数据量。
第三,您在上面给出的 link 页面发出了 168 个不同的 HTTP 请求。页面显示时间如此之长也就不足为奇了。其中一些请求会阻止浏览器开始显示(呈现)页面。我建议您使用像 WebPageTest 这样的网站。它将分析您的网站并为您提供有关确切情况的详细信息。然后您可以查看每个下载的项目,看看是否有加快速度的方法。