目前,每个页面请求使用 5/6 AJAX 请求来返回页面的各个部分,并且是相当 mySQL 密集型的。在圣诞节之前,我们的流量将缓慢增加。我们会看到使用 keep alive 的任何好处吗?
2 回答
你说的是多少流量?如果您打算使用 Keep-alive,那么您可能希望确保您有足够的内存并将 Keep-alive 超时降低到可能的最低值,否则如果您最终获得大量流量,它可能会伤害您。流量过多的站点通常禁用保持活动。
也看看并阅读现代时代的http keep-alive
我在http://www.webpagetest.org/result/121008_TX_KB9/上对您的页面进行了报告
至于您的 AJAX 调用,无论您是否使用 keep-alive,我都会对其进行改进。我会缓存响应。例如,在您运行 mysql 查询并生成输出后,将其缓存到磁盘几个小时(如果可能,则更长),然后在后续调用中从磁盘中提取尚未过期的数据。这将节省一堆并加快整体速度。
另外,如果您担心速度,我会为您的很多图像资源使用图像精灵。我注意到您的一些图像是占位符并且是 100% 透明的,请考虑仅对这些图像使用 css。这将大大减少您的整体要求。
我还将启用 mod_expires 并添加一些 Expires 标头。有关使用这些和更多良好实践功能的示例 htaccess 文件,请查看: https ://github.com/h5bp/html5-boilerplate/blob/master/dist/.htaccess
编辑
Jeepstone,我建议您不要启用 keep-alive,并且可能使用 CDN 并并行化您的资源。您可能还想查看您的数据库配置。例如 MySQL 的最大连接数较低,您可能希望优化慢查询、连接超时并确保不使用任何持久连接。
此外,如果您真的关心您的网络堆栈的状态,您可以立即对其进行测试,而不是在有更多真实客户敲门时找出问题所在。我说的是压力/负载测试。
大型站点存在两个大问题:并发连接和延迟。看看你的圣诞节数字,我不认为你的网站很大。因此,我不会看到使用 Keep-Alive 有很大的好处。启用 Keep-Alive 可能会增加无用的空闲连接数。
我会走负载测试您的网站的路线,看看最大的瓶颈是什么并修复它。通过找到最大的瓶颈进行迭代并改进。您可能会在您的实例中发现数据库是罪魁祸首。那里有免费或半免费的负载测试工具:VS Test Suite 为 MSDN 订阅者免费提供多达 250 个虚拟真实并发用户,这超出了您的需要。