gpt4 book ai didi

python - 如何分析 Django channel ?

转载 作者:太空狗 更新时间:2023-10-29 18:12:58 24 4
gpt4 key购买 nike

我的技术栈是 Redis 作为 channel 后端,Postgresql 作为数据库,Daphne 作为 ASGI 服务器,Nginx 作为整个应用程序的前端。一切都使用 Docker Swarm 部署,外部只有 Redis 和数据库。我有大约 20 个虚拟主机,20 个接口(interface)服务器,40 个 http worker 和 20 个 websocket worker。负载平衡是使用 Ingress overlay Docker 网络完成的。

问题是,有时会发生与性能有关的非常奇怪的事情。大多数请求在 400 毫秒内得到处理,但有时请求可能需要 2-3 秒,即使在非常小的负载下也是如此。使用 Django 调试工具栏或基于中间件的分析器对 worker 进行分析显示没有任何结果(时间 0.01 秒左右)

我的问题:是否有什么好的方法可以使用 django-channels 分析整个请求路径?我想知道每个阶段需要多少时间,即 Daphne 处理请求的时间,工作人员开始处理的时间,完成的时间,接口(interface)服务器向客户端发送响应的时间。目前,我不知道如何解决这个问题。

最佳答案

Django-silk 可能有助于您分析请求和数据库搜索时间,原因如下:

  1. 只需在 Django 项目的 settings.py 中添加配置即可轻松设置。
  2. 可以自定义:通过使用提供的装饰器,您可以分析函数或方法并获得它们的运行性能。
  3. 动态设置:您可以选择将 silk 动态分配给方法,还可以在运行时设置您想要的分析速率。

如文档所述:

Silk is a live profiling and inspection tool for the Django framework. Silk intercepts and stores HTTP requests and database queries before presenting them in a user interface for further inspection

注意:silk可能会加倍你的数据库搜索时间,所以如果你在生产环境中设置它可能会带来一些麻烦。但是,丝绸的增加将单独显示在仪表板上。

https://github.com/jazzband/django-silk

关于python - 如何分析 Django channel ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41331567/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com