kafka + Kafka 브로커 간 또는 브로커와 클라이언트 간에 열려 있는 파일이 너무 많을 수 있습니다.

kafka + Kafka 브로커 간 또는 브로커와 클라이언트 간에 열려 있는 파일이 너무 많을 수 있습니다.

우리는 Apache Kafka 서버에 매우 큰 문제에 직면해 있습니다. Kafka 서버는 "파일이 너무 많이 열려 있습니다."

프로덕션 Kafka 클러스터가 있습니다.7대, Kafka 버전은 다음과 같습니다.0.1

OS 버전 - RHEL 7.5

우리는 "kafka_user_nofile_limit" 도착하다500000, 원래 값은128000

하지만 우리는 다시 높은 가격을 기록했고 브로커들은 무너졌습니다

또한 Kafka 로그에 "열린 파일이 너무 많습니다"라는 줄이 많이 있음을 분명히 알 수 있습니다.

우리는 다음을 보았습니다길라사례

https://issues.apache.org/jira/browse/KAFKA-3317

하지만 우리는 이 Jira에 대한 해결책이 무엇인지 또는 이 주요 문제에 대한 해결책이 무엇인지 알 수 없습니다.

길라에서

 Bug
Status:OPEN
Priority: Major
Resolution:Unresolved
Affects Version/s:
0.9.0.0, 0.9.0.1
Fix Version/s:None
Component/s:None
Labels:None
Environment:CentOS release 6.5 (Final)
kafka_2.11-0.9.0.1
Flags:
Important
Description
there is much open files in my java app client which write msg to kafka broker, i used

<dependency>
<groupId>org.apache.kafka</groupId>
<artifactId>kafka-clients</artifactId>
<version>0.9.0.1</version>
</dependency>
new api to write msg. when i use

lsof -p 8780 | wc -l
19184
lsof -p 8780 | grep XmlIpcRegSvc | wc -l
4920
lsof -p 8780 | grep pipe | wc -l
9576
lsof -p 8780 | grep eventpoll | wc -l
4792
where 8780 is my java app pid.

java 37121 app *796u IPv6 960673997 0t0 TCP mad183:50213->mad180:XmlIpcRegSvc (ESTABLISHED)
there are many ESTABLISHED XmlIpcRegSvc , and seems not closed.
and It likes use ipv6 .


 

내 구성

 more /etc/security/limits.d/kafka.conf

# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License.  You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

kafka   - nofile   500000
kafka   - nproc    65536

관련 정보