Skip to content

Higher memory footprint after switching from Goliath/EventMachine to Falcon/Async #363

Description

@tleish

We’re evaluating Falcon as a replacement for Goliath/EventMachine and ran into something we weren’t expecting. (We tried switching a while ago, but ran into some issues with a customer).

We temporarily migrated our API servers from Goliath/EventMachine to Falcon/Async. CPU utilization stayed roughly the same (if anything, slightly lower), but memory usage increased significantly and remained elevated until we switched back.

During the migration:

  • We gradually moved traffic from Goliath to Falcon.
  • As more servers were moved to Falcon, memory usage increased across those hosts.
  • CPU stayed within the same general range as before.
  • Once we rolled all servers back to Goliath, memory immediately returned to the previous baseline.

We’re trying to understand whether this is expected behavior or if there’s something we’re missing.

A few questions:

  • Are there any common causes of higher memory usage when moving from EventMachine to Falcon/Async?
  • Is there anything specific we should profile?
  • Are there Falcon or Async configuration options that commonly affect memory footprint?
  • Are there known patterns or pitfalls that can lead to memory growth under sustained load?
  • We are running on slightly older gem versions (see below), so maybe there was a known issue with an other version?

If there are any recommended profiling tools or diagnostics you’d like us to collect, we’re happy to do that.

Thanks!

  • falcon 0.54.3
  • async 2.37.0
  • ruby 3.2.10

Memory

Image

CPU

Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions