jav*_*pas 15 nginx varnish wordpress php-fpm
我有一个基于 Linode 1024 VPS 的网络服务器
还有一些基于 WordPress 3.3.1 的博客。其中之一是一个简单的博客,带有默认配置、主题和“Hello World”帖子,用于测试服务器。另一个是从其他服务器克隆的博客,有近 10k 个帖子和超过 10k 条评论。这个博客每天有大约 5k 个唯一身份。
服务器在测试博客的 ab 测试上给出了很好的数字,但与克隆博客相同的测试是不可能的:ab 测试负载服务器太多,我不得不停止该过程,这无论如何使 ab 显示这真是糟糕的结果。
htop 在正常操作时也显示“正常”负载,但在 ab 测试期间显示正常的大负载。
还有一件奇怪的事情发生了(对我来说最重要):第一个字节的时间非常高,但在那之后等待网站加载速度非常快。这可以使用 tools.pingdom.com 等服务轻松测试,从而得出此结果。请注意表示“等待时间”的黄色区域。
为什么会这样?可能的想法:
如果有人需要更多信息,
cyb*_*x86 25
首先,这不是一个答案,而是一种诊断方法。
这绝不是全面的 - 甚至任何接近的东西,它只是一个起点。
到第一个字节的时间
首字节时间 (TTFB) 有许多组成部分:
当您查看 ApacheBench 输出时,您还会看到:
消除组件的比较
除了少数例外,您的问题将出在后端处理中,这通常归结为过于复杂/低效的代码,或配置不当的 MySQL。
解决这个问题的一个好方法是通过一系列的比较来消除设置的各个方面。一个好的比较应该尽可能保持不变,以帮助缩小问题的范围。目前,您提供了以下比较:
理想的测试是让您复制整个站点,然后删除除一篇文章和相关评论之外的所有内容。此测试的目的是最终确定大量内容是否是问题,或者您设置的其他方面(wordpress 插件、主题等)是否是原因。您基本上会比较相同站点在相同(新)服务器上的性能 - 加载相同页面(相同长度等) - 唯一的区别是总站点内容(例如,某些插件很可能没有随着内容的增加,可以很好地扩展)。
在不更改任何内容的情况下,您还可以进行一些其他比较:
调整你的后端
到目前为止,您应该已经找到了问题,或者得出结论,它出在您的后端。剩下的就是 Nginx、PHP 或 MySQL。
(我应该在这里提到,知道你的瓶颈是 CPU、RAM 还是 I/O 总是很方便的 - 在、、、、 等之间sar,你应该能够对此得出一些结论。)topiostatvmstatfree
nginx
Nginx 只是接受请求并提供静态内容或将请求转移到 PHP-FPM - 通常用 Nginx 优化并不多。
理想情况下,您的测试博客和克隆博客具有相同的配置,在这种情况下,您已经有效地消除了 Nginx 作为问题。
应用
如果您试图识别代码中的问题(例如慢速插件等),慢速日志就是开始的地方。
MySQL
PHP
PHP-FPM
值得注意的是,您的 htop 结果显示 php-fpm 消耗了大部分 CPU - 您的问题似乎与此直接相关。
缓存
一旦优化了每个可能的瓶颈,就开始缓存。
有时,考虑到您的应用程序和硬件的限制,您可能无法将后端性能提高那么多——然而,这就是缓存的重点——以最大限度地减少后端的使用。
进一步阅读
| 归档时间: |
|
| 查看次数: |
22197 次 |
| 最近记录: |