RocketMQ实战之常用运维命令

压测

  1. 压测的基准是超出正常流量的2~3倍之间,预留空间应对突发流量

  2. 压测方式

    • 通过Jmeter写代码方式,集成RocketMQ客户端
    • 通过RocketMQ自带的压测脚本
  3. 压测脚本producer.sh

    名称 含义
    -h 使用帮助
    -k 测试时消息是否有 key,默认 false
    -n NameServer 地址
    -s 消息大小,默认为 128 个字节
    -t 主题名称
    -w 并发线程的数量,默认 64 个
  4. 可根据实际情况设计自己的压测场景

  5. 压测场景一:1 个线程、消息大小为 1K、主题为4个队列。以下结果中发送最大 TPS 为 156,最大 RT 为 1313,平均 RT 为6.390

    $ cd ./benchmark
    $ sh producer.sh -t load-test -w 1 -s 1024 -n rocketmq-nameserver1:9876;rocketmq-nameserver2:9876
    Send TPS: 39 Max RT(ms): 1313 Average RT(ms):  26.475 Send Failed: 0 Response Failed: 0
    Send TPS: 47 Max RT(ms): 1313 Average RT(ms):  21.242 Send Failed: 0 Response Failed: 0
    Send TPS: 79 Max RT(ms): 1313 Average RT(ms):  12.469 Send Failed: 0 Response Failed: 0
    Send TPS: 137 Max RT(ms): 1313 Average RT(ms):   7.205 Send Failed: 0 Response Failed: 0
    Send TPS: 144 Max RT(ms): 1313 Average RT(ms):   6.882 Send Failed: 0 Response Failed: 0
    Send TPS: 156 Max RT(ms): 1313 Average RT(ms):   6.390 Send Failed: 0 Response Failed: 0
    ...省略...
    

集群

  1. 集群列表:查看集群各个节点的运行情况

    $ mqadmin clusterList -n rocketmq-nameserver1:9876
    #Cluster Name     #Broker Name     #BID  #Addr            #Version #InTPS(LOAD) #OutTPS(LOAD) #PCWait(ms) #Hour #SPACE
    DefaultCluster    rocketmq-master1 0     172.19.0.4:10911 V4_9_4   95.53(0,0ms)   0.00(0,0ms)          0  0.83 0.9400
    DefaultCluster    rocketmq-master1 1     172.19.0.6:10911 V4_9_4   96.71(0,0ms)   0.00(0,0ms)          0  0.83 0.9400
    DefaultCluster    rocketmq-master2 0     172.19.0.5:10911 V4_9_4   95.86(0,0ms)   0.00(0,0ms)          0  0.83 0.9400
    DefaultCluster    rocketmq-master2 1     172.19.0.7:10911 V4_9_4   95.95(0,0ms)   0.00(0,0ms)          0  0.83 0.9400
    
    -n	Nameserver 地址
    Cluster Name	集群名称
    Broker Name	节点 Broker 名称
    BID	Broker ID (0 为主节点,从节点非 0 表示)
    Addr	节点地址(ip:port)
    Version	RocketMQ 的版本号
    InTPS	节点每秒写入的消息数量
    OutTPS	节点每秒读出的消息数量
    PCWait	pageCacheLockTimeMills(消息落盘会加锁,当前时间与最后一次加锁的差值)
    Hour	磁盘存储多久的有效消息(当前时间与磁盘存储最早的一条消息时间戳的差值)
    SPACE	磁盘已使用的占比
    
  2. 集群中所有主题/消费组的实时吞吐情况

    $ mqadmin statsAll -n rocketmq-nameserver1:9876
    #Topic                     #Consumer Group  #Accumulation  #InTPS #OutTPS #InMsg24Hour  #OutMsg24Hour
    SCHEDULE_TOPIC_XXXX                                    0    0.00                    0    NO_CONSUMER
    RMQ_SYS_TRANS_HALF_TOPIC                               0    0.00                    0    NO_CONSUMER
    RMQ_SYS_TRACE_TOPIC                                    0    0.00                    0    NO_CONSUMER
    rocketmq-master1                                       0    0.00                    0    NO_CONSUMER
    DefaultCluster_REPLY_TOPIC                             0    0.00                    0    NO_CONSUMER
    rocketmq-master2                                       0    0.00                    0    NO_CONSUMER
    BenchmarkTest                                          0    0.00                    0    NO_CONSUMER
    OFFSET_MOVED_EVENT                                     0    0.00                    0    NO_CONSUMER
    load-test                                              0  200.90               578781    NO_CONSUMER
    TBW102                                                 0    0.00                    0    NO_CONSUMER
    SELF_TEST_TOPIC                                        0    0.00                    0    NO_CONSUMER
    DefaultCluster                                         0    0.00                    0    NO_CONSUMER
    
    -n	Nameserver 地址
    -a	只打印活动的主题
    -t	只打印指定的主题
    Topic	主题名称
    Consumer Group	消费组名称
    Accumulation	消息堆积数量
    InTPS	该主题每秒写入的消息数量
    OutTPS	该消费组每秒消费的消息数量
    InMsg24Hour	该主题 24 小时写入的消息总数
    OutMsg24Hour	该消费组 24 小时消费的消息总数
    

Broker

  1. 查看某个Broker的运行状态

    $ mqadmin brokerStatus -b 172.19.0.5:10911 -n  rocketmq-nameserver1:9876
    
    # END_TRANSACTION 的线程池请求数
    EndTransactionQueueSize         : 0
    # END_TRANSACTION 线程池大小,默认 100000
    EndTransactionThreadPoolQueueCapacity: 100000
    # Broker 启动时间
    bootTimestamp                   : 1660531134035
    # Broker 版本
    brokerVersion                   : 401
    # Broker 版本描述
    brokerVersionDesc               : V4_9_4
    # commitLog 目录磁盘使用情况
    commitLogDirCapacity            : Total : 465.7 GiB, Free : 24.4 GiB.
    # commitLog 目录磁盘使用百分比
    commitLogDiskRatio              : 0.95
    commitLogDiskRatio_/usr/local/apache-rocketmq/data/store/commitlog: 0.95
    # commitLog 最大偏移量
    commitLogMaxOffset              : 1599304708
    # commitLog 最小偏移量
    commitLogMinOffset              : 0
    consumeQueueDiskRatio           : 0.95
    # 已在 commit log 中存储未转发到 consume queue 的数据(单位字节)
    dispatchBehindBytes             : 0
    # 可忽略未被使用
    dispatchMaxBuffer               : 0
    # 存储最早消息的时间戳
    earliestMessageTimeStamp        : 1660531324537
    # 拉取时被找到的消息 Tps 统计,分别表示前 10s、1 分钟、10 分钟平均 Tps
    getFoundTps                     : 
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值