rocketmq 压测参数调优

更新

以下压测内容已作废,rocketmq的tps上不来的核心问题,应该和我使用的VirtualBox的网卡配置有关系,因为网卡或者网络的抖动,导致TPS一直上不去,把虚拟网卡从intel的千M改为virtio以后,现在的TPS已经到16000左右(单broker使用16G内存下,128个线程的生产者)

系统配置
版本 rocketmq 4.61 
服务器 18G内存 VM   4核
运行方式  官方最小集群   1个nameserver进程  3个 broker进程
压测方式 : 基于官方生产者程序,改造为64个线程的生产者.
备注:使用官方推荐的G1做回收器
原始JVM参数
-server -Xmx5g -Xms5g -XX:MaxGCPauseMillis=30 -XX:+UseG1GC -XX:G1HeapRegionSize=8m -XX:G1ReservePercent=25 
-XX:InitiatingHeapOccupancyPercent=30 -XX:SoftRefLRUPolicyMSPerMB=0 -verbose:gc 
-Xloggc:/dev/shm/rmq_broker_gc_%p_%t.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps 
-XX:+PrintGCApplicationStoppedTime -XX:+Pri
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
RocketMQ是一个高可用、高性能、可伸缩的分布式消息中间件系统。当使用RocketMQ时,优化内存使用是很重要的,可提高系统的性能和效率。以下是一些RocketMQ内存调优的建议: 1. 设置JVM内存参数:在RocketMQ应用程序中,可以通过设置JVM内存参数来限制JVM虚拟机的使用内存。通过设置-Xmx和-Xms参数,可以指定JVM最大和最小使用的内存。将这两个参数设置为相同的值,可以避免JVM在运行时动态扩展内存,这有助于减少在堆栈中的GC发生。 2. 调整消息存储路径: RocketMQ中的消息存储是基于文件系统文件的形式,因此在存储消息时会产生大量的文件。过多的文件会使磁盘IO过载、使系统执行缓慢。因此需要在存储路径上对消息存储进行优化,最好是使用SSD硬盘,并定时清理过期的数据,以减少存储文件的数量。 3. 配置内存缓存方式:RocketMQ可以使用内部缓存缓存数据,以减轻内存使用量、提高读取性能。可使用RocketMQ的消息存储的缓存方式,通过setting.levelDBCacheSize配置来控制缓存大小,同时也可以降低磁盘IO操作。 4. 确定使用同步与异步刷盘:RocketMQ拥有同步刷盘和异步刷盘两种方式,可通过setting.syncFlush设置其方式。如果需要高性能的话,建议使用异步刷盘,虽然这样速度比较快,但也有可能导致数据的丢失。如果需要更高可靠性的话,可以使用同步方式刷盘。 5. 控制消息堆积:如果在消息消费不及时的情况下,RocketMQ将会堆积这些消息,占据更多的内存。为了避免这种情况,可以通过消费者实例数量的控制,这样可以让消费者尽快的处理掉所有的消息,从而降低堆积使用。 总之,在调优RocketMQ时,需要综合考虑磁盘IO、内存使用量、网络延迟等因素。通过配置JVM内存参数、优化硬件设备、选择合适的内存缓存方式、确定使用同步与异步刷盘方式和控制消息堆积,可以有效地优化RocketMQ的内存使用效率,从而达到更好的系统性能。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值