actor 性能激活
本文介绍了在 Kubernetes 上 Dapr 中 actor 的服务调用 API 的性能基准和资源使用情况。
系统概述
在 Dapr 中使用 actor 的应用程序需要考虑两个方面。首先,actor 调用的路由由 Dapr 的边车(sidecar)处理。其次,actor 的运行时在应用程序端实现和处理,这依赖于所使用的 SDK。目前,性能测试使用 Java SDK 在应用程序中提供 actor 运行时。
Kubernetes 组件
- 边车(数据平面)
- Placement(actor 所需,控制平面将 actor 类型映射到主机)
- Operator(控制平面)
- 边车注入器(控制平面)
- Sentry(可选,控制平面)
Dapr v1.0 的性能总结
Dapr 边车中的 actor API 负责识别注册了特定 actor 类型的主机,并将请求路由到拥有该 actor ID 的合适主机。主机运行应用程序的一个实例,并使用 Dapr SDK(.Net、Java、Python 或 PHP)通过 HTTP 处理 actor 请求。
本次测试通过 Dapr 的 HTTP API 直接调用 actor。
有关更多信息,请参见 actor 概述。
Kubernetes 性能测试设置
测试在一个由 3 个节点组成的 Kubernetes 集群上进行,使用普通硬件,每个节点配备 4 核 CPU 和 8GB RAM,没有网络加速。 设置包括一个负载测试器(Fortio)pod,其中注入了一个 Dapr 边车,调用服务 API 以访问不同节点上的 pod。
测试参数:
- 每秒 500 个请求
- 1 个副本
- 持续 1 分钟
- 边车限制为 0.5 vCPU
- 启用 mTLS
- 启用边车遥测(采样率为 0.1 的跟踪)
- 空 JSON 对象的负载:
{}
结果
- 实际吞吐量约为 500 qps。
- tp90 延迟约为 3ms。
- tp99 延迟约为 6.2ms。
- Dapr 应用程序消耗约 523m CPU 和约 304.7Mb 内存
- Dapr 边车消耗 2m CPU 和约 18.2Mb 内存
- 无应用程序重启
- 无边车重启
相关链接
- 有关更多信息,请参见 Kubernetes 上的 Dapr 概述
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.