How To Solve Issues Related to Log – Unable to lock JVM memory (ENOMEM).

How To Solve Issues Related to Log – Unable to lock JVM memory (ENOMEM).

Updated: Feb-20

Elasticsearch Version: 1.7-8.0


Before you begin reading this guide try our beta Elasticsearch Health Check-Up it analyses JSON’s to provide personalized recommendations that can improve your clusters performance.

To troubleshoot log “Unable to lock JVM memory (ENOMEM).” it’s important to understand a few problems related to Elasticsearch concepts bootstrap, memory. See bellow important tips and explanations on these concepts

Log Context

Log”Unable to lock JVM memory (ENOMEM).” classname is
We extracted the following from Elasticsearch source code for those seeking an in-depth context :


        if (errno != Integer.MIN_VALUE) {
            if (errno == JNACLibrary.ENOMEM && System.getProperty("").toLowerCase(Locale.ROOT).contains("linux")) {
                logger.warn("Unable to lock JVM memory (ENOMEM)."
                        + " This can result in part of the JVM being swapped out."
                        + " Increase RLIMIT_MEMLOCK (ulimit).");
            } else if (!System.getProperty("").toLowerCase(Locale.ROOT).contains("mac")) {
                // OS X allows mlockall to be called; but always returns an error
                logger.warn("Unknown mlockall error " + errno);

Related issues to this log

We have gathered selected Q&A from the community and issues from Github, that can help fix related issues please review the following for further information :

1 Unable to lock JVM Memory: error=12, reason=Cannot allocate memory – Elasticsearch 6.2.4

6.34 K 5


About Opster

Opster detects root causes of Elasticsearch problems, provides automated recommendations and can perform various actions to prevent issues and optimize performance

Find Configuration Errors

Analyze Now