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

Я запускаю беглый агент с плавным плагином внутри контейнера Docker. Через некоторое время некоторые программы внутри моего контейнера завершились с ошибкой следующей ошибки:

Check failed: _s.ok() Bad status: Runtime error: Could not create thread: Resource temporarily unavailable (error 11) 

Я обнаружил, что количество файловых дескрипторов внутри контейнера Docker увеличивается бесконечно:

 sudo lsof| grep flume | wc -l 469292 

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

Конфигурация Fluend:

 <source> @type forward tag forward_1 bind 0.0.0.0 port 24224 linger_timeout 0 </source> <match forward_1> @type copy <store> @type flume timeout 15 host localhost port 33333 </store> </match> 

Конфигурация дыма:

 forward_1.sources = source1 forward_1.channels = channel1 forward_1.sinks = sink1 # forward_1.sources.source1.type = thrift forward_1.sources.source1.bind = localhost forward_1.sources.source1.port = 33333 forward_1.sources.source1.channels = channel1 # forward_1.channels.channel1.type = memory forward_1.channels.channel1.capacity = 10000 forward_1.channels.channel1.transactionCapacity = 1000 # forward_1.sinks.sink1.type = org.apache.kudu.flume.sink.KuduSink forward_1.sinks.sink1.channel = channel1 forward_1.sinks.sink1.masterAddresses = 10.1.0.1:7051 forward_1.sinks.sink1.tableName = shop_logs forward_1.sinks.sink1.batchSize = 50 forward_1.sinks.sink1.producer = KuduJsonProducer 

Версия докера: 17.03 Версия для Fluentd: 0.14.19 Версия для флюма: 1.7.0

Есть ли способ ограничить число дескрипторов файлов?

попробуйте добавить «потоки» в источники в конфигурацию вашего лотка. как это:

 forward_1.sources.source1.threads = number_of_threads 

Подробнее о https://flume.apache.org/FlumeUserGuide.html#thrift-source