Javascript 在Meteor.js中检查web应用程序性能/限制的最佳方法是什么?

Javascript 在Meteor.js中检查web应用程序性能/限制的最佳方法是什么?,javascript,meteor,Javascript,Meteor,我们已经使用Meteor.JS构建了一个webapp,我们想了解一下 当成千上万的用户可以记录请求/响应时,它将如何在实际生产模式下运行 当涉及到容量和响应时间时,框架的效率有多高 我们想知道是否有我们可以使用的工具或最佳实践 提前感谢您的时间。您需要做的是查看应用程序的负载测试。有很多方法可以做到这一点,但前提是您编写了用户交互所包含的内容的脚本,并多次运行该脚本,不断增加容量,直到达到所需的并发数 如前所述,有很多工具可以做到这一点。我个人使用过的一些: 装载机 ApacheJMeter

我们已经使用Meteor.JS构建了一个webapp,我们想了解一下

  • 当成千上万的用户可以记录请求/响应时,它将如何在实际生产模式下运行
  • 当涉及到容量和响应时间时,框架的效率有多高 我们想知道是否有我们可以使用的工具或最佳实践


    提前感谢您的时间。

    您需要做的是查看应用程序的负载测试。有很多方法可以做到这一点,但前提是您编写了用户交互所包含的内容的脚本,并多次运行该脚本,不断增加容量,直到达到所需的并发数

    如前所述,有很多工具可以做到这一点。我个人使用过的一些:

    • 装载机
    • ApacheJMeter
    • Rational性能测试仪
    • 带有curl的简单shell脚本
    维基百科上有一个列表,可以让你有一个良好的开端,了解哪些其他工具可以使用

    我想说的下一点是,负载测试不仅仅是在系统崩溃之前增加并发用户。良好的负载测试将尝试模拟您看到或预期看到的流量类型。换句话说,两个用户在每次访问您的系统时所做的事情并不完全相同,而且并非所有对服务器的请求都会在您的系统上产生相同的负载。您的用户甚至可能在一天中的不同时间使用不同的系统

    最终的目标是编写多个“类型”的用户和事务的脚本,并让您选择的加载工具对请求进行加权,以便它们与每种类型的预期百分比相匹配。通过这种方式,您可以更好地了解应用程序在负载与您真正期望看到的负载相匹配的情况下的性能

    最后,你需要考虑你的基础设施。通常,在我工作过的企业环境中,我们尝试使QA环境尽可能接近生产环境。我们将拥有完全相同的服务器硬件、完全相同的配置(物理和软件),并尽一切可能使其镜像。我们有时会偏离的是尺寸。例如,我在一个环境中工作,我们在Prod中有4个应用服务器,每个服务器有4个节点,集群中总共有16个节点。在QA中,我们有相同的裸机硬件,但所有硬件都被切成两半,因此我们有2个物理服务器,每个服务器有4个节点,QA集群中总共有8个节点。当我们测试负载时,我们将得到预期总数的一半,因此如果我们预期Prod中同时有200个用户,那么成功的QA测试将同时有100个用户。我们还会将生产数据库中的数据复制并混淆到QA数据库中,以确保我们使用相同大小的数据进行操作

    负载测试的过程如下:

  • 获取“基线”结果
  • 做你需要做的任何改变
  • 重新运行与#1完全相同的测试,只向测试中添加任何新功能
  • 随着时间的推移进行更改时,基线非常重要,以确保您的更改不会影响性能。我无法告诉您,有多少次我看到SQL语句在Dev中运行得非常好,但由于数据量的不同而完全关闭了系统。

    阅读“负载测试”