我们的新应用程序今天受到了很多媒体关注,并且每小时都会吸引数千名新用户......但它的运行速度变得太慢,无法使用。
我们正在使用修补了最新版的 Rails 3、ubuntu、Unicorn、nginx、postgresql 和 memcache。
我已经添加了 8 台新服务器,但几乎没有什么变化。我还尝试将 nginx 的 keepalive 值设置为 1。除了添加更多服务器之外,我不知道该怎么做才能缩短响应时间。每台服务器运行 10 个 unicorn 工作器。问题似乎是每台服务器上的请求队列太长了。我可能错了,我不太确定是什么原因造成的,我只知道昨天它在当前负载的 2% 下运行正常。
任何帮助是极大的赞赏
答案1
当应用程序遭遇重创时,短期内通常只有一件事可做。投入资金解决问题。也称为继续添加服务器。
从中期角度调整并修改设置。
从长远来看,修复所有以前不需要修复的糟糕代码。是时候偿还技术债务了。
答案2
如果您的应用程序已经正确地执行了缓存标头(即,经常访问但很少更新的动态页面会获得缓存标头),那么将 Varnish 粘贴在 Web 服务器前面可以产生奇效。
(在我的一个网站上,我们的性能提升了约 10 倍,因为 90% 的网站访问者都是只读的,他们不介意看到 10 分钟前的动态页面缓存版本)