简介:今天,首席CTO指出要与您分享如何测试Django并发内容。如果您可以解决您现在面临的问题,请不要忘记注意此网站。让我们现在开始!
Django本身带来了Runserver,但是我们仅在测试时使用它,而实际生产部署通常使用UWSGI+NGINX方法。
因为我们的生产环境通常具有大量并发访问,并且runserver带有django非常不稳定,因此最大连接数量大约是数十个,并且过多的并发连接导致服务崩溃,并且安全性不在术语中。安全。
NGINX可以支持高并发连接。官方放弃的连接数量约为50,000,在实际生产中,它也约为20,000?40,000。在情况下,该版本已升级)。
相对比较,Django随附的Runserver仅适合我们在测试过程中使用它。
1.我们在查询上使用select_for_update来告诉数据库锁定对象,直到交易完成为止。
2.在数据库中锁定一条线需要数据库事务 - 我们使用Django的Decorator Transaction.Atomic来定义交易。
3.我们使用类方法代替实例方法 - 我们告诉数据库锁定,然后将锁的对象返回给我们。然后,它是从数据库中获得的对象。这个对象不能保证我们不会被锁定。
4.帐户中的所有操作均在数据库交易中执行。
Django具有自身的效率,并且不使用Epoll/Kqueue。
很难说有多少人在线。
测试后,对于我的计算机,最初的Django项目的能力约为294。
相反,龙卷风是高性能的服务器。其文档的网络示例约为1324。
一个仅包含“ Hello World!”的静态文件在nginx上,约为2942
1.将[UWSGI]中的流程设置为4要少得多。此事代表您,同时您可以处理几个请求。将其更改为32.100的科学可以在100处接受。
2.这种访问量绝对不是由Nginx的瓶颈引起的。您需要优化应用程序。
对于普通打印,您可以在日志中的部署容器日志中找到输出。
结论:以上是有关如何测试Django并发量的主要CTO注释的所有内容。我希望这对每个人都会有所帮助。如果您想了解有关此信息的更多信息,请记住收集并关注此网站。