One interesting thing I learned recently: APM tracing can lead to huge piles of temporary memory allocations. That memory can't be reclaimed until the request/job is complete.

You may use Scout, Datadog, or New Relic to find bloat in your Ruby app but they can also be the cause of memory bloat, especially in long-running jobs. Enable periodic flushing or partial traces to minimize that bloat.

github.com/sidekiq/sidekiq/wik

1
Share
Share on Mastodon
Share on Twitter
Share on Facebook
Share on Linkedin
nate berkopec

Datadog especially should have no excuse, as they should be constantly flushing to the agent. Have you seen DD have a problem specifically?

1
2mo
Replies