Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 哪些可能的错误会导致websocket连接响应缓慢(有时但并非始终如此)?_Django_Nginx_Websocket_Protocol Buffers_Uwsgi - Fatal编程技术网

Django 哪些可能的错误会导致websocket连接响应缓慢(有时但并非始终如此)?

Django 哪些可能的错误会导致websocket连接响应缓慢(有时但并非始终如此)?,django,nginx,websocket,protocol-buffers,uwsgi,Django,Nginx,Websocket,Protocol Buffers,Uwsgi,我知道我的问题的主题太广泛了。请询问任何能帮助你发现我的问题更容易回答的问题 上下文:web体系结构如以下描述所示: 由Django view生成的前端视图,可通过ngInx访问 服务器。javascript负责向/从发送/接收数据 web套接字应用程序 用python编写的web套接字应用程序,它使用uwsgi服务器作为其通信协议 web套接字应用程序使用主题和rabbitMQ与远程服务器(C++)通信 数据是使用protobuf序列化的 版本:Django 1.7.7、Python 2.7

我知道我的问题的主题太广泛了。请询问任何能帮助你发现我的问题更容易回答的问题

上下文:web体系结构如以下描述所示:

  • 由Django view生成的前端视图,可通过ngInx访问 服务器。javascript负责向/从发送/接收数据 web套接字应用程序
  • 用python编写的web套接字应用程序,它使用uwsgi服务器作为其通信协议
  • web套接字应用程序使用主题和rabbitMQ与远程服务器(C++)通信
  • 数据是使用protobuf序列化的
  • 版本:Django 1.7.7、Python 2.7.5、rabbitMQ 3.4.4、nginx 1.6.2和uwsgi 2.0.10
问题:现在我面临一个非常可怕的bug,因为很难找到bug的根本原因,它发生在生产过程中,并不总是出现。 有时,当用户单击按钮时,web套接字的响应非常慢(1或2分钟),而其余时间的响应时间以毫秒为单位

我怀疑这个bug是由于架构的配置而不是代码本身造成的,因为这个bug只是偶尔出现。此外,如果您认为需要,我可以编辑问题以添加代码。前端具有与websocket应用程序来回连接的心跳信号,因此排除了互联网连接。你知道如何调试这个吗


感谢阅读此问题。:)

线鲨?或者其他一些较低级别的数据包分析器。在每一端还有一些其他的监控工具,ea。cpu(nginx worker)可能由于阻塞调用而处于高位。以及用于套接字链接的ping工具(可能是lan饱和)。使用nginx 1.9.2检查uwsgi源代码,查看是否有任何错误修复。我将nginx从1.6.2更新为1.8,结果是肯定的,错误已经一天没有出现了。但是我仍然不确定这个bug是否消失了。好的,谢谢@itpp13@itpp13您能否详细说明“由于阻塞调用,cpu(nginx worker)可能会变高”?这是因为我读到nginx设计时考虑到了非阻塞模型。任何额外的资源都是非常受欢迎的。这不容易解释,但例如,后端不返回呼叫,从而阻止工作人员发送呼叫,以获得更多技术信息,请参阅/conf中的geoip示例,其中包含阻塞和非阻塞Lua示例。为了简单起见,nginx本身可以处理的任何事情都是非阻塞的,它必须传递到外部的任何事情(这也可以是一个附加模块)都可以是非阻塞的,但也可以很容易地阻塞。