2017-02-22 23 views
1

Я смотрел на logstash pipeline.workers вариант, который гласит, чтоЯвляется ли стадия ввода logstash многопоточной?

-w, --pipeline.workers COUNT

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

мне было интересно, если logstash входной каскад использует все ядра моей машины:

input { 
    kafka { 
    bootstrap_servers=>"kfk1:9092,kfk2:9092" 
    topics => ["mytopic"] 
    group_id => "mygroup" 
    key_deserializer_class => "org.apache.kafka.common.serialization.ByteArrayDeserializer" 
    value_deserializer_class => "org.apache.kafka.common.serialization.ByteArrayDeserializer" 
    codec => avro { 
     schema_uri => "/apps/schema/rocana3.schema" 
    } 
    } 
} 

ли этот вход> Кафка> кодек> Avro также использует все ядра моей машины или это один резьбовой этап?

ответ

1

Входная конвейерная система Logstash имеет несколько причуд. Он может быть многопоточным, но требует некоторой конфигурации. Это можно сделать двумя способами:

  • Входной плагин имеет параметр workers, не многие из них делают это.
  • Каждый блок input {} будет работать по собственной теме.

Так что, если вы запускаете file {} входной модуль, в котором отсутствует параметр работника конфигурации, каждый файл можно определить, будет обслуживаться одним и только один поток.

Кодеки запускаются в контексте подключаемого модуля, который обычно является однопоточным для каждого вызова.

Где большинство развертываний Logstash, с которыми я столкнулся, используя многие ядра, находится на этапе конвейера filter {}, а не на входе. Вот почему Logstash предоставляет способ настройки количества рабочих трубопроводов. Для ввода или набора входов, вытягивающих тысячи событий в секунду, вы можете загрузить коробку довольно далеко только на конвейере filter {} до output {}.

 Смежные вопросы

  • Нет связанных вопросов^_^