--
You received this message because you are subscribed to the Google Groups "golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CANnT9sj1_sZCKDkGbkzarwcn8DYEX9OS6Ack%2B71613eyLQ7y6w%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CANnT9siMD4L5oC0nvmGYYM3Qo4rVSSCT%2BK5__fR9%3DzuyXV6S0Q%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CANnT9sjEo%2Bp2HYOVDjB_EzaGE474QuBy-9Yp_HaCn95wHSFsHQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
I don't understand. What would adding runtime.Goscheduled() do here? I don't have any explicit loops in this service.
To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CALoEmQz%3DsJeq%3DpiDKQaa-uyTFXUsN69MsUUB8mQ8qbqVrOtCng%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
I don't understand. What would adding runtime.Goscheduled() do here? I don't have any explicit loops in this service.
On Jul 1, 2019, 9:11 PM -0400, Michael Jones <michae...@gmail.com>, wrote:
To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CALoEmQz%3DsJeq%3DpiDKQaa-uyTFXUsN69MsUUB8mQ8qbqVrOtCng%40mail.gmail.com.
On Jul 1, 2019, at 11:06 PM, Mighty Guava <might...@gmail.com> wrote:I don't think GC is being blocked. GC ran multiple times during the time the service was exploding in memory.I'm not using mmap in the service. It's just a straightforward CRUD webserver backed by DynamoDB. The only thing non-standard I can think of is that it connects to its backing database over HTTP/1.1 (using AWS Go SDK) instead of a custom database protocol. It's serving a fair amount of requests (500 qps per replica), so I initially assumed it was under-provisioned to handle latency spikes. But I tripled the memory and it's still OOMing on occasion, even though RSS is 9% of allocated memory just seconds before.
Yunchi
On Jul 1, 2019, at 11:28 PM, Mighty Guava <might...@gmail.com> wrote:Oh now that you mention it, I'm using grpc-gateway with the stdlib http server. Though all it really does is convert json <=> protobuf and is pretty mature so it's unlikely to be the culprit.Running with race detector is a good idea! I'll try that tomorrow.
Thanks,
Yunchi Luo
To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CALoEmQz%3DsJeq%3DpiDKQaa-uyTFXUsN69MsUUB8mQ8qbqVrOtCng%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CANnT9sjNpE8wjqv6n%2BbHyZJ_cCvwN3O9rHKTT3%3DdSqZah0PfHA%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CANnT9sjNpE8wjqv6n%2BbHyZJ_cCvwN3O9rHKTT3%3DdSqZah0PfHA%40mail.gmail.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/CANnT9shkUa04vaL%3D4jY1is1%3Dj2Vov5a%2BX7zSPoQCwcM8_UQpUA%40mail.gmail.com.
Hello, I'd like to solicit some help with a weird GC issue we are seeing.I'm trying to debug OOM on a service we are running in k8s. The service is just a CRUD server hitting a database (DynamoDB). Each replica serves about 300 qps of traffic. There are no memory leaks. On occasion (seemingly correlated to small latency spikes on the backend), the service would OOM. This is surprising because it has a circuit breaker that drops requests after 200 concurrent connections that has never trips, and goroutine profiles confirm that there are nowhere 200 active goroutines.