Как настроить logstash на нашей машине, не влияя на производительность?

Мне нужно использовать logstash для чтения некоторой информации журнала из моей собственной системы. Я использую эластичный поиск в качестве вывода logstash. Эластичный поиск будет настроен на другом сервере.

Я читал некоторые статьи и дискуссионные форумы, они столкнулись с проблемой потребления памяти при использовании logstash.

Справочные ссылки:

https://groups.google.com/forum/#!topic/logstash-users/qIdzJmD6pJ4

https://discuss.elastic.co/t/logstash-heap-size/622/6

Как я могу настроить logstash на своем компьютере, не влияя на производительность?

Конфигурации моей системы:

виндовс сервер 2012

8 ГБ ОЗУ

500 ГБ жесткий диск


person LTA    schedule 10.10.2017    source источник
comment
Вам нужно будет настроить максимальную память jvm, чтобы ограничить потребление памяти, и, возможно, установить рабочие потоки на один (чтобы ограничить использование ядра ЦП). Но производительность (с точки зрения пропускной способности) вашего logstash будет сильно ограничена.   -  person baudsp    schedule 10.10.2017
comment
Также ссылки относятся к более старой версии logstash, 1.4, в настоящее время это версия 5.5. И это была утечка памяти, затрагивающая один ввод (tcp), которую должны были исправить в 1.5.   -  person baudsp    schedule 10.10.2017


Ответы (1)


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

Важными факторами являются pipeline.workers, которые зависят от ядер процессора, и размер кучи jvm, влияющий на размер памяти.

https://www.elastic.co/guide/en/logstash/current/tuning-logstash.html

трубопровод.рабочие

Обычно вы устанавливаете значение больше, чем равное количеству ядер. Тем не менее, вы все равно можете установить число меньше, чем ваши ядра. По умолчанию установлено количество ядер.

From logstash.yml
# This defaults to the number of the host's CPU cores.
#
# pipeline.workers: 2

Значение 1 означает, что у вас будет только одна очередь фильтрации/вывода. Теоретически logstash будет последовательно обрабатывать все события.

размер кучи JVM

Поскольку logstash работает на jvm, установка слишком низкого значения приведет к низкой производительности logstash. На вашем месте я бы придерживался значения по умолчанию 1 ГБ.

Надеюсь это поможет.

person Yu Watanabe    schedule 19.10.2017