【发布时间】:2011-02-03 20:14:19
【问题描述】:
在我当前的项目(Rails 2.3)中,我们收集了 120 万个关键字,每个关键字都与一个登录页面相关联,该页面实际上是给定关键字的搜索结果页面。这些页面中的每一个都非常复杂,因此生成可能需要很长时间(在中等负载下最多需要 2 秒,在流量高峰期间甚至更长,使用当前硬件)。问题是这些页面 99.9% 的访问都是新访问(通过搜索引擎),所以在第一次访问时缓存它并没有多大帮助:那次访问仍然很慢,下一次访问可能几周后。
我真的很想加快这些页面的速度,但我对如何做到这一点没有太多想法。想到的几件事:
事先为所有关键字建立缓存(TTL 很长,一个月左右)。但是,构建和维护此缓存可能会非常痛苦,并且页面上的搜索结果可能已过时,甚至无法再访问;
鉴于这些数据的易变性,不要尝试缓存任何内容,而只是尝试横向扩展以跟上流量。
非常感谢您对此问题的任何反馈。
【问题讨论】:
标签: ruby-on-rails scalability performance