由于对S3的httplib请求,Django-skel变慢

时间:2013-01-31 12:03:07

标签: django heroku amazon-s3

G'day,

我在最近的一个项目中使用django-skel并使用了大多数默认值:Heroku用于托管,S3用于文件存储。我主要服务于静态网站,除了使用sorl生成缩略图,但响应时间是可悲的。

您可以访问该网站:http://bit.ly/XlzkXp

我的模板如下:https://gist.github.com/cd15e320be6f4454a7fb

我正在使用URL conf中的快捷方式提供模板,根本没有数据库用法:https://gist.github.com/f9d1a9a191959dcff1b5

然而,它一直需要15秒以上的响应。新文件显示这是因为在处理视图时请求转到S3。这对我没有任何意义。

New Relic数据:http://i.imgur.com/vs9ZTLP.png?1

为什么使用httplib来从S3请求内容?我可以看到collectstatic如何做,但不是视图本身的处理。

我不了解Django-skel和这个设置?

1 个答案:

答案 0 :(得分:0)

有同样的问题,我的猜测是:

  • 使用django-storage的django-compress正在使用中
  • 导致将模板呈现到S3存储桶所需的以前的保存缓存
  • 然后在渲染每个模板时读取它(通过网络,所以是httplib)

我的第二个猜测是django-compress with remote storage上实施“ S3存储后端,本地缓存文件”的说明将解决此问题。

虽然对我有意义:将缓存保存到本地和S3的两个位置并首先从本地文件系统读取应该加快速度,但是以这种方式工作..仍然响应时间是大约8秒以上。

通过COMPRESS_ENABLED = False禁用django-compress,我获得了1-1.3秒的平均响应时间。

任何想法?
(如果有任何进展,我会更新此答案)