Skip to content

Parser Filter on Docker reduces Fluent Bit benchmark performance from 100MB/s to 15MB/s #7633

Description

@mselinger75

Bug Report

Describe the bug
I have a log generator which produces 30mb/sec logs to the file. Then I have FluentBit setup to tail this file, and send to NULL output.
When I look at FluentBit metrics I see that number of logs processed by tail input is way less than number of logs generated.
I've tried with different log volumes:
100mb/sec, 50mb/sec, 30mb/sec, 15mb/sec. The only rate I see FluentBit is able to keep up with is 15mb/sec.

I tested on versions 1.9.8 and 2.1.6, for 2.1.6 I've tried threaded on - didn't help.
For 2.1.6 when I set threaded on - I see a lot of errors in FluentBit log:

[tail.0] failed buffer write, retries=0
[tail.0] failed buffer write, retries=0
[tail.0] failed buffer write, retries=0
[tail.0] failed buffer write, retries=0
[tail.0] failed buffer write, retries=0
[tail.0] failed buffer write, retries=0
[tail.0] failed buffer write, retries=0

To Reproduce
My config:

[SERVICE]
    Flush         1
    Log_Level     info
    Daemon        off
    Parsers_File  parsers.conf
    HTTP_Server   On
    HTTP_Listen   0.0.0.0
    HTTP_Port     2020
    storage.metrics            on
    storage.sync               normal
    storage.checksum           off
    storage.max_chunks_up      128
    storage.backlog.mem_limit  100M
    storage.path               /var/log/flb/storage/

[FILTER]
    Name parser
    Match k8s_audit
    Key_Name log
    Parser docker

[INPUT]
    Name               tail
    Tag                k8s_audit
    Path               /usr/local/home/test/fluentbit/output.txt
    DB                 /var/log/flb/fluent-bit.db
    DB.locking         true
    Read_from_Head     false
    Buffer_Max_Size    20M
    Buffer_Chunk_Size  2MB
    Mem_Buf_Limit      100MB
    Refresh_Interval   5
    #Rotate_Wait 15
    storage.type       filesystem
    threaded on
    Skip_Long_Lines    On

[Output]
    Name null
    Match k8s_audit
    Retry_Limit               no_limits
    workers 8
  • Steps to reproduce the problem:
    Run FluentBit with config above:
    bin/fluent-bit -c /usr/local/home/test/fluentbit/fluent-bit.conf

Generate logs to /usr/local/home/test/fluentbit/output.txt
Check that FluentBit metrics are behind the logs volume by looking at http://localhost:2020/api/v1/metrics

Expected behavior
FluentBit should be able to keep up with logs volume

Your Environment
Debian 6.1.25-1rodete1 (2023-05-11) x86_64 GNU/Linux

  • Version used:
    Both 1.9.8 and 2.1.6

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions