Соединитель приемника поиска Kafka Elastic показывает высокую загрузку ЦП

avatar
kushaq flier
9 августа 2021 в 01:27
401
1
0

Я использую соединитель эластичного поискового приемника в распределенном режиме (2 экземпляра). С задачей 8 и от 20 до 25 тем, которые нужно погрузить в эластичный поиск.

Даже если нет записей для приема, рабочий процесс Java показывает 100% загрузку ЦП с использованием xmx(4GB).

Передача записей из конца в конец происходит правильно, но вызывает беспокойство высокая загрузка ЦП.

Пробовал с различными потребительскими настройками, связанными со временем (размер пакета, максимальный интервал опроса), даже включил устойчивость к ошибкам с очередью недоставленных сообщений, ничего из этого не помогло.

мои настройки:

 connector config
 {
    “name”: “elasticsearch-sink”,
    "config”: {
    “connector.class”: “io.confluent.connect.elasticsearch.ElasticsearchSinkConnector”,
    “tasks.max”: “8”,
    “topics.regex”:"(mytopics_\d+$)",
    “key.ignore”: “true”,
    “schema.ignore”: “true”,
    “connection.url”: “http://eshost:esport”,
    “type.name”: “kafka-connect”
}
}

Настройки рабочего процесса:

bootstrap.servers=localhost:9094,localhost:9095
group.id=test-cluster
key.converter=org.apache.kafka.connect.storage.StringConverter
value.converter=org.apache.kafka.connect.json.JsonConverter
key.converter.schemas.enable=false
value.converter.schemas.enable=false
offset.storage.topic=connect-offsets
offset.storage.replication.factor=3
config.storage.topic=connect-configs
config.storage.replication.factor=3
status.storage.topic=connect-status
status.storage.replication.factor=3
status.storage.partitions=8
rest.port=9034
plugin.path=/pluginpath
log4j.rootLogger=DEBUG, stdout

Я пробую это на конфигурации серверного уровня (64 ГБ ОЗУ и 8 ядер виртуальных ЦП), и есть хорошее подключение к Kafka Broker, а также к серверу Elasticsearch.

Любые указатели помогут.

Заранее спасибо.

Источник

Ответы (1)

avatar
Barak
9 августа 2021 в 09:35
0

Конфигурация выглядит нормально. Вам следует попробовать две вещи:

.
  • Переключите регулярное выражение тем на статический список тем. Странные регулярные выражения часто могут вызывать высокую загрузку ЦП, поэтому сначала исключите это.
  • Поднимите уровень ведения журнала подключенных рабочих процессов — надеюсь, это покажет вам виновника. Пример повышения уровня логирования для Connect Workers здесь: https://coderhelper.com/a/68579044/1335661

На основании опубликованного вами файла журнала рабочий процесс подключения опрашивает брокера и немедленно получает пустой ответ, игнорируя предоставленный тайм-аут. Это в основном «занятое ожидание» и является причиной высокой загрузки процессора. Кроме того, метаданные в заголовке запроса выглядят странно — список тем пуст. Не исключено, что во внутренних темах Kafka connect есть мусор. Попробуйте очистить эти темы (https://docs.confluent.io/home/connect/userguide.html#kconnect-internal-topics) или использовать новый брокер.

kushaq flier
9 августа 2021 в 13:30
0

Спасибо @Barak, я пытался использовать расширенные темы, используя параметр темы, чтобы исключить это, даже пытался с одной темой. Но не помогло.

kushaq flier
9 августа 2021 в 14:02
0

Я отправил предыдущий комментарий очень рано :) Спасибо за ссылку на уровень журнала. Я вижу много сообщений такого рода, отправка запроса FETCH с заголовком RequestHeader(apiKey=FETCH, apiVersion=12, clientId=consumer-connect-cluster-test1-1, корреляцияId=304) и тайм-аутом 30000 на узел 1001: FetchRequestData(clusterId = null, replicaId =-1, maxWaitMs = 500, minBytes = 1, maxBytes = 52428800,isolationLevel = 0, sessionId = 1093868571, sessionEpoch = 98, темы = [], забытыйTopicsData = [], RackId = '') (org. apache.kafka.clients.NetworkClient:522) не может понять, какой тайм-аут срабатывает.

Barak
10 августа 2021 в 05:44
0

Разместите образец файла журнала в вопросе, это должно облегчить понимание.

Barak
10 августа 2021 в 05:50
0

Еще один момент: сколько разделов в теме? Кроме того, какая версия Kafka Broker и Kafka Connect worker?

kushaq flier
10 августа 2021 в 14:06
0

Версия Kafka и рабочий процесс подключения используют версию 2.7.0. мои интересующие темы имеют 8 разделов каждый. В темах, связанных с Kafka Connect, есть рекомендуемые разделы (config-1, offset-25, status-8).

kushaq flier
10 августа 2021 в 14:19
0

разместил небольшой файл журнала здесь codepad.org/8eHTQHWS (много повторяется)