[ https://issues.apache.org/jira/browse/KAFKA-12507?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17304593#comment-17304593 ]
Wenbing Shen commented on KAFKA-12507: -------------------------------------- How much do you set about these parameters: -XX:MaxDirectMemorySize、num.network.threads、socket.request.max.bytes We have encountered the same problem in the environment of our customers. We set -XX:MaxDirectMemorySize=2G 、num.network.threads=120,Later, I circumvented this problem by calculating real-time traffic and reducing the num.network.threads. > java.lang.OutOfMemoryError: Direct buffer memory > ------------------------------------------------ > > Key: KAFKA-12507 > URL: https://issues.apache.org/jira/browse/KAFKA-12507 > Project: Kafka > Issue Type: Bug > Components: core > Environment: kafka version: 2.0.1 > java version: > java version "1.8.0_211" > Java(TM) SE Runtime Environment (build 1.8.0_211-b12) > Java HotSpot(TM) 64-Bit Server VM (build 25.211-b12, mixed mode) > the command we use to start kafka broker: > java -Xmx1G -Xms1G -server -XX:+UseG1GC -XX:MaxGCPauseMillis=20 > -XX:InitiatingHeapOccupancyPercent=35 -Djava.awt.headless=true > -XX:+ExplicitGCInvokesConcurrent > Reporter: diehu > Priority: Major > > Hi, we have three brokers in our kafka cluster, and we use scripts to send > data to kafka at a rate of about 3.6w eps. After about one month, we got the > OOM error: > {code:java} > [2021-01-09 17:12:24,750] ERROR Processor got uncaught exception. > (kafka.network.Processor) > java.lang.OutOfMemoryError: Direct buffer memory > at java.nio.Bits.reserveMemory(Bits.java:694) > at java.nio.DirectByteBuffer.<init>(DirectByteBuffer.java:123) > at java.nio.ByteBuffer.allocateDirect(ByteBuffer.java:311) > at sun.nio.ch.Util.getTemporaryDirectBuffer(Util.java:241) > at sun.nio.ch.IOUtil.read(IOUtil.java:195) > at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380) > at > org.apache.kafka.common.network.PlaintextTransportLayer.read(PlaintextTransportLayer.java:104) > at > org.apache.kafka.common.network.NetworkReceive.readFrom(NetworkReceive.java:117) > at > org.apache.kafka.common.network.KafkaChannel.receive(KafkaChannel.java:335) > at > org.apache.kafka.common.network.KafkaChannel.read(KafkaChannel.java:296) > at org.apache.kafka.common.network.Selector.attemptRead(Selector.java:562) > at > org.apache.kafka.common.network.Selector.pollSelectionKeys(Selector.java:498) > at org.apache.kafka.common.network.Selector.poll(Selector.java:427) > at kafka.network.Processor.poll(SocketServer.scala:679) > at kafka.network.Processor.run(SocketServer.scala:584) > at java.lang.Thread.run(Thread.java:748){code} > the kafka server is not shutdown, but always get this error. And at the same > time, data can not be produced to kafka cluster, consumer can not consume > data from kafka cluster. > We used the recommended java parameter XX:+ExplicitGCInvokesConcurrent but > it seems not useful. > Only kafka cluster restart helps to fix this problem. > -- This message was sent by Atlassian Jira (v8.3.4#803005)