【发布时间】:2012-04-14 01:30:32
【问题描述】:
几周前我问过this question。今天我实际上已经编写并发布了一个标准的 Django 应用程序,即由Google CloudSQL 支持的全功能关系数据库支持(因此也是全功能 Django 管理员)。唯一一次我不得不偏离标准的 Django 方式是发送电子邮件(必须以 GAE 方式进行)。我的设置是GAE 1.6.4、Python2.7、Django 1.3,在app.yaml 中使用以下内容:
libraries:
- name: django
version: "1.3"
但是,我确实需要您提出明确的可操作步骤,以改善此 Django 应用程序冷时初始请求的响应时间。我在 GAE 上有一个简单的 webapp2 网站,它不 访问数据库,当 冷 时响应时间为 1.56s。 Django 在冷时使用 2 个查询(两个 count(*) 查询每个包含少于 300 行的表)访问数据库,响应时间为 10.73s!不鼓励主页;)
想到的事情是删除我不需要的 middleware 类和其他特定于 Django 的优化。然而,从 GAE 的角度来看也能改进事情的技巧会非常有用。
注意我不希望这成为关于在 GAE 上选择 Django 的优点的讨论。我可以提一下,我个人的 Django 专业知识,以及由此产生的开发效率,确实对采用 Django 而不是其他框架产生了很大影响。此外,使用 CloudSQL,很容易摆脱 GAE(希望不会!),因为 Django 代码只需很少(或无需)修改即可在其他任何地方工作。相关讨论可以在here和here找到。
【问题讨论】:
-
应用暖机时首页的响应时间是多少?
-
你已经分析了什么?
-
@DanielRoseman 平均在
200ms标记附近,非常好。 -
好吧,一个好的开始是识别和删除那些计数查询。另外,您是否启用了预热请求?
-
@JosvicZammit 正确 - 它允许系统在后台启动一个新实例,因此您的用户不会看到很长的启动时间。
标签: python django google-app-engine python-2.7 google-cloud-sql