你如何加速Heroku上的rails-3.2.3资产管道

时间:2012-05-12 11:14:06

标签: ruby-on-rails deployment heroku

我注意到在Heroku上我的网站主页的css / js下载,需要一两秒或更少。我很好奇,如果你们中的一些人有相同的经历,或者我应该期待更快的回应。

http://gitwatcher.com/assets/application-61efaf20532302f93b6c79d976861884.css

GET application-61efaf...6c79d976861884.css 200 OK gitwatcher.com 19.4 KB 75.101.163.44:80  
476ms

http://gitwatcher.com/assets/application-66c036d6d06705744603507b085afdf4.js

GET application-66c036...603507b085afdf4.js 200 OK gitwatcher.com 62.7 KB 75.101.163.44:80  
1.24s

DNS响应似乎相当低,约为1.08秒。

您能否分享一下您的经验或建议?

2 个答案:

答案 0 :(得分:3)

使用asset_sync gem在部署时将资产推送到S3。理想情况下,您不希望Heroku的流程为资产提供服务,让他们处理Ruby - 在S3和/或Cloudfront等上拥有所有静态资产。

答案 1 :(得分:0)

我按照建议遵循“Using a CDN Asset Host with Rails 3.1”,但现在事情变得更糟:

CSS服务速度比之前慢3.5倍:

GET https://gitwatcher-assets.s3.amazonaws.com/assets/application-82e153501de8c4032d1565a3e8adffc1.css

200 OK
    ,
gitwatcher-assets.s3.amazonaws.com

166.2 KB

178.236.4.193:443


1.62s

虽然js需要1.7s vs 1.25:

https://gitwatcher-assets.s3.amazonaws.com/assets/application-66c036d6d06705744603507b085afdf4.js

200 OK

gitwatcher-assets.s3.amazonaws.com

198.6 KB

178.236.4.193:443


1.7s
更糟糕的是,所有的png图像现在都是从S3下载的,每个媒体的1.5s(当然或多或少都是并行),在主页的整个时间内重新开始(坏),这是更多或者更少,但现在DNS开销很轻(~1 / 3)。我认为通过S3提供的静态资产比直接服务于heroku更慢......!?!

我会这样做,直到我会有更多的分析,但我想知道是否有人可以分享他以这种方式提供静态资产的经验和表现数据,以便与之比较。

这里的所有措施都是通过FireBug客户端(firefox:93.34.152.23)进行的,并且该存储桶位于爱尔兰。