123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107 |
- [[setting-system-settings]]
- === Configuring system settings
- Where to configure systems settings depends on which package you have used to
- install Elasticsearch, and which operating system you are using.
- When using the `.zip` or `.tar.gz` packages, system settings can be configured:
- * Temporarily with <<ulimit,`ulimit`>>.
- * Permanently in <<limits.conf,`/etc/security/limits.conf`>>.
- When using the RPM or Debian packages, most system settings are set in the
- <<sysconfig,system configuration file>>. However, systems which use systemd
- require that system limits are specified in a
- <<systemd,systemd configuration file>>.
- [[ulimit]]
- ==== `ulimit`
- On Linux systems, `ulimit` can be used to change resource limits on a
- temporary basis. Limits usually need to be set as `root` before switching to
- the user that will run Elasticsearch. For example, to set the number of
- open file handles (`ulimit -n`) to 65,536, you can do the following:
- [source,sh]
- --------------------------------
- sudo su <1>
- ulimit -n 65535 <2>
- su elasticsearch <3>
- --------------------------------
- <1> Become `root`.
- <2> Change the max number of open files.
- <3> Become the `elasticsearch` user in order to start Elasticsearch.
- The new limit is only applied during the current session.
- You can consult all currently applied limits with `ulimit -a`.
- [[limits.conf]]
- ==== `/etc/security/limits.conf`
- On Linux systems, persistent limits can be set for a particular user by
- editing the `/etc/security/limits.conf` file. To set the maximum number of
- open files for the `elasticsearch` user to 65,535, add the following line to
- the `limits.conf` file:
- [source,sh]
- --------------------------------
- elasticsearch - nofile 65535
- --------------------------------
- This change will only take effect the next time the `elasticsearch` user opens
- a new session.
- [NOTE]
- .Ubuntu and `limits.conf`
- ===============================
- Ubuntu ignores the `limits.conf` file for processes started by `init.d`. To
- enable the `limits.conf` file, edit `/etc/pam.d/su` and uncomment the
- following line:
- [source,sh]
- --------------------------------
- # session required pam_limits.so
- --------------------------------
- ===============================
- [[sysconfig]]
- ==== Sysconfig file
- When using the RPM or Debian packages, environment variables can be specified
- in the system configuration file, which is located in:
- [horizontal]
- RPM:: `/etc/sysconfig/elasticsearch`
- Debian:: `/etc/default/elasticsearch`
- However, system limits need to be specified via <<systemd,systemd>>.
- [[systemd]]
- ==== Systemd configuration
- When using the RPM or Debian packages on systems that use
- {wikipedia}/Systemd[systemd], system limits must be
- specified via systemd.
- The systemd service file (`/usr/lib/systemd/system/elasticsearch.service`)
- contains the limits that are applied by default.
- To override them, add a file called
- `/etc/systemd/system/elasticsearch.service.d/override.conf` (alternatively,
- you may run `sudo systemctl edit elasticsearch` which opens the file
- automatically inside your default editor). Set any changes in this file,
- such as:
- [source,sh]
- ---------------------------------
- [Service]
- LimitMEMLOCK=infinity
- ---------------------------------
- Once finished, run the following command to reload units:
- [source,sh]
- ---------------------------------
- sudo systemctl daemon-reload
- ---------------------------------
|