| mapped_pages | ||||
|---|---|---|---|---|
| applies_to |
|
|||
| products |
|
Ideally, {{es}} should run alone on a server and use all of the resources available to it. In order to do so, you need to configure your operating system to allow the user running {{es}} to access more resources than allowed by default.
The following settings must be considered before going to production:
- : Run as a dedicated unprivileged user, keep numeric UID and GID consistent across nodes, and set correct ownership on config and data paths.
- : Where and how to apply operating-system limits and environment variables for your install type.
- : Avoid heap or process memory being swapped out; options include disabling swap, lowering swappiness, and
bootstrap.memory_lock. - : Set
vm.max_map_counthigh enough for mmap-based index storage (for example1048576when required). - : Allow the {{es}} user to create at least
4096threads on Linux when you manage limits yourself. - : Raise open file handles to at least
65,535(Linux and macOS only). - : Ensure JNA and native libraries can execute from a temp path that is not mounted
noexec(Linux only). - : Lower
net.ipv4.tcp_retries2so node and network failures are detected sooner than the Linux default (Linux only).
::::{admonition} How these limits are enforced This page lists operating system limits you must set before {{es}} serves production traffic. {{es}} verifies many of these expectations through bootstrap checks at node startup. In production mode, a failed check stops the node from starting rather than only logging a warning. ::::
:::{tip} For examples of applying the relevant settings in a Docker environment, refer to . :::
::::{admonition} Use dedicated hosts :::{include} _snippets/dedicated-hosts.md ::: ::::