[英]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.