如何测试WSO2 APIM性能?OKD部署4.0.0版本配置求指导
WSO2 API Manager 4.0.0(OKD集群架构)性能测试实操指引
你这套2GW+2CP+2TM的集群架构是官方标准的生产最小集群,直接按下面的步骤配置、执行测试即可,参数都是对齐4.0版本官方性能基准的实测可用配置。
前置准备
- 检查OKD集群的资源配额规则,临时关闭WSO2节点对应的HPA自动伸缩、Pod自动驱逐策略,避免测试过程中弹性调度干扰基准数据;所有节点建议预留至少20%的空闲CPU、内存资源,不要把节点资源跑满到100%。
- 全量备份所有节点的
deployment.toml配置、OKD路由/Service/StatefulSet资源定义,测试结束可快速回滚到生产配置。 - 调整所有WSO2 Pod的安全上下文,将容器内进程的最大文件句柄数
nofile软、硬限制均设置为65535,避免高并发下出现句柄耗尽报错。 - 压测客户端部署在OKD集群内网,直接通过内网Service地址访问网关,不要走公网入口,避免公网带宽、跨网延迟成为测试瓶颈。
分节点配置调整
所有配置修改后等待对应Pod滚动重启完成,确认服务正常后再继续下一步操作。
通用JVM配置(所有节点统一调整)
直接修改对应工作负载的环境变量JVM_MEM_OPTS即可,按节点分配的资源规格匹配参数:
- 节点为8C16G规格时,固定堆内存为8G:
-Xms8g -Xmx8g -Xmn4g,不要开启JVM自适应堆调整,避免运行时堆动态波动影响性能。 - 追加GC日志参数方便后续问题排查:
-XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/home/wso2carbon/wso2am-4.0.0/repository/logs/gc.log - 移除JVM参数中所有调试、审计、远程监控类的非必要参数,减少额外性能开销。
网关(GW)节点专项配置
网关是压力承载的核心节点,修改repository/conf/deployment.toml添加/调整以下参数:
[transport.http] listener.worker_pool_size_core = 400 listener.worker_pool_size_max = 500 listener.queue_size = 0 [transport.https] listener.worker_pool_size_core = 400 listener.worker_pool_size_max = 500 listener.queue_size = 0 [apim.gateway] enable_token_caching = true token_cache_expiry = 900 enable_resource_caching = true
额外注意:如果GW节点前挂了OKD默认的HAProxy路由,需要修改路由配置,将连接超时调整为300s,最大连接数上限调到10000,避免压测时路由层先被打满。
控制平面(CP)节点专项配置
如果测试场景不覆盖管理面、开发者门户性能,优先减少CP节点的非必要开销:
[apim.analytics] enable = false # 非分析场景测试时临时关闭,避免数据上报占用资源 [database.shared_db] pool_options.maxActive = 100 pool_options.maxWait = 30000 [database.apim_db] pool_options.maxActive = 100 pool_options.maxWait = 30000
流量管理器(TM)节点专项配置
TM负责令牌生成、限流规则下发,调整线程池和流控参数:
[apim.throttling] enable_blacklist_condition = false jms_connection_factory.max_connections = 200 [apim.throttling.flow_control] enable = false # 基准性能测试时临时关闭,测限流能力场景再开启
测试执行流程
- 预热阶段:配置全部生效后,先以100并发的低流量持续压10分钟,等JIT编译完成、各类缓存加载完毕后再正式记录数据,避免初始阶段的性能数据偏低不准。
- 梯度加压:从100并发开始,每次提升100并发,每个并发梯度稳定运行5分钟,同步记录对应TPS、99线响应延迟、错误率、各节点CPU/内存/GC指标,不要一次性打满流量。
- 基准场景覆盖:常规需要测三类核心场景,数据才有参考价值
- 无认证直通API调用:测试网关本身的HTTP转发性能基线
- JWT/OAuth2令牌认证API调用:模拟真实业务场景,测试令牌校验+业务转发的性能
- 限流规则生效场景:开启TM流控,测试限流规则下的网关处理能力
- 指标采集:直接复用OKD集群自带的Prometheus+Grafana栈采集Pod资源指标,同时同步保存WSO2的访问日志、GC日志,方便出现异常时定位根因。
常见踩坑
- 压测前一定要检查WSO2对接的底层数据库(共享DB、AM_DB、UM_DB)的最大连接数配置,确保连接数上限大于各节点配置的连接池总和,否则压测过程中会出现大量数据库连接耗尽导致的500错误。
- 压测客户端要开启HTTP连接复用,不要每个请求都新建HTTPS连接,否则握手开销会占掉大量性能,测试结果比实际业务场景偏低30%以上。
- 如果测试过程中出现集群节点负载不均的情况,检查OKD kube-proxy的负载均衡模式,以及GW节点Service的会话亲和性配置,确保流量能均匀打到两个GW节点上。
内容的提问来源于stack exchange,提问作者nankiesof
相关产品推荐
相关产品推荐

