Я экспериментировал с flume ng (flume-ng-1.2.0+24.81-1~lucid) и сравнивал производительность канала памяти и файлового канала.
Каждое событие в моей тестовой системе имеет размер 1 КБ, и с моей текущей конфигурацией я могу обрабатывать около 30 000 EPS, используя канал памяти. Однако при использовании файлового канала я могу обрабатывать только около 1600 EPS.
В среднем я ожидаю получить в среднем 2500 EPS в своей производственной системе, и я хотел бы использовать файловый канал, чтобы обеспечить приблизительно 1-часовую буферизацию событий в случае сбоя приемника (я использую приемник HDFS с подключением 1 Гбит/с). к кластеру Hadoop).
Это моя конфигурация файлового канала:
agent.channels.c1.checkpointDir = ~/.flume/file-channel/checkpoint
agent.channels.c1.dataDirs = ~/.flume/file-channel/data
agent.channels.c1.transactionCapacity = 13107200
agent.channels.c1.checkpointInterval = 30000
agent.channels.c1.maxFileSize = 9216000000
agent.channels.c1.minimumRequiredSpace = 524288000
agent.channels.c1.capacity = 9000000
agent.channels.c1.keep-alive = 3
agent.channels.c1.write-timeout = 3
agent.channels.c1.checkpoint-timeout = 600
agent.channels.c1.use-log-replay-v1 = FALSE
agent.channels.c1.use-fast-replay = FALSE
Размер партии для моего приемника HDFS установлен на 5000.
Может ли кто-нибудь дать какие-либо рекомендации относительно того, как я могу улучшить производительность моего файлового канала?
Спасибо