[ 
https://issues.apache.org/jira/browse/HADOOP-18534?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17802845#comment-17802845
 ] 

Shilun Fan commented on HADOOP-18534:
-------------------------------------

Bulk update: moved all 3.4.0 non-blocker issues, please move back if it is a 
blocker. Retarget 3.5.0.

> Propose a mechanism to free the direct memory occupied by RPC Connections
> -------------------------------------------------------------------------
>
>                 Key: HADOOP-18534
>                 URL: https://issues.apache.org/jira/browse/HADOOP-18534
>             Project: Hadoop Common
>          Issue Type: Improvement
>          Components: rpc-server
>            Reporter: asdfgh19
>            Priority: Minor
>
>   In the RPC Client, a thread called RpcRequestSender is responsible for 
> writing the connection request to the socket. Every time a request is sent, a 
> direct memory is applied for in sun.nio.ch.IOUtil#write() and cached.
>   If Connection and RpcRequestSender are promoted to the old generation, they 
> will not be recycled when full gc is not performed, resulting in the 
> DirectByteBuffer cached in sun.nio.ch.Util not being recycled. When the 
> memory occupied by DirectByteBuffer is too large, the jvm process may not 
> have the opportunity to do full gc and is killed.
>   Unfortunately, there is no easy way to free these DirectByteBuffers. 
> Perhaps, we can manually free these DirectByteBuffers by the following 
> methods when the Connection is closed.
> {code}
> private void freeDirectBuffer() {
>   try {
>     DirectBuffer buffer = (DirectBuffer) Util.getTemporaryDirectBuffer(1);
>     buffer.cleaner().clean();
>   } catch (Throwable t) {
>     LOG.error("free direct memory error, connectionId: " + remoteId, t);
>   }
> }{code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to