为什么ClearQuest(CQ)无法并行处理OSLC API请求?
ClearQuest OSLC API串行请求问题解答
机制确认
你观测到的请求串行处理现象是ClearQuest的默认设计:OSLC服务层默认配置了单工作线程处理所有OSLC REST API请求,所有到达服务端的请求会进入先进先出队列等待前序请求处理完成后才会被调度,因此会出现N个请求的响应耗时线性递增为N*单请求耗时的现象,和你的测试结果完全匹配。
并发线程数调整方案
可以通过修改CQ Web配置参数调整OSLC服务的处理并发度,操作步骤如下(适用于CQ 9.x及以上版本):
- 停止所有CQ Web服务进程
- 定位到CQ Web配置文件,默认路径为
[CQ安装目录]/cqweb/cqweb.properties - 查找配置项
com.ibm.rational.cq.oslc.service.threadPoolSize,如果文件中不存在该配置项可直接新增 - 将配置项的值设置为期望的并发线程数,例如设置为
4即可支持4个OSLC请求并行处理。注意该数值不要超过CQ后端配置的数据库最大连接数,避免引发数据库连接耗尽问题 - 保存配置文件后重启CQ Web服务即可生效
注意事项
调整后建议先做压测验证,同时监控CQ服务的CPU、内存占用以及数据库连接使用率,避免设置过高的线程数导致服务稳定性下降。如果是集群部署的CQ Web服务,需要在所有节点的配置文件中做相同修改才能实现全集群的并发能力提升。
内容的提问来源于stack exchange,提问作者Mátyás Horváth
相关产品推荐
相关产品推荐

