如何配置django频道?

Val*_*lar 10 python django profiling django-channels daphne

我的技术堆栈是Redis作为通道后端,Postgresql作为数据库,Daphne作为ASGI服务器,Nginx作为整个应用程序.使用Docker Swarm部署所有内容,只有Redis和数据库外部.我有大约20个虚拟主机,20个接口服务器,40个http工作者和20个websocket工作者.使用Ingress覆盖Docker网络完成负载平衡.

问题是,有时在性能上会发生非常奇怪的事情.大多数请求的处理时间不到400毫秒,但有时请求可能需要2-3秒,即使在非常小的负载下也是如此.使用Django调试工具栏或基于中间件的分析器的分析工作程序什么都不显示(时间0.01s左右)

我的问题:有什么好方法可以用django-channels分析整个请求路径吗?我希望每个阶段花费多少时间,即当Daphne处理请求时,当工作者开始处理时,当它完成时,当接口服务器向客户端发送响应时.目前,我不知道如何解决这个问题.

IVI*_*IVI 0

为什么不使用 Kibana 或 New Relic 之类的监控工具来监控小有效负载响应花费这么长时间的原因和原因。它可以告诉你在Python、PostgreSQL和Memcache(Redis)上花费的时间。