HTTP在AJAX站点上保持活力的好处

HTTP在AJAX站点上保持活力的好处,ajax,keep-alive,Ajax,Keep Alive,我们有一个相当重的AJAX站点 目前,每个页面请求都使用5/6 AJAX请求返回页面的各个部分,并且相当密集。到圣诞节之前,我们的交通量将缓慢增加。我们会看到使用keep alive有什么好处吗?你说的流量是多少?如果您计划使用Keep-alive,那么您可能希望确保有足够的内存,并将Keep-alive超时降低到尽可能低的水平,否则如果您最终获得大量流量,可能会对您造成伤害。流量过大的站点通常已禁用保持活动 也可以看一看并阅读 我在你的网页上写了一份报告 至于AJAX调用,无论是否使用kee

我们有一个相当重的AJAX站点


目前,每个页面请求都使用5/6 AJAX请求返回页面的各个部分,并且相当密集。到圣诞节之前,我们的交通量将缓慢增加。我们会看到使用keep alive有什么好处吗?

你说的流量是多少?如果您计划使用Keep-alive,那么您可能希望确保有足够的内存,并将Keep-alive超时降低到尽可能低的水平,否则如果您最终获得大量流量,可能会对您造成伤害。流量过大的站点通常已禁用保持活动

也可以看一看并阅读

我在你的网页上写了一份报告

至于AJAX调用,无论是否使用keep-alive,我都会改进这些调用。我会把回应缓存起来。例如,在运行mysql查询并生成输出后,将其缓存到磁盘上几个小时(如果可能的话,可以更长时间),然后在后续调用中,如果数据尚未过期,则从磁盘中提取数据。这将节省大量资金,并从整体上加快速度

另外,如果您关心速度,我会使用图像精灵来获取大量图像资源。我注意到你的一些图片是占位符,100%是透明的,只考虑使用CSS。这将大大减少您的总体请求

我还将启用mod_expires并添加一些expires头。有关使用这些和更多良好实践功能的htaccess文件示例,请参见:

编辑

Jeepstone,我建议您不要启用keep alive,可能需要使用CDN和您的资源。您可能还需要查看数据库配置。例如,MySQL的最大连接数较低,您可能希望优化慢速查询、连接超时,并确保不使用任何持久连接

另外,如果你真的关心你的网络堆栈的状态,你可以马上测试它,而不是在有更多真正的客户敲门的时候发现问题。我说的是压力/负载测试

  • 退房
  • 也许

大型站点存在两大问题:并发连接和延迟。 看看你的圣诞数字,我不认为你的网站很大。因此,我看不到使用Keep Alive有多大好处。启用Keep Alive可能会增加空闲连接的数量,但这并没有帮助


我会对你的网站进行负载测试,看看最大的瓶颈是什么,然后修复它。通过找到最大的瓶颈进行迭代并改进。在您的实例中,您可能会发现数据库是罪魁祸首。有免费或半免费的测试工具:VS测试套件为MSDN订户免费提供多达250个虚拟现实并发用户,这超出了您的需要。

当前流量约为每天250个用户,但在圣诞节之前,这将稳步增加到每天1000个。每月的带宽约为6gb,在圣诞节期间增加到20gb左右。很难缓存它们,因为当有大量预订时,它们可以快速缓存。我们目前最大的问题是MaxClient。服务器电源有点不足,我们的ram最大容量为8gb。我们目前正在考虑我们的选项,但希望尽可能地改进网站。@Jeepstone我在上面添加了一个编辑,因为它不适合放在评论框中。谢谢Anthony,我能问一下为什么你不根据你所看到的内容推荐keepalive吗?我认为MySQL查询可能需要一些调整。找到一种方法使您的响应可缓存,然后您可以单独处理缓存(在客户端、反向代理或CDN上缓存)。但让它们可缓存是第一步。@Jeepstone我建议您不要使用它,因为您当前有内存问题,并且您的机箱电源不足。使用keepalive,您可能会将活动连接数增加到原来的四倍,从而增加apache所需的ram。如果您使用php而不是FastCGI,这一点更为正确。如果您使用FastCGI,则可以降低连接的每个php/apache线程的内存占用。David Roussel的建议也是一个很好的建议,从提高缓存能力开始。你还可以看看使用Chrome PageSpeed等工具,找出可以改进的地方。PageSpeed建议的一个“快速胜利”是为您拥有的~25个静态服务对象设置至少7天的缓存到期日。