Вопрос: Как максимизировать использование сервера fluentd?


У меня есть сервер fluentd, который обрабатывает в среднем 1000 req / s. Этот сервер состоит из 32 процессоров. На этом сервере работают 32 контейнера для докеров-докторов с той же конфигурацией. Точкой входа сервера является nginx как балансировщик нагрузки, настроенный с алгоритмом round-robin и отправляемый в различные контейнеры. Оба, контейнеры и nginx, прослушивают 24224 / tcp.

Вход этих узлов - это 6 приложений на C #, которые используют свободно-регистратор-CSharp для отправки на сервер fluentd. Таким образом, для каждого приложения открывается одно соединение с сервером Fluentd и из-за большого трафика приложение продолжает открывать сокет. Это приводит к тому, что только 6 из 32 докеров обрабатывают запросы.

Как вы могли бы лучше использовать использование сервера без изменения клиента C #?


5
2018-04-26 10:28


Источник




Ответы:


Во-первых, я бы посмотрел, какие узкие места:

Если ваше приложение не перегружает fluentd сервис, тогда зачем использовать 32 ядра?

Если fluentd выход является узким местом, вы можете использовать многопоточность с num_thread вариант; таким образом, вы можете использовать как 5 потоков на 6 fluentd экземпляров, добавляя до 30 ядер, вместо 32 отдельных экземпляров, где используется только 6.

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


1
2017-12-07 00:31