我应该安装什么/做什么来“加速”我的网站?

我应该安装什么/做什么来“加速”我的网站?

我已经在生产环境中部署了一个网站,但是它有点慢,你知道加载页面需要太多时间。

我应该安装什么来“加速”我的网站?我会安装 APC,但我还应该做些什么?

答案1

你的问题太宽泛了!关于这个话题的书已经很多了,所以别指望我能回答得非常透彻。不管怎样,我会尽量涵盖一些话题。

优化数据库

我猜你的网站正在使用某种数据库。优化它。确保你的数据库服务器运行良好,负载不重。确保索引位于预期的位置。如果可能,确保查询缓存到位。确保已针对你的工作负载正确调整了数据库。

优化代码

如果您的代码在每次页面加载时执行 100 个 SQL 查询并且不缓存任何内容,那么不要指望您的页面会很快。如果您的代码在每次页面加载时从大图像生成缩略图,那么不要指望您的代码会很快。如果您的代码在每次页面加载时解析大型 XML 文件(例如 RSS 提要),那么不要指望您的代码会很快。如果您的代码在每次页面加载时加载数十个未使用的模块,那么您的网站可能会很慢。

分析代码

如果您无法找到瓶颈,请尝试使用 XDebug 和 KCachegrind 分析您的代码。这两个工具会向您显示您的代码花费最多时间的地方。

确保您的 Web 服务器正常

如果您的 Web 服务器始终处于极限状态(CPU 接近最大使用率、内存使用率飙升、其他某些东西接近极限),即使经过了所有优化,也请升级硬件。使用 snmp+mrtg、Cacti 或您选择的其他工具绘制服务器图表,以便您可以查看趋势,并在为时已晚之前获取新硬件或其他任何东西。

有一个测试环境

查看您目前拥有的用户数量以及未来预期的用户数量。尝试在测试环境中修改站点设置(代码、数据库、Web 服务器等),然后对其进行基准测试。重复进行,直到获得满意的结果。许多站点在只有少数用户的情况下运行良好,但在接触到更多受众后,速度开始变慢。

答案2

您不应该安装任何东西来“加速”。想想您的应用程序的设计。为什么需要这么长时间?计算了什么?它依赖于数据库吗?您是否为大量读取设计了数据库?

答案3

在开始考虑优化之前,您需要找出瓶颈所在。检查所有机器上的 CPU 负载、内存使用情况、网络负载和磁盘负载。然后尝试隔离流程不同部分所花费的时间——对数据库执行查询所花费的时间、应用程序生成页面所花费的时间、浏览器下载和呈现内容所花费的时间等等。这将为您提供一些线索,让您了解应该优化哪些领域。

相关内容