我们使用django为mysql创建一个json webservice前端。我们在EC2实例上运行apache和django,并在RDS实例上运行MySQL。我们已经开始使用Apache Bench进行性能基准测试,并且获得了一些非常糟糕的性能数据。我们还注意到,在运行测试时,我们的apache/django实例在非常低的负载下达到100%CPU使用率,并且MySQL实例永远不会超过2%CPU使用率。有没有办法加快django中的身份验证功能?
我们正在努力使这个意义上说,孤立的问题,所以我们做了几个AB测试:
- 一种从Apache的静态HTML页面的请求 - 〜2000个请求/秒。
- 一个在django中执行一个小型python函数的请求,没有db交互 - 约1000个请求/秒。
- 执行我们调用验证Django的web服务的功能之一,然后做一个非常简单的查询来从一个表中记录的请求 - 11个请求/秒
- 同3,但评论的电话进行验证 - - 95个请求/秒。
为什么验证太慢?它是否将数据写入数据库,找到pi的十亿位数字,是什么?
我们希望保持呼叫在这些功能中进行身份验证,因为我们不希望任何人都可以猜测这些URL,等等。有没有人注意到身份验证速度很慢,任何人都可以提出建议一种补救方法?
非常感谢!
尝试几件事:下载django-debug-toolbar并读取输出。看看它在做什么样的查询。试试django-profile并阅读函数执行时间。最后,获取新的...甚至免费版本将显示你有用的细分每个视图func。兴奋地听到一些结果! –