代码之家  ›  专栏  ›  技术社区  ›  Dean Christian Armada

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

  •  1
  • Dean Christian Armada  · 技术社区  · 8 年前

    我正在练习使用django频道和nginx的群聊应用程序。问题是如果我做一个压力测试,比如300个用户会在2分钟内在2-4秒之间发送消息。包含我们的Web应用程序的选项卡将挂起。我该如何预防?nginx的gzip有帮助吗?

    1 回复  |  直到 8 年前
        1
  •  1
  •   Rubycon    8 年前

    据我所知,你在2分钟内每秒发送大约100条信息。

    导致CPU过载的主要2个因素是:

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

    所以你需要检查两个

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

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