[英]the memory usage of netty normal in this dump?
对于13K用户,我有以下内存转储。 我将粘贴前7位消费者。 Netty似乎消耗过多的内存。 这正常吗?
(Netty版本:3.2.7,实现IdleStateAwareChannelUpstreamHandler,总内存Netty内存使用量:最小2.5GB)
num #instances #bytes class name
----------------------------------------------
1: 23086640 923465600 org.jboss.netty.util.internal.ConcurrentHashMap$Segment
2: 28649817 916794144 java.util.concurrent.locks.ReentrantLock$NonfairSync
3: 23086640 554864352 [Lorg.jboss.netty.util.internal.ConcurrentHashMap$HashEntry;
4: 118907 275209504 [I
5: 5184704 207388160 java.util.concurrent.ConcurrentHashMap$Segment
6: 5184704 130874832 [Ljava.util.concurrent.ConcurrentHashMap$HashEntry;
7: 1442915 115433200 [Lorg.jboss.netty.util.internal.ConcurrentHashMap$Segment;
看起来内存使用不正常。
这是有关Netty内部存储器使用情况的一些事实
一个通道有两个ReentrantLocks
,(一个读锁,一个写锁)
Channel将所有通道引用存储在org.jboss.netty.util.internal.ConcurrentHashMap
内部,并在关闭时自动删除(这是分配唯一的通道ID)。
ChannelGroup在add()上将频道引用存储在org.jboss.netty.util.internal.ConcurrentHashMap
,并在关闭时自动删除。
存储在org.jboss.netty.util.internal.ConcurrentHashMap
每个项目将有一个ConcurrentHashMap$HashEntry
。
因此,如果您的处理程序没有泄漏任何引用,则可以计算预期的内存使用量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.