发送太多消息时,带有实时消息的Web应用程序挂起

时间:2018-08-08 05:25:47

标签: nginx websocket real-time django-channels

我正在使用Django频道和nginx练习群聊应用。问题是如果我进行压力测试,例如300名用户将在2分钟内的2-4秒之间发送消息。具有我们的Web应用程序的选项卡将挂起。我该如何预防? Nginx的gzip对您有帮助吗?

1 个答案:

答案 0 :(得分:1)

因此,据我了解,您在2分钟内每秒发送约100条消息。

这里可能导致CPU过载的主要两件事是:

  • 网络流量非常大
  • 呈现所有这些消息的大量JavaScript代码

所以您需要检查它们

例如,您可以从检查JavaScript部分开始。尝试禁用在用户界面中显示所有传入消息的代码,因此只有网络部分将处于活动状态。看看它怎么运作。如果现在运行良好,那么您需要优化此JavaScript部分,也许需要在内存中收集传入消息,并在UI中每3秒而不是每100/1秒显示一次消息。这样可以节省渲染能力。

关于网络部分-您可以尝试优化消息有效负载-使其更小。