[
https://issues.apache.org/jira/browse/HADOOP-18534?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
xinqiu.hu updated HADOOP-18534:
-------------------------------
Description:
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.
!未命名文件 (1).png|width=409,height=221!
was:
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.
!未命名文件 (1).png!
> 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: xinqiu.hu
> Priority: Minor
> Attachments: 未命名文件 (1).png
>
>
> 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.
> !未命名文件 (1).png|width=409,height=221!
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]