Performance Testing and Regular Maintenance
API 网关性能测试
性能测试中的检查点
- 总调用次数、总成功调用次数、总失败调用次数、成功/失败状态:
失败的数量可能不是实际应用中发生的致命错误,例如 401 和 499,因此需要检查状态码(成功/失败状态)
- 前 5 个 API 调用 - 条形图、表格
您可以查看在性能测试期间主要调用的 API 的状态。
- 前 5 个 API 响应延迟
- 显示调用 API 时响应延迟较慢的 API。
- 网关响应延迟:由网关引起的延迟
- 后端响应延迟:后端应用程序的响应延迟
- API 响应延迟:网关响应延迟和后端响应延迟的结果
- 由于所有响应延迟值以毫秒(ms)为单位测量,100ms 的延迟仅为 0.1 秒,这并不算特别慢。通常,响应时间在 1000ms(1 秒)左右被认为是慢的。
- 我们还需要检查作为边车运行的 Istio 的规格。
性能测量的解释
- RPS 测试:每秒请求的测量
- 批量测试:在请求数据大小和响应数据大小配置的条件下进行的测量。
- 延迟测试:在强制延迟的环境中进行性能测量
- 老化测试:长时间的连续测试,测量内存泄漏和存储容量的增加
Setting | Value | Note |
---|---|---|
CPU | 2 核心 | 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、内存