超时问题

RocketMQ使用的版本是:4.9.2

nameserver部署了 3 个节点 broker 部署了 5 台物理机,每台 1 主 1 从,dledge集群 机子配置:3台(16 核 128 G内存) + 2台(16 核 64 G内存)

【broker】配置文件: brokerClusterName = RaftCluster brokerName=39.3-broker0 listenPort=30911 namesrvAddr=10.254.39.1:9876;10.254.39.2:9876;10.254.39.3:9876 storePathRootDir=/data/rocketmq-4.9.2/dledger/store/node00 storePathCommitLog=/data/rocketmq-4.9.2/dledger/store/node00/commitlog enableDLegerCommitLog=true dLegerGroup=group-10.254.39.3 dLegerPeers=n30-10.254.39.3:40911;n31-10.254.39.3:40912;n32-10.254.39.3:40913

dLegerSelfId=n30

brokerIP1=10.254.39.3

deleteWhen=04 fileReservedTime=48 brokerRole=ASYNC_MASTER flushDiskType=ASYNC_FLUSH

#发送消息线程等待时间,默认200ms waitTimeMillsInSendQueue=400

#发送消息的最大线程数,默认1 sendMessageThreadPoolNums=16 #使用可重入锁 useReentrantLockWhenPutMessage=true

#开启临时存储池 transientStorePoolEnable=true #开启Slave读权限(分担master 压力) slaveReadEnable=true #关闭堆内存数据传输 transferMsgByHeap=false #开启文件预热 warmMapedFileEnable=true

【jvm配置】仅调整了堆内存 ... JAVA_OPT="${JAVA_OPT} -server -Xms20g -Xmx20g" ...

每台机子上都执行过 rocketmq-4.9.2/bin/os.sh,改了内核相关参数

接口压测的时候遇到的问题:(该接口无db读写操作,无其他复杂业务,仅查redis和rocketmq发消息) 1、吞吐量上不去,生产者用sync发送消息,吞吐量只有3000多 2、日志很多报错信息 ①、[TIMEOUT_CLEAN_QUEUE]broker busy, start flow control for a while, period in queue: 402ms, size of queue: 92 ②、[PCBUSY_CLEAN_QUEUE]broker busy, start flow control for a while, period in queue: 357ms, size of queue: 19 ③、Connection reset by peer

请帮忙看下是哪里的问题

原提问者GitHub用户Mark110513

展开
收起
芬奇福贵 2023-05-26 10:29:05 219 分享 版权
1 条回答
写回答
取消 提交回答
  • sendMessageThreadPoolNums 设置有点小了,请求队列里的请求处理不完,超时了

    原回答者GitHub用户cserwen

    2023-05-26 16:52:37
    赞同 展开评论

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

还有其他疑问?
咨询AI助理