跳到主要内容

Performance Testing and Regular Maintenance

API 网关性能测试

性能测试中的检查点

  • 总调用次数、总成功调用次数、总失败调用次数、成功/失败状态:

失败的数量可能不是实际应用中发生的致命错误,例如 401 和 499,因此需要检查状态码(成功/失败状态)

  • 前 5 个 API 调用 - 条形图、表格

您可以查看在性能测试期间主要调用的 API 的状态。

  • 前 5 个 API 响应延迟
    • 显示调用 API 时响应延迟较慢的 API。
    • 网关响应延迟:由网关引起的延迟
    • 后端响应延迟:后端应用程序的响应延迟
    • API 响应延迟:网关响应延迟和后端响应延迟的结果
    • 由于所有响应延迟值以毫秒(ms)为单位测量,100ms 的延迟仅为 0.1 秒,这并不算特别慢。通常,响应时间在 1000ms(1 秒)左右被认为是慢的。
  • 我们还需要检查作为边车运行的 Istio 的规格。

性能测量的解释

  • RPS 测试:每秒请求的测量
  • 批量测试:在请求数据大小和响应数据大小配置的条件下进行的测量。
  • 延迟测试:在强制延迟的环境中进行性能测量
  • 老化测试:长时间的连续测试,测量内存泄漏和存储容量的增加
SettingValueNote
CPU2 核心2 个工作进程
内存2 Gib
副本1 单位网关是否冗余
每秒请求数1000 单位RPS
请求数据大小100 KB批量(请求)
响应数据大小100 KB批量(响应)
强制响应延迟1 秒延迟
测试时间8 小时老化

复杂条件 (RPS+Bulk+Delay+Aging) 测试结果

  • 总耗时:8 小时老化
  • 总请求数:28,800,000 次调用
  • 成功请求数:28,800,000 次调用
  • 成功/失败率:成功 100.0%(失败 0.0%)
  • 平均响应时间:15 毫秒

定期维护检查清单

APIM 组件定期维护

  • 验证 APIM 组件 Pod 是否正常运行
$ kubectl get pods -n {APIM_NAMESPACE}
NAME READY STATUS ...
deploy-apim-devlopers-portal-backend 1/1 Running
deploy-apim-devlopers-portal-frontend 1/1 Running
deploy-apim-bff 1/1 Running
deploy-apim-analysis-manager 1/1 Running
deploy-apim-gateway-manager 1/1 Running
deploy-apim-tenant-manager 1/1 Running
deploy-apim-tenant-manager-console 1/1 Running
deploy-apim-policy-manager 1/1 Running
apim-mariadb-master-0 1/1 Running
statefulset-pgauth-0 1/1 Running
  • 检查 APIM 组件数据库存储容量
$ kubectl exec -it apim-mariadb-master-0 bash -n {APIM_NAMESPACE}
(mariadb container) $ df -h
...
/dev/nvme8n1 4.9G 451M 4.4G 10% /bitnami/mariadb
...

$ kubectl exec -it statefulset-pgauth-0 bash -n {APIM_NAMESPACE}
(postgresql container) $ df -h
...
/dev/nvme10n1 4.9G 624M 4.3G 13% /pgdata
...
  • 控制台访问

检查访问 URL(使用 Ingress 信息进行验证) - 下面的主机名为示例。

$ kubectl get ingress -n {APIM_NAMESPACE}
NAME HOSTS
deploy-apim-devlopers-portal-backend apim.sk.com
deploy-apim-devlopers-portal-frontend apim-tenant.sk.com
deploy-apim-bff apim-developers.sk.com

请验证您是否可以使用上述信息在网页浏览器中正常访问:

  • APIM 控制台

  • 租户管理控制台

  • 开发者门户

API 网关定期维护

  • 访问 APIM 控制台屏幕并正常检查网关状态
    • APIM 控制台 > 网关管理 > 选择网关
    • 检查六边形形状是否根据配置的副本数量完全填充 → 如果出现问题(例如,pod 待处理),六边形形状将显示旋转动画。

  • 通过日志数据验证正常调用(参考 API 日志项目)
    • Kibana > 仪表板 > APIM 仪表板
    • 检查调用次数和成功/失败状态

  • 通过监控数据检查 API 网关资源(参考 API 网关监控项目):Grafana > 仪表板 > 浏览 > APIM 仪表板:
    • 与 API 调用相关的仪表板
    • 检查每秒调用次数
    • 检查 API 延迟

  • Grafana > 仪表板浏览 > 容器仪表板 > Kubernetes:部署:
    • 检查 API 网关资源
    • 检查 CPU、内存