increasing memory usage

"Trustin Lee (이희승)" trustin at gmail.com
Wed Jan 27 21:04:22 EST 2010


You could use WriteTimeoutHandler in org.jboss.netty.handler.timeout.
It raises an exceptionCaught event when write does not complete within a
certain period.

HTH,
Trustin

Mahmood Rahmani wrote:
> let me explain it a little bit. 
> 
> The server is completely out of my hand. According to a protocol defined by the server developers, a client first logs in and then waits for data. Each time the client receives a message, it has to send an acknowledge ( [ACK] string) as respond. Otherwise, the server stops pushing data.
> I guess the socket buffer is full because of those ack sent by the client.
> 
> knowing that server does not respond to what client sends (the ack-s) would you please tell me how can I check to see the buffer is full? 
> btw, is there a gentle way of disconnecting the channel without raising many exceptions?
> 
> thanks.
> Cyrus
> 
> On Jan 27, 2010, at 3:12 PM, Trustin Lee (이희승) wrote:
> 
>> According to the heap dump, a lot of buffers are stuck in the event
>> queue of a NioClientSocketChannel.  The channel's interestOps is 5
>> (OP_READ + OP_WRITE), which means the channel's socket send buffer is
>> full.  Because your write request cannot be completed due to the full
>> socket buffer, it will be kept in the event queue and eventually cause OOME.
>>
>> Why is the socket buffer full?  It's perhaps because the server is not
>> reading the data you are sending at all.  You have to disconnect or stop
>> sending data in such a case.
>>
>> Generally, such a problematic server does not send a response message
>> for the message you've sent.  You could maintain an integer variable
>> that counts the number of unanswered requests and disconnect if the
>> counter becomes greater than a certain threshold.  In a normal
>> connection, the counter will be increased and then decreased because the
>> responses will be received fairly quickly.
>>
>> Just in case you think the server is just fine and something's wrong
>> with Netty, provide me the full source code of the client-server pair
>> that reproduces the problem.
>>
>> HTH,
>> Trustin
>>
>> Mahmood Rahmani wrote:
>>> sorry, i meant -Xmx16m
>>>
>>>
>>> On Jan 27, 2010, at 2:13 PM,  wrote:
>>>
>>>> here is the heap dump for -Xmx96m:
>>>> http://tinyurl.com/yeggxb7
>>>>
>>>>
>>>>
>>>> On Jan 27, 2010, at 12:53 PM, Trustin Lee (이희승) wrote:
>>>>
>>>>> Oh, that's too bad.  Then could you post the heap dump file?  You can
>>>>> configure your VM to generate heap dump on OutOfMemoryError:
>>>>>
>>>>>   -XX:+HeapDumpOnOutOfMemoryError
>>>>>
>>>>> For more information on generating heap dump, read this article:
>>>>>
>>>>>   http://blogs.sun.com/alanb/entry/heap_dumps_are_back_with
>>>>>
>>>>> I would still recommend to decrease the max heap size so that you can
>>>>> get OOME sooner so that heap dump is generated sooner.
>>>>>
>>>>> cyrus77 wrote:
>>>>>> Hi, 
>>>>>>
>>>>>> Thanks for your reply,
>>>>>>
>>>>>> Unfortunately yes, I get OutOfMemoryError.
>>>>>> How can we investigate it? any idea? 
>>>>>>
>>>>>> Thanks,
>>>>>> Cyrus
>>>>>>
>>>>>>
>>>>>> On Jan 27, 2010, at 11:31 AM, Trustin Lee [via Netty Forums and Mailing Lists] wrote:
>>>>>>
>>>>>>> If you do not get an OutOfMemoryError, it is safe to decrease the 
>>>>>>> maximum heap size of the VM with -Xmx option.  I'd cut down to 96MB 
>>>>>>> (i.e. -Xmx96m). 
>>>>>>>
>>>>>>> If you get an OutOfMemoryError eventually, that's more like a memory 
>>>>>>> leak that needs more investigation. 
>>>>>>>
>>>>>>> cyrus77 wrote:
>>>>>>>
>>>>>>>> Hi, 
>>>>>>>>
>>>>>>>> I am using Netty to develop a simple TCP client and connect to a server to 
>>>>>>>> receive data 24x7. The data being transferred is not much, its around 100KB 
>>>>>>>> to 200KB per minute. 
>>>>>>>>
>>>>>>>> The problem is that the client starts allocating memory gradually and after 
>>>>>>>> some hours or a day (depending on how much data is being sent by the server 
>>>>>>>> to this client) the allocated heap memory reaches up to 500 MB! 
>>>>>>>>
>>>>>>>> The thing is that even if I do nothing with the message (do nothing in 
>>>>>>>> messageReceived method) the problem still exist! 
>>>>>>>>
>>>>>>>> I attached the code if you would like to take a look. 
>>>>>>>> http://n2.nabble.com/file/n4466226/code.java code.java 
>>>>>>>>
>>>>>>>> Do you have any idea what is wrong with it? 
>>>>>>>>
>>>>>>>> Thanks, 
>>>>>>>> Cyrus 
>>>>>>>>
>>>>>>> -- 
>>>>>>> what we call human nature in actuality is human habit 
>>>>>>> http://gleamynode.net/
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________ 
>>>>>>> netty-users mailing list 
>>>>>>> [hidden email] 
>>>>>>> https://lists.jboss.org/mailman/listinfo/netty-users
>>>>>>>
>>>>>>> signature.asc (268 bytes) Download Attachment
>>>>>>> — Trustin Lee, http://gleamynode.net/
>>>>>>>
>>>>>>>
>>>>>>> View message @ http://n2.nabble.com/increasing-memory-usage-tp4466226p4466366.html 
>>>>>>> To unsubscribe from increasing memory usage, click here.
>>>>>>>
>>>>> -- 
>>>>> what we call human nature in actuality is human habit
>>>>> http://gleamynode.net/
>>>>>
>>>>>
>>>>> <signature.asc>_______________________________________________
>>>>> netty-users mailing list
>>>>> netty-users at lists.jboss.org
>>>>> https://lists.jboss.org/mailman/listinfo/netty-users
>>>> _______________________________________________
>>>> netty-users mailing list
>>>> netty-users at lists.jboss.org
>>>> https://lists.jboss.org/mailman/listinfo/netty-users
>>>
>>>
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> netty-users mailing list
>>> netty-users at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/netty-users
>> -- 
>> what we call human nature in actuality is human habit
>> http://gleamynode.net/
>>
>>
>> <signature.asc>_______________________________________________
>> netty-users mailing list
>> netty-users at lists.jboss.org
>> https://lists.jboss.org/mailman/listinfo/netty-users
> 
> 
> _______________________________________________
> netty-users mailing list
> netty-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/netty-users

-- 
what we call human nature in actuality is human habit
http://gleamynode.net/


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 260 bytes
Desc: OpenPGP digital signature
Url : http://lists.jboss.org/pipermail/netty-users/attachments/20100128/34fd220c/attachment.bin 


More information about the netty-users mailing list