开发者社区 > 云原生 > 正文

为什么默认使用自旋锁

当我将rocketmq版本3.2.6升级到4.31时,我发现一些配置默认值发生了变化

useReentrantLockWhenPutMessage=false sendMessageThreadPoolNums=1 sendThreadPoolQueueCapacity=10000

但当我做发送消息性能测试时,我发现TPS很低,cpu很高。所以我改变了配置:

useReentrantLockWhenPutMessage=true sendMessageThreadPoolNums=32 sendThreadPoolQueueCapacity=100000

我想知道为什么要使用这个默认配置?

8cpu和16g内存以及300g磁盘

原提问者GitHub用户Cicizz

展开
收起
芬奇福贵 2023-05-26 16:14:44 132 0
1 条回答
写回答
取消 提交回答
  • 同意启用“useReentrantLockWhenPutMessage”并将sendMessageThreadPoolNums更改为“16+4*核心”将大大提高吞吐量。我们发现许多使用默认配置的“CODE:2 DESC:[TIMEOUT_CLEAN_QUEUE]”异常。

    原回答者GitHub用户jayixl

    2023-05-26 18:04:46
    赞同 展开评论 打赏

阿里云拥有国内全面的云原生产品技术以及大规模的云原生应用实践,通过全面容器化、核心技术互联网化、应用 Serverless 化三大范式,助力制造业企业高效上云,实现系统稳定、应用敏捷智能。拥抱云原生,让创新无处不在。

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载