You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@mina.apache.org by "Emmanuel Lecharny (JIRA)" <ji...@apache.org> on 2018/03/27 13:44:00 UTC

[jira] [Commented] (DIRMINA-1081) Increasing number of ConcurrentLinkedQueue$Node objects

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

Emmanuel Lecharny commented on DIRMINA-1081:
--------------------------------------------

We would need more information.

How many sessions do you manage ? Yous seems to broadcast a message to all the existing sessions, if you have tens of thousand, then yes, some {{ConcurrentLinkedQueue$Node}} might accumulate waiting for being sent.

What could be interesting is to get a backtrace of where the node are being added (that means catch a trace of your app execution, instead of a trace of the memory allocation).

 

Last, not least, what you should also check with your profiler is if some of the allocated nodes are ancient and not being GCed. If this is not the case, I would rather assume everything works as designed, but you have a loaded server with many, many sessions, and may be not enough {{IoProcessor}}s to handle the load, especially when you broadcast a message. Of course, not knowing much abut what your application does not help to go farther than those speculations...

> Increasing number of ConcurrentLinkedQueue$Node objects
> -------------------------------------------------------
>
>                 Key: DIRMINA-1081
>                 URL: https://issues.apache.org/jira/browse/DIRMINA-1081
>             Project: MINA
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 2.0.16, 2.0.17
>            Reporter: Alexander B
>            Priority: Major
>         Attachments: linkedqueuenodes.png, recorded live allocations.png
>
>
> In a few issues i read, that some users detect a hugh number of ConcurrentLinkedQueue$Node objects, which are actually not collected by GC. I dont know if this behaviour is still an open bug, so i opened this new issue.
> Attached are two screenshot made by JProfiler. It seems, that the broadcast method references these objects and does not deallocate them.
> In my point of view this behaviour was getting better by using version 2.0.17 instead of 2.0.16, but this behaviour still exists.
>  
> PS:  I am using Java 1.8.0_161b12 64bit
>  
>  
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)