Skip to content

OOM under the aarch64 architecture #3277

@ledefe

Description

@ledefe

OOM is caused by too many consumerManageExecutor task

By looking at the source code, I learned that consumerManagerThreadPoolQueueCapacity has settings but is not used. As shown below.....

this.consumerManagerThreadPoolQueue = new LinkedBlockingQueue<Runnable>(this.brokerConfig.getConsumerManagerThreadPoolQueueCapacity());
....
 this.consumerManageExecutor =
                    Executors.newFixedThreadPool(this.brokerConfig.getConsumerManageThreadPoolNums(), new ThreadFactoryImpl(
                            "ConsumerManageThread_"));

I want to know why unbounded queues are used .Is there any special design?

By the way, this problem occurs under the aarch64 architecture. There is no such problem under AMD architecture.

JVM:

-XX:+UseG1GC -XX:G1HeapRegionSize=16m -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=30 -XX:SoftRefLRUPolicyMSPerMB=0 -XX:SurvivorRatio=8 -verbose:gc -Xloggc:/dev/shm/mq_gc_%p.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps -XX:+PrintGCApplicationStoppedTime -XX:+PrintAdaptiveSizePolicy -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=5 -XX:GCLogFileSize=30m -XX:-OmitStackTraceInFastThrow -XX:+AlwaysPreTouch -XX:MaxDirectMemorySize=1073741824 -XX:-UseLargePages -XX:-UseBiasedLocking -Djava.ext.dirs=/opt/jre/jre/lib/ext:/opt/rocketmq/bin/../lib -Xms2g -Xmx2g -Xmn1g -Drocketmq.broker.rebalance.lockMaxLiveTime=7000 -cp .:/opt/rocketmq/bin/../conf: org.apache.rocketmq.broker.BrokerStartup -c /opt/rocketmq/conf/broker.conf

Metadata

Metadata

Assignees

No one assigned

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions