Skip to content

High CPU usage (when idle) when there are multiple out_foward block with multiple downstream nodesΒ #1852

Open
@caseyvu

Description

Fluentd version 0.14.20
OS: centos7
AWS EC2 m4.large

Problem: CPU usage is very high. The fluentd only setup with 1 worker and the usage is consistently >90% on 1 CPU core even when there's no traffic at all.
I notice the CPU usage increase as the number of block increase or the number of dowstream nodes increase.
My fluentd config is as below:

<system>
  root_dir /var/log/fluentd
</system>
<source>
  @type forward
  port 24226
  chunk_size_limit 128M
  <security>
    self_hostname "receiver-1"
    shared_key "xxxxxx"
  </security>
  <transport tls>
    cert_path "<path-to-public-key>"
    private_key_path "<path-to-private-key>"
  </transport>
</source>

<match data_1>
  @type copy

  <store>
    @id data_1_downstream_1
    @type forward
    require_ack_response true
    transport tls
    tls_cert_path "<path-to-CA-cert>"

    <security>
      self_hostname "receiver-1"
      shared_key "yyyyyy"
    </security>



    <server>
      host downstream_1-1
      port 24224
    </server>

    <server>
      host downstream_1-2
      port 24224
    </server>

    <server>
      host downstream_1-3
      port 24224
    </server>

    <server>
      host downstream_1-4
      port 24224
    </server>

    <buffer tag,t>
      @type file
      flush_mode interval
      flush_interval 2s
      retry_forever true
      retry_type periodic
      retry_wait 60s
      chunk_limit_size 67108864
      total_limit_size 68719476736
    </buffer>
  </store>

</match>
<match data_2>
  @type copy

  <store>
    @id data_2_downstream_1
    @type forward
    require_ack_response true
    transport tls
    tls_cert_path "<path-to-CA-cert>"

    <security>
      self_hostname "receiver-1"
      shared_key "yyyyyy"
    </security>



    <server>
      host downstream_1-1
      port 24224
    </server>

    <server>
      host downstream_1-2
      port 24224
    </server>

    <server>
      host downstream_1-3
      port 24224
    </server>

    <server>
      host downstream_1-4
      port 24224
    </server>



    <buffer tag,t>
      @type file
      flush_mode interval
      flush_interval 2s
      retry_forever true
      retry_type periodic
      retry_wait 60s
      chunk_limit_size 67108864
      total_limit_size 68719476736
    </buffer>
  </store>

</match>
<match data_3>
  @type copy

  <store>
    @id data_3_downstream_1
    @type forward
    require_ack_response true
    transport tls
    tls_cert_path "<path-to-CA-cert>"

    <security>
      self_hostname "receiver-1"
      shared_key "yyyyyy"
    </security>



    <server>
      host downstream_1-1
      port 24224
    </server>

    <server>
      host downstream_1-2
      port 24224
    </server>

    <server>
      host downstream_1-3
      port 24224
    </server>

    <server>
      host downstream_1-4
      port 24224
    </server>



    <buffer tag,t>
      @type file
      flush_mode interval
      flush_interval 2s
      retry_forever true
      retry_type periodic
      retry_wait 60s
      chunk_limit_size 67108864
      total_limit_size 68719476736
    </buffer>
  </store>

</match>
<match data_4>
  @type copy

  <store>
    @id data_4_downstream_1
    @type forward
    require_ack_response true
    transport tls
    tls_cert_path "<path-to-CA-cert>"

    <security>
      self_hostname "receiver-1"
      shared_key "yyyyyy"
    </security>



    <server>
      host downstream_1-1
      port 24224
    </server>

    <server>
      host downstream_1-2
      port 24224
    </server>

    <server>
      host downstream_1-3
      port 24224
    </server>

    <server>
      host downstream_1-4
      port 24224
    </server>



    <buffer tag,t>
      @type file
      flush_mode interval
      flush_interval 2s
      retry_forever true
      retry_type periodic
      retry_wait 60s
      chunk_limit_size 67108864
      total_limit_size 68719476736
    </buffer>
  </store>

</match>
<match data_5>
  @type copy

  <store>
    @id data_5_downstream_1
    @type forward
    require_ack_response true
    transport tls
    tls_cert_path "<path-to-CA-cert>"

    <security>
      self_hostname "receiver-1"
      shared_key "yyyyyy"
    </security>



    <server>
      host downstream_1-1
      port 24224
    </server>

    <server>
      host downstream_1-2
      port 24224
    </server>

    <server>
      host downstream_1-3
      port 24224
    </server>

    <server>
      host downstream_1-4
      port 24224
    </server>



    <buffer tag,t>
      @type file
      flush_mode interval
      flush_interval 2s
      retry_forever true
      retry_type periodic
      retry_wait 60s
      chunk_limit_size 67108864
      total_limit_size 68719476736
    </buffer>
  </store>

  <store>
    @id data_5_downstream_2
    @type forward
    require_ack_response true
    transport tls
    tls_cert_path "<path-to-CA-cert>"

    <security>
      self_hostname "receiver-1"
      shared_key "yyyyyy"
    </security>



    <server>
      host downstream_2-1
      port 24224
    </server>

    <server>
      host downstream_2-2
      port 24224
    </server>



    <buffer tag,t>
      @type file
      flush_mode interval
      flush_interval 2s
      retry_forever true
      retry_type periodic
      retry_wait 60s
      chunk_limit_size 67108864
      total_limit_size 68719476736
    </buffer>
  </store>

</match>
<match data_6>
  @type copy

  <store>
    @id data_6_downstream_1
    @type forward
    require_ack_response true
    transport tls
    tls_cert_path "<path-to-CA-cert>"

    <security>
      self_hostname "receiver-1"
      shared_key "yyyyyy"
    </security>



    <server>
      host downstream_1-1
      port 24224
    </server>

    <server>
      host downstream_1-2
      port 24224
    </server>

    <server>
      host downstream_1-3
      port 24224
    </server>

    <server>
      host downstream_1-4
      port 24224
    </server>



    <buffer tag,t>
      @type file
      flush_mode interval
      flush_interval 2s
      retry_forever true
      retry_type periodic
      retry_wait 60s
      chunk_limit_size 67108864
      total_limit_size 68719476736
    </buffer>
  </store>

  <store>
    @id data_6_downstream_2
    @type forward
    require_ack_response true
    transport tls
    tls_cert_path "<path-to-CA-cert>"

    <security>
      self_hostname "receiver-1"
      shared_key "yyyyyy"
    </security>



    <server>
      host downstream_2-1
      port 24224
    </server>

    <server>
      host downstream_2-2
      port 24224
    </server>



    <buffer tag,t>
      @type file
      flush_mode interval
      flush_interval 2s
      retry_forever true
      retry_type periodic
      retry_wait 60s
      chunk_limit_size 67108864
      total_limit_size 68719476736
    </buffer>
  </store>

</match>
<match data_7>
  @type copy

  <store>
    @id data_7_downstream_1
    @type forward
    require_ack_response true
    transport tls
    tls_cert_path "<path-to-CA-cert>"

    <security>
      self_hostname "receiver-1"
      shared_key "yyyyyy"
    </security>



    <server>
      host downstream_1-1
      port 24224
    </server>

    <server>
      host downstream_1-2
      port 24224
    </server>

    <server>
      host downstream_1-3
      port 24224
    </server>

    <server>
      host downstream_1-4
      port 24224
    </server>



    <buffer tag,t>
      @type file
      flush_mode interval
      flush_interval 2s
      retry_forever true
      retry_type periodic
      retry_wait 60s
      chunk_limit_size 67108864
      total_limit_size 68719476736
    </buffer>
  </store>

  <store>
    @id data_7_downstream_2
    @type forward
    require_ack_response true
    transport tls
    tls_cert_path "<path-to-CA-cert>"

    <security>
      self_hostname "receiver-1"
      shared_key "yyyyyy"
    </security>



    <server>
      host downstream_2-1
      port 24224
    </server>

    <server>
      host downstream_2-2
      port 24224
    </server>



    <buffer tag,t>
      @type file
      flush_mode interval
      flush_interval 2s
      retry_forever true
      retry_type periodic
      retry_wait 60s
      chunk_limit_size 67108864
      total_limit_size 68719476736
    </buffer>
  </store>

</match>
<match data_8>
  @type copy

  <store>
    @id data_8_downstream_1
    @type forward
    require_ack_response true
    transport tls
    tls_cert_path "<path-to-CA-cert>"

    <security>
      self_hostname "receiver-1"
      shared_key "yyyyyy"
    </security>



    <server>
      host downstream_1-1
      port 24224
    </server>

    <server>
      host downstream_1-2
      port 24224
    </server>

    <server>
      host downstream_1-3
      port 24224
    </server>

    <server>
      host downstream_1-4
      port 24224
    </server>



    <buffer tag,t>
      @type file
      flush_mode interval
      flush_interval 2s
      retry_forever true
      retry_type periodic
      retry_wait 60s
      chunk_limit_size 67108864
      total_limit_size 68719476736
    </buffer>
  </store>

</match>
<match data_9>
  @type copy

  <store>
    @id data_9_downstream_1
    @type forward
    require_ack_response true
    transport tls
    tls_cert_path "<path-to-CA-cert>"

    <security>
      self_hostname "receiver-1"
      shared_key "yyyyyy"
    </security>



    <server>
      host downstream_1-1
      port 24224
    </server>

    <server>
      host downstream_1-2
      port 24224
    </server>

    <server>
      host downstream_1-3
      port 24224
    </server>

    <server>
      host downstream_1-4
      port 24224
    </server>



    <buffer tag,t>
      @type file
      flush_mode interval
      flush_interval 2s
      retry_forever true
      retry_type periodic
      retry_wait 60s
      chunk_limit_size 67108864
      total_limit_size 68719476736
    </buffer>
  </store>

  <store>
    @id data_9_downstream_2
    @type forward
    require_ack_response true
    transport tls
    tls_cert_path "<path-to-CA-cert>"

    <security>
      self_hostname "receiver-1"
      shared_key "yyyyyy"
    </security>



    <server>
      host downstream_2-1
      port 24224
    </server>

    <server>
      host downstream_2-2
      port 24224
    </server>



    <buffer tag,t>
      @type file
      flush_mode interval
      flush_interval 2s
      retry_forever true
      retry_type periodic
      retry_wait 60s
      chunk_limit_size 67108864
      total_limit_size 68719476736
    </buffer>
  </store>

</match>
<match data_10>
  @type copy

  <store>
    @id data_10_downstream_1
    @type forward
    require_ack_response true
    transport tls
    tls_cert_path "<path-to-CA-cert>"

    <security>
      self_hostname "receiver-1"
      shared_key "yyyyyy"
    </security>



    <server>
      host downstream_1-1
      port 24224
    </server>

    <server>
      host downstream_1-2
      port 24224
    </server>

    <server>
      host downstream_1-3
      port 24224
    </server>

    <server>
      host downstream_1-4
      port 24224
    </server>



    <buffer tag,t>
      @type file
      flush_mode interval
      flush_interval 2s
      retry_forever true
      retry_type periodic
      retry_wait 60s
      chunk_limit_size 67108864
      total_limit_size 68719476736
    </buffer>
  </store>

  <store>
    @id data_10_downstream_2
    @type forward
    require_ack_response true
    transport tls
    tls_cert_path "<path-to-CA-cert>"

    <security>
      self_hostname "receiver-1"
      shared_key "yyyyyy"
    </security>



    <server>
      host downstream_2-1
      port 24224
    </server>

    <server>
      host downstream_2-2
      port 24224
    </server>



    <buffer tag,t>
      @type file
      flush_mode interval
      flush_interval 2s
      retry_forever true
      retry_type periodic
      retry_wait 60s
      chunk_limit_size 67108864
      total_limit_size 68719476736
    </buffer>
  </store>

</match>
<match data_11>
  @type copy

  <store>
    @id data_11_downstream_1
    @type forward
    require_ack_response true
    transport tls
    tls_cert_path "<path-to-CA-cert>"

    <security>
      self_hostname "receiver-1"
      shared_key "yyyyyy"
    </security>



    <server>
      host downstream_1-1
      port 24224
    </server>

    <server>
      host downstream_1-2
      port 24224
    </server>

    <server>
      host downstream_1-3
      port 24224
    </server>

    <server>
      host downstream_1-4
      port 24224
    </server>



    <buffer tag,t>
      @type file
      flush_mode interval
      flush_interval 2s
      retry_forever true
      retry_type periodic
      retry_wait 60s
      chunk_limit_size 67108864
      total_limit_size 68719476736
    </buffer>
  </store>

  <store>
    @id data_11_downstream_2
    @type forward
    require_ack_response true
    transport tls
    tls_cert_path "<path-to-CA-cert>"

    <security>
      self_hostname "receiver-1"
      shared_key "yyyyyy"
    </security>



    <server>
      host downstream_2-1
      port 24224
    </server>

    <server>
      host downstream_2-2
      port 24224
    </server>



    <buffer tag,t>
      @type file
      flush_mode interval
      flush_interval 2s
      retry_forever true
      retry_type periodic
      retry_wait 60s
      chunk_limit_size 67108864
      total_limit_size 68719476736
    </buffer>
  </store>

</match>
<match data_12>
  @type copy

  <store>
    @id data_12_downstream_1
    @type forward
    require_ack_response true
    transport tls
    tls_cert_path "<path-to-CA-cert>"

    <security>
      self_hostname "receiver-1"
      shared_key "yyyyyy"
    </security>



    <server>
      host downstream_1-1
      port 24224
    </server>

    <server>
      host downstream_1-2
      port 24224
    </server>

    <server>
      host downstream_1-3
      port 24224
    </server>

    <server>
      host downstream_1-4
      port 24224
    </server>



    <buffer tag,t>
      @type file
      flush_mode interval
      flush_interval 2s
      retry_forever true
      retry_type periodic
      retry_wait 60s
      chunk_limit_size 67108864
      total_limit_size 68719476736
    </buffer>
  </store>

  <store>
    @id data_12_downstream_2
    @type forward
    require_ack_response true
    transport tls
    tls_cert_path "<path-to-CA-cert>"

    <security>
      self_hostname "receiver-1"
      shared_key "yyyyyy"
    </security>



    <server>
      host downstream_2-1
      port 24224
    </server>

    <server>
      host downstream_2-2
      port 24224
    </server>



    <buffer tag,t>
      @type file
      flush_mode interval
      flush_interval 2s
      retry_forever true
      retry_type periodic
      retry_wait 60s
      chunk_limit_size 67108864
      total_limit_size 68719476736
    </buffer>
  </store>

</match>

<match **>
  @type null
</match>

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions