| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 | [[system-config]]== Important System ConfigurationIdeally, Elasticsearch should run alone on a server and use all of theresources available to it.  In order to do so, you need to configure youroperating system to allow the user running Elasticsearch to access moreresources than allowed by default.The following settings *must* be considered before going to production:* <<setup-configuration-memory,Disable swapping>>* <<file-descriptors,Increase file descriptors>>* <<vm-max-map-count,Ensure sufficient virtual memory>>* <<max-number-of-threads,Ensure sufficient threads>>* <<networkaddress-cache-ttl,JVM DNS cache settings>>* <<executable-jna-tmpdir,Temporary directory not mounted with `noexec`>>* <<system-config-tcpretries,TCP retransmission timeout>>[[dev-vs-prod]][discrete]=== Development mode vs production modeBy default, Elasticsearch assumes that you are working in development mode.If any of the above settings are not configured correctly, a warning will bewritten to the log file, but you will be able to start and run yourElasticsearch node.As soon as you configure a network setting like `network.host`, Elasticsearchassumes that you are moving to production and will upgrade the above warningsto exceptions.  These exceptions will prevent your Elasticsearch node fromstarting.  This is an important safety measure to ensure that you will notlose data because of a malconfigured server.include::sysconfig/configuring.asciidoc[]include::sysconfig/swap.asciidoc[]include::sysconfig/file-descriptors.asciidoc[]include::sysconfig/virtual-memory.asciidoc[]include::sysconfig/threads.asciidoc[]include::sysconfig/dns-cache.asciidoc[]include::sysconfig/executable-jna-tmpdir.asciidoc[]include::sysconfig/tcpretries.asciidoc[]
 |