【发布时间】:2017-11-19 12:25:38
【问题描述】:
我有一个呈现 HTML 模板的简单视图。 没有任何变量,也没有数据库查询。但是,我的 TTFB 仍然是 665 毫秒。
这是视图的代码:
def test_page(request):
return render(request, 'home/test_page.html')
模板home/test_page.html 是一个12.5 KB 文件。
我正在使用通过 Elastic Beanstalk 部署的 Amazon EC2 实例 (t2.medium)。 使用 python 3.4 的 Django 版本 1.8。
由于我使用的是 Elastic-Beanstalk,服务器的配置是由 AWS 完成的。
一个有趣的观察结果是,一个较小的文件(例如 4.1 KB 文件)给我的 TTFB 为 145 毫秒。
【问题讨论】:
-
我会删除所有模板渲染并发送最简单的 200 响应以获取基线,然后阅读 docs.djangoproject.com/en/1.11/topics/performance。
-
一个普通的 200 响应需要 24.31 毫秒。我已经详细阅读了该特定页面,并尝试了几乎所有建议,除了切换到 jinja2,我认为这有点过头了。
-
您是否正在运行调试模式(抑制缓存的模板加载器)?另外,是否可以调查不同 EC2 实例类型(具有更多 CPU 和更多 RAM)的影响?
-
我一直到一个 m3.xlarge 实例,没有任何改进。我开始了一个新的 Django 项目,我最初的问题中描述的情况大约需要 50 毫秒。所以,它可能与服务器设置无关......我也尝试禁用所有额外的中间件......仍然没有。
-
你有解决办法吗?
标签: python django performance amazon-web-services amazon-ec2