You are viewing a plain text version of this content. The canonical link for it is here.
Posted to yarn-dev@hadoop.apache.org by "Misha Dmitriev (JIRA)" <ji...@apache.org> on 2017/10/09 19:37:00 UTC

[jira] [Created] (YARN-7302) Configuration.updatingResource map should be initialized lazily

Misha Dmitriev created YARN-7302:
------------------------------------

             Summary: Configuration.updatingResource map should be initialized lazily
                 Key: YARN-7302
                 URL: https://issues.apache.org/jira/browse/YARN-7302
             Project: Hadoop YARN
          Issue Type: Improvement
            Reporter: Misha Dmitriev


Using jxray (www.jxray.com), I've analyzed a heap dump of YARN RM running in a big cluster. The tool uncovered several inefficiencies in the RM memory. It turns out that one of the biggest sources of memory waste, responsible for almost 1/4 of used memory, is empty ConcurrentHashMap instances in org.apache.hadoop.conf.Configuration.updatingResource:

{code}
905,551K (24.0%): java.util.concurrent.ConcurrentHashMap: 22118 / 100% of empty 905,551K (24.0%)
↖org.apache.hadoop.conf.Configuration.updatingResource
↖{j.u.WeakHashMap}.keys
↖Java Static org.apache.hadoop.conf.Configuration.REGISTRY
{code}

That is, there are 22118 empty ConcurrentHashMaps here, and they collectively waste ~905MB of memory. This is caused by eager initialization of these maps. To address this problem, we should initialize them lazily.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

---------------------------------------------------------------------
To unsubscribe, e-mail: yarn-dev-unsubscribe@hadoop.apache.org
For additional commands, e-mail: yarn-dev-help@hadoop.apache.org