Skip to content

[Question] Why does memory usage increase over time when running Agones SDK Health checks in a Go gRPC server? #4210

@galileo1721

Description

@galileo1721

Hi team,

I have a question regarding memory usage in a Go-based gRPC server managed by Agones.

What am I trying to understand?

  • Is the steady increase in memory usage over time expected behavior when calling agones.dev.sdk.Health() every second?
  • Or is there something wrong with the way we’re using the Agones SDK or gRPC client?

What I did

We deployed a lightweight gRPC server written in Go inside an Agones-managed Pod. The only thing the server does is call the Agones SDK’s Health() function once every second. No other game logic or load is running.

We observed the container’s memory usage over time using Datadog and found that memory increases linearly at a rate of approximately 1 to 3 MiB per hour.

When we commented out the Health() call, the memory growth stopped.

We also reproduced this same behavior in a C++ server calling the equivalent Agones SDK health function.

Why this matters

We intend to run these Pods continuously for several days or weeks, and this rate of memory growth is not sustainable. We'd like to know if:

  • Is this a known behavior of the Agones SDK or gRPC?
  • Or if we should change our usage pattern or perform cleanup

Environment

  • Kubernetes: EKS 1.32
  • Agones: v1.48
  • Language: Go 1.23.10
  • gRPC: v1.73.0
  • SDK Usage: agones.dev/sdk-go and agones.dev/sdk-cpp

Any insights, recommendations, or confirmation of expected behavior would be greatly appreciated.

Thank you!

Metadata

Metadata

Assignees

No one assigned

    Labels

    awaiting-maintainerBlock issues from being stale/obsolete/closedhelp wantedWe would love help on these issues. Please come help us!

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions