同步生产负载测试
概述
负载测试 是指在应用投入生产后模拟用户将向应用发出的请求。 其目标是衡量性能,并在问题发生在真实用户身上之前识别和解决问题。
推荐策略
使用 Node.js SDK 模拟移动应用的常见单用户工作负载。 例如,您可以使用该 SDK 执行以下操作:
-
打开一定数量的同步 Realm。
-
对同步 Realm 进行一定数量的写入。
-
模拟后端服务器调用(例如,通过调用 Atlas Function)。
模拟的具体细节取决于应用的实际工作负载。 实例,您可以打开已在服务器初始化同步数据的 Realm 来模拟使用案例。您可以打开不同的 Realm 来模拟写入工作负载。 这些 Realm 可能是每用户共享或私有 Realm 的组合,具体取决于您的使用案例。 您可以使用共享 Realm 来测试冲突解决速度并发现任何问题。 因此,请考虑如何在实际应用中使用 Realm 数据库来设计模拟。
注意
Node.js SDK 使用与移动(iOS、Android、.NET 等)SDK 相同的底层 C++ 数据库和同步客户端。 因此,您可以使用与生产移动应用中相同的代码路径,同时受益于 Node.js 的无头服务器环境。
然后,您可以将单用户模拟部署到数百或数千个节点,以测试真正的多用户工作负载。例如:
-
将应用打包到 Docker 容器中。
-
将容器部署为 Kubernetes 作业的一部分。
-
调整作业参数,使其与实际生产工作负载相匹配。
-
测量完成 Kubernetes 作业所需的时间,以计算整体性能。
您可以使用各种基于云的 Kubernetes 即服务产品。