Skip to main content

Installation: System Configuration Recommendations

Linux - Ubuntu 16.04​

RavenDB uses the resources of the machine it is running on, limited to the configuration limitation. In order to benefit from higher resources usage, consider the following setup:

  • Note that this might affect different systems with different behaviors
  • Some of the settings require super user permissions

Set higher limit to max open file descriptors​

In order to handle more connections to more databases and indexes at once, higher limit to open file descriptors (which affects also max number of network connections) is required.

ulimit -n 65535

Enlarge local available port range​

In order to serve more connections at once (heavy traffic usage) from clients, a higher port range is required.

sysctl -w net.ipv4.ip_local_port_range="1024 65535"

Reuse TIME-WAIT sockets​

Time to make reuse of closing tcp sockets. This allows RavenDB to handle more requests faster.

sysctl -w net.ipv4.tcp_tw_reuse=1

Recycle TIME-WAIT sockets​

Similar usage to the above reuse. Not for use when working with NAT, or in Kernel 4.12+

sysctl -w net.ipv4.tcp_tw_recycle=1

Enlarge memory mapped max usage​

RavenDB uses memory mapped files (few per database, indexes, etc). Upper limit is required in order to server larger amounts of databases and indexes

sysctl -w vm.max_map_count=2000000

Select swap device​

Consider different swap physical drive. For details on current swapping partitions and priorities use:

swapon

In this article