grpc / grpc-node

gRPC for Node.js
https://grpc.io
Apache License 2.0
4.34k stars 617 forks source link

NodeJS @grpc/grpc-js High Memory Usage #2726

Open vinothsa4891 opened 1 month ago

vinothsa4891 commented 1 month ago

Problem description

grpc-js - A gRPC call takes up more memory for a request & response of 100MB.

Reproduction steps

We are sending about 100 MB of data in the request and receiving 100 MB in the response. When the gRPC service is in progress, our app memory becomes very high.

Version - 1.10.67

I downgraded to 1.3.8 version, and I noticed that the memory size was reduced by 200MB. The most recent version is taking up more memory.

Version - 1.3.8

If this is something expected ?

Environment

murgatroid99 commented 1 month ago

It is expected that the client makes a couple of temporary copies of each message it sends and receives. Those should eventually get cleaned up by the garbage collector. There is an open PR to sometimes avoid making one of those copies when sending messages from the server (#2658). A similar change could be made on the client, possibly.

There have been a lot of changes between versions 1.3.8 and 1.10.6, so I can't point to a specific reason why memory usage would have increased.