冰海落花

0 声望

这家伙太懒,什么都没留下

个人动态

订阅了 kafka 主题! · 2月前
半兽人 回复 冰海落花 kafka集群网络请求空闲率长期低于1%,所有broker日志报错:Attempting to send response via channel for which there is no open connection, connection id 中 :
kafka集群安装完成之后,就会进行一轮压测。压力固定的情况下,连接和openfile是相对持平的。 建议你也拿客户端进行一轮压测来观察,是否是客户端的问题。
2月前
冰海落花 回复 半兽人 kafka集群网络请求空闲率长期低于1%,所有broker日志报错:Attempting to send response via channel for which there is no open connection, connection id 中 :
应用的客户端运行了2年了,7月份出过一次故障把文件句柄耗光了,之前从未出现过这种问题。现在应用也没反应有啥问题,也能消费,但是总感觉是个不定时炸弹。 现在发现所有kafka进程有211个线程,32个线程cpu利用率都在99.1以上(和num.io.threads=32配置一致),其他线程cpu利用率低于0.5,通过jstack发现: ``` "kafka-request-handler-29" #111 daemon prio=5 os_prio=0 tid=0x00007f0d59653800 nid=0x7dd1 runnable [0x00007f0a46c4a000] java.lang.Thread.State: RUNNABLE at java.util.concurrent.locks.ReentrantReadWriteLock$Sync.tryReleaseShared(ReentrantReadWriteLock.java:440) at java.util.concurrent.locks.AbstractQueuedSynchronizer.releaseShared(AbstractQueuedSynchronizer.java:1341) at java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.unlock(ReentrantReadWriteLock.java:881) at kafka.utils.CoreUtils$.inLock(CoreUtils.scala:252) at kafka.utils.CoreUtils$.inReadLock(CoreUtils.scala:256) at kafka.server.MetadataCache.kafka$server$MetadataCache$$getAliveEndpoint(MetadataCache.scala:107) at kafka.server.MetadataCache$$anonfun$kafka$server$MetadataCache$$getEndpoints$1.apply$mcVI$sp(MetadataCache.scala:57) at kafka.server.MetadataCache$$anonfun$kafka$server$MetadataCache$$getEndpoints$1.apply(MetadataCache.scala:56) at kafka.server.MetadataCache$$anonfun$kafka$server$MetadataCache$$getEndpoints$1.apply(MetadataCache.scala:56) at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59) at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:48) at kafka.server.MetadataCache.kafka$server$MetadataCache$$getEndpoints(MetadataCache.scala:56) at kafka.server.MetadataCache$$anonfun$kafka$server$MetadataCache$$getPartitionMetadata$1$$anonfun$apply$1.apply(MetadataCache.scala:84) at kafka.server.MetadataCache$$anonfun$kafka$server$MetadataCache$$getPartitionMetadata$1$$anonfun$apply$1.apply(MetadataCache.scala:69) at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234) at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:234) at scala.collection.mutable.HashMap$$anonfun$foreach$1.apply(HashMap.scala:130) at scala.collection.mutable.HashMap$$anonfun$foreach$1.apply(HashMap.scala:130) at scala.collection.mutable.HashTable$class.foreachEntry(HashTable.scala:236) at scala.collection.mutable.HashMap.foreachEntry(HashMap.scala:40) at scala.collection.mutable.HashMap.foreach(HashMap.scala:130) at scala.collection.TraversableLike$class.map(TraversableLike.scala:234) at scala.collection.AbstractTraversable.map(Traversable.scala:104) at kafka.server.MetadataCache$$anonfun$kafka$server$MetadataCache$$getPartitionMetadata$1.apply(MetadataCache.scala:69) at kafka.server.MetadataCache$$anonfun$kafka$server$MetadataCache$$getPartitionMetadata$1.apply(MetadataCache.scala:68) at scala.Option.map(Option.scala:146) at kafka.server.MetadataCache.kafka$server$MetadataCache$$getPartitionMetadata(MetadataCache.scala:68) at kafka.server.MetadataCache$$anonfun$getTopicMetadata$1$$anonfun$apply$8.apply(MetadataCache.scala:117) at kafka.server.MetadataCache$$anonfun$getTopicMetadata$1$$anonfun$apply$8.apply(MetadataCache.scala:116) at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:241) at scala.collection.TraversableLike$$anonfun$flatMap$1.apply(TraversableLike.scala:241) at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59) at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:48) at scala.collection.TraversableLike$class.flatMap(TraversableLike.scala:241) at scala.collection.AbstractTraversable.flatMap(Traversable.scala:104) at kafka.server.MetadataCache$$anonfun$getTopicMetadata$1.apply(MetadataCache.scala:116) at kafka.server.MetadataCache$$anonfun$getTopicMetadata$1.apply(MetadataCache.scala:116) at kafka.utils.CoreUtils$.inLock(CoreUtils.scala:250) at kafka.utils.CoreUtils$.inReadLock(CoreUtils.scala:256) at kafka.server.MetadataCache.getTopicMetadata(MetadataCache.scala:115) at kafka.server.KafkaApis.getTopicMetadata(KafkaApis.scala:937) at kafka.server.KafkaApis.handleTopicMetadataRequest(KafkaApis.scala:1015) at kafka.server.KafkaApis.handle(KafkaApis.scala:107) at kafka.server.KafkaRequestHandler.run(KafkaRequestHandler.scala:69) at java.lang.Thread.run(Thread.java:745) ``` 这有哪些可能造成的呢。
2月前
半兽人 回复 冰海落花 kafka集群网络请求空闲率长期低于1%,所有broker日志报错:Attempting to send response via channel for which there is no open connection, connection id 中 :
15秒-30秒,默认超时时间即可,集群越热,超时时间应越长,否则会导致雪崩。 是可以通过扩容解决目前的问题。 but,从你提供的数据分析(网络连接过多)我个人觉得你的客户端程序写的有问题,kakfa的生产者是长连接,一旦建立,就用该连接持续发送消息,你是不是发完一条消息就关了,重新建立?
2月前
关注了用户 ighack · 2月前
冰海落花 回复 ighack kafka报错打开文件数过多导致kafka关闭? 中 :
请问这个告警解决了吗
2月前
冰海落花 回复 半兽人 kafka集群网络请求空闲率长期低于1%,所有broker日志报错:Attempting to send response via channel for which there is no open connection, connection id 中 :
谢谢大佬回复,现在情况如下: 1. 现在白天业务繁忙的时候,网络等待空闲率都低于3%,晚上没业务时可以达到30-60%,白天网络请求队列基本是满的(500)。 2. 应用agent连接kafka默认超时时间是600ms,但是配置文件里写的是15秒(只有没配置采用600ms),这个推荐配置是多少? 3. 网上有答案:如果太快重新连接, 响应未完成时重新连接,broker将未完成的响应发送到具有重用端口的新连接。新连接将以相关标识(connection id )不匹配结束,会出现WRNING,其中`send response via channel for which there is no open connection,connection id broker ip:16667-应用ip:59454-1976888 (kafka.network.Processor) ` 里面的59454是应用连接kafka的端口吧,`1976888`是啥,id吗 4.使用`lsof -n|awk '{print $2}'|sort|uniq -c|sort -nr|grep`查看kafka进程打开的文件数竟然有300多万,但是主机配置`ulimit -a`显示`1024000`,主机监控报表显示句柄数正常,5万不到,执行命令的时候需要几分钟才能返回,是不是命令返回的是几分钟内打开的文件数总和? 5.能否通过扩容节点解决目前的问题呢?
2月前

(゚∀゚ )
暂时没有任何数据