GOMEMLIMIT clarification

Description

The documentation for optimizing Weaviate performance mentions setting the GOMEMLIMIT env variable on Weaviate replicas to 10-20% of the total memory available on the host.

However, there is a blog post where it’s set to ~45% of the max RAM.

What factor am I actually looking at here to know how to set that optimally? Based on what’s said in that article (I may be misunderstanding), I would assume that I’d set it to close to the max RAM available, with a buffer of maybe 10%.

I’m also running Weaviate in a very controlled K8s environment where each replica gets its own node, so there are no other processes or anything involved. I suspect that also contributes to the recommendation.

Server Setup Information

  • Weaviate Server Version: 1.26.6
  • Deployment Method: k8s
  • Multi Node? Number of Running Nodes: 3
  • Client Language and Version: N/A
  • Multitenancy?: No

hi @elias.gabriel !

Nice catch!

Thank you VERY MUCH :hugs:

I checked with our team, and the recommendation is the other way around:

Setting GOMEMLIMIT between 90%-80% of your TOTAL memory. This room can be used for any exceeding memory that the runtime may require under pressure.

Certain specific cases may require a different configuration.

I will change that in our docs ASAP.

Thanks again!

Ah ok! I thought there was something I was really not understanding hahaha, so it being a typo makes a lot more sense!

Thanks for acting quickly.

1 Like