Rename boostrap.mlockall to bootstrap.memory_lock

The setting bootstrap.mlockall is useful on both POSIX-like systems
(POSIX mlockall) and Windows (Win32 VirtualLock). But mlockall is really
a POSIX only thing so the name should not be tied POSIX. This commit
renames the setting to "bootstrap.memory_lock".

Relates #18669
This commit is contained in:
Jason Tedor 2016-06-01 16:25:51 -04:00
parent a98856663b
commit 8e2a7d0fe1
13 changed files with 24 additions and 21 deletions

View File

@ -45,7 +45,6 @@ import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.PrintStream;
import java.nio.file.Path;
import java.util.Locale;
import java.util.Map;
import java.util.concurrent.CountDownLatch;
@ -151,7 +150,7 @@ final class Bootstrap {
private void setup(boolean addShutdownHook, Settings settings, Environment environment) throws Exception {
initializeNatives(
environment.tmpFile(),
BootstrapSettings.MLOCKALL_SETTING.get(settings),
BootstrapSettings.MEMORY_LOCK_SETTING.get(settings),
BootstrapSettings.SECCOMP_SETTING.get(settings),
BootstrapSettings.CTRLHANDLER_SETTING.get(settings));

View File

@ -152,7 +152,7 @@ final class BootstrapCheck {
final FileDescriptorCheck fileDescriptorCheck
= Constants.MAC_OS_X ? new OsXFileDescriptorCheck() : new FileDescriptorCheck();
checks.add(fileDescriptorCheck);
checks.add(new MlockallCheck(BootstrapSettings.MLOCKALL_SETTING.get(settings)));
checks.add(new MlockallCheck(BootstrapSettings.MEMORY_LOCK_SETTING.get(settings)));
if (Constants.LINUX) {
checks.add(new MaxNumberOfThreadsCheck());
}

View File

@ -31,8 +31,8 @@ public final class BootstrapSettings {
public static final Setting<Boolean> SECURITY_FILTER_BAD_DEFAULTS_SETTING =
Setting.boolSetting("security.manager.filter_bad_defaults", true, Property.NodeScope);
public static final Setting<Boolean> MLOCKALL_SETTING =
Setting.boolSetting("bootstrap.mlockall", false, Property.NodeScope);
public static final Setting<Boolean> MEMORY_LOCK_SETTING =
Setting.boolSetting("bootstrap.memory_lock", false, Property.NodeScope);
public static final Setting<Boolean> SECCOMP_SETTING =
Setting.boolSetting("bootstrap.seccomp", true, Property.NodeScope);
public static final Setting<Boolean> CTRLHANDLER_SETTING =

View File

@ -81,7 +81,6 @@ import org.elasticsearch.monitor.jvm.JvmService;
import org.elasticsearch.monitor.os.OsService;
import org.elasticsearch.monitor.process.ProcessService;
import org.elasticsearch.node.Node;
import org.elasticsearch.node.internal.InternalSettingsPreparer;
import org.elasticsearch.plugins.PluginsService;
import org.elasticsearch.repositories.fs.FsRepository;
import org.elasticsearch.repositories.uri.URLRepository;
@ -407,7 +406,7 @@ public final class ClusterSettings extends AbstractScopedSettings {
PageCacheRecycler.TYPE_SETTING,
PluginsService.MANDATORY_SETTING,
BootstrapSettings.SECURITY_FILTER_BAD_DEFAULTS_SETTING,
BootstrapSettings.MLOCKALL_SETTING,
BootstrapSettings.MEMORY_LOCK_SETTING,
BootstrapSettings.SECCOMP_SETTING,
BootstrapSettings.CTRLHANDLER_SETTING,
BootstrapSettings.IGNORE_SYSTEM_BOOTSTRAP_CHECKS,

View File

@ -26,7 +26,7 @@ public class BootstrapSettingsTests extends ESTestCase {
public void testDefaultSettings() {
assertTrue(BootstrapSettings.SECURITY_FILTER_BAD_DEFAULTS_SETTING.get(Settings.EMPTY));
assertFalse(BootstrapSettings.MLOCKALL_SETTING.get(Settings.EMPTY));
assertFalse(BootstrapSettings.MEMORY_LOCK_SETTING.get(Settings.EMPTY));
assertTrue(BootstrapSettings.SECCOMP_SETTING.get(Settings.EMPTY));
assertTrue(BootstrapSettings.CTRLHANDLER_SETTING.get(Settings.EMPTY));
}

View File

@ -53,7 +53,7 @@ ES_STARTUP_SLEEP_TIME=5
#MAX_OPEN_FILES=65536
# The maximum number of bytes of memory that may be locked into RAM
# Set to "unlimited" if you use the 'bootstrap.mlockall: true' option
# Set to "unlimited" if you use the 'bootstrap.memory_lock: true' option
# in elasticsearch.yml.
# When using Systemd, the LimitMEMLOCK property must be set
# in /usr/lib/systemd/system/elasticsearch.service

View File

@ -32,7 +32,7 @@ StandardError=inherit
LimitNOFILE=65536
# Specifies the maximum number of bytes of memory that may be locked into RAM
# Set to "infinity" if you use the 'bootstrap.mlockall: true' option
# Set to "infinity" if you use the 'bootstrap.memory_lock: true' option
# in elasticsearch.yml and 'MAX_LOCKED_MEMORY=unlimited' in ${path.env}
#LimitMEMLOCK=infinity

View File

@ -40,7 +40,7 @@
#
# Lock the memory on startup:
#
# bootstrap.mlockall: true
# bootstrap.memory_lock: true
#
# Make sure that the heap size is set to about half the memory available
# on the system and that the owner of the process is allowed to use this

View File

@ -259,3 +259,8 @@ set `script.line: true` or `script.stored: true`.
The setting `index.query.bool.max_clause_count` has been removed. In order to
set the maximum number of boolean clauses `indices.query.bool.max_clause_count`
should be used instead.
==== Memory lock settings
The setting `bootstrap.mlockall` has been renamed to
`bootstrap.memory_lock`.

View File

@ -34,7 +34,7 @@ If a JVM is started with unequal initial and max heap size, it can be
prone to pauses as the JVM heap is resized during system usage. To avoid
these resize pauses, it's best to start the JVM with the initial heap
size equal to the maximum heap size. Additionally, if
<<bootstrap.mlockall,`bootstrap.mlockall`>> is enabled, the JVM will
<<bootstrap.memory_lock,`bootstrap.memory_lock`>> is enabled, the JVM will
lock the initial size of the heap on startup. If the initial heap size
is not equal to the maximum heap size, after a resize it will not be the
case that all of the JVM heap is locked in memory. To pass the heap size
@ -62,11 +62,11 @@ Elasticsearch would much rather use to service requests. There are
several ways to configure a system to disallow swapping. One way is by
requesting the JVM to lock the heap in memory through `mlockall` (Unix)
or virtual lock (Windows). This is done via the Elasticsearch setting
<<bootstrap.mlockall,`bootstrap.mlockall`>>. However, there are cases
<<bootstrap.memory_lock,`bootstrap.memory_lock`>>. However, there are cases
where this setting can be passed to Elasticsearch but Elasticsearch is
not able to lock the heap (e.g., if the `elasticsearch` user does not
have `memlock unlimited`). The memory lock check verifies that *if* the
`bootstrap.mlockall` setting is enabled, that the JVM was successfully
`bootstrap.memory_lock` setting is enabled, that the JVM was successfully
able to lock the heap. To pass the memory lock check, you might have to
configure <<mlockall,`mlockall`>>.

View File

@ -8,7 +8,7 @@ configured before going into production.
* <<path-settings,`path.data` and `path.logs`>>
* <<cluster.name,`cluster.name`>>
* <<node.name,`node.name`>>
* <<bootstrap.mlockall,`bootstrap.mlockall`>>
* <<bootstrap.memory_lock,`bootstrap.memory_lock`>>
* <<network.host,`network.host`>>
* <<unicast.hosts,`discovery.zen.ping.unicast.hosts`>>
* <<minimum_master_nodes,`discovery.zen.minimum_master_nodes`>>
@ -90,12 +90,12 @@ node.name: ${HOSTNAME}
--------------------------------------------------
[float]
[[bootstrap.mlockall]]
=== `bootstrap.mlockall`
[[bootstrap.memory_lock]]
=== `bootstrap.memory_lock`
It is vitally important to the health of your node that none of the JVM is
ever swapped out to disk. One way of achieving that is set the
`bootstrap.mlockall` setting to `true`.
`bootstrap.memory_lock` setting to `true`.
For this setting to have effect, other system settings need to be configured
first. See <<mlockall>> for more details about how to set up memory locking

View File

@ -18,7 +18,7 @@
`MAX_LOCKED_MEMORY`::
Maximum locked memory size. Set to `unlimited if you use the
`bootstrap.mlockall` option in elasticsearch.yml.
`bootstrap.memory_lock` option in elasticsearch.yml.
`MAX_MAP_COUNT`::

View File

@ -13,7 +13,7 @@ disconnect from the cluster.
There are three approaches to disabling swapping:
[[mlockall]]
==== Enable `bootstrap.mlockall`
==== Enable `bootstrap.memory_lock`
The first option is to use
http://opengroup.org/onlinepubs/007908799/xsh/mlockall.html[mlockall] on Linux/Unix systems, or https://msdn.microsoft.com/en-us/library/windows/desktop/aa366895%28v=vs.85%29.aspx[VirtualLock] on Windows, to
@ -23,7 +23,7 @@ to the `config/elasticsearch.yml` file:
[source,yaml]
--------------
bootstrap.mlockall: true
bootstrap.memory_lock: true
--------------
WARNING: `mlockall` might cause the JVM or shell session to exit if it tries