You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@accumulo.apache.org by "William Slacum (JIRA)" <ji...@apache.org> on 2015/12/18 00:32:46 UTC

[jira] [Created] (ACCUMULO-4083) TabletServerResourceManager doesn't sanity check memory settings if native maps are being used

William Slacum created ACCUMULO-4083:
----------------------------------------

             Summary: TabletServerResourceManager doesn't sanity check memory settings if native maps are being used
                 Key: ACCUMULO-4083
                 URL: https://issues.apache.org/jira/browse/ACCUMULO-4083
             Project: Accumulo
          Issue Type: Bug
          Components: tserver
    Affects Versions: 1.6.4
            Reporter: William Slacum
            Priority: Minor


Noticed that the TServer tries to fail fast if caches and memory maps are configured to use more memory than the JVM has given to it via -Xmx. However, if native maps are being used, this check fails. I recently had OOMEs kill TServers because their data block cache was 16gb and the max heap was 16gb. 

Here's the check:

{code:title=TabletServer.java}
    Runtime runtime = Runtime.getRuntime();
    if (!usingNativeMap && maxMemory + dCacheSize + iCacheSize > runtime.maxMemory()) {
      throw new IllegalArgumentException(String.format(
          "Maximum tablet server map memory %,d and block cache sizes %,d is too large for this JVM configuration %,d", maxMemory, dCacheSize + iCacheSize,
          runtime.maxMemory()));
    }
{code}

I think the check should still happen for index and data caches if native maps are being used.




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)