Details
-
Improvement
-
Status: Resolved
-
Minor
-
Resolution: Fixed
-
None
-
None
-
None
Description
By default, auto-read flag is set to true in Netty. This means Netty proactively read requests as they become available to a worker. However, this behavior sometime causes the off-heap memory to increase continuously. This happens specifically in presence of a spike in the amount of received requests. In that situation, the processing/handling rate of incoming requests may be less than the request receipt rate leading to high-memory kill (CGroup kill or OOM). With auto-read flag set to false, we read and process requests one by one and (hopefully/presumably) letting the transport layer do the flow control (i.e. dropping packets or reducing congestion window of TCP).