簡體   English   中英

此轉儲中netty正常的內存使用情況?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM