@node Knot DNS Resource Requirements, Knot DNS Installation, Introduction, Top
@chapter Knot DNS Resource Requirements

@menu
* Hardware requirements::
* CPU requirements::
* Memory requirements::
* Supported operating system::
@end menu

@node Hardware requirements
@section Hardware requirements

Knot DNS requirements are not very demanding for typical
installations, and a commodity server or a virtual solution
will be sufficient in most cases.

However please note that there are some scenarios that will
require administrator attention and testing of exact
requirements before deploying Knot DNS in production. These
cases include deployment for a large number of zones (DNS
hosting), a large number of records in one or more zones (TLD)
or large number of requests.

@node CPU requirements
@section CPU requirements

Knot DNS scales with processing power and also with the number of available cores/CPUs.

There is no lower bound on the CPU requirements, but it should support memory barriers
and CAS (i586 and newer).

@node Memory requirements
@section Memory requirements

Knot DNS implementation focuses on performance and thus can
be quite demanding for memory.  The rough estimate for memory
requirements is 5-7 times of the size of the zone in text
format.  Again this is only an estimate and you are advised to do
your own measurements before deploying Knot DNS into production.

Also note that to ensure uninterrupted serving of the zone, Knot DNS employs
a Read-Copy-Update mechanism instead of locking and thus requires
twice the amount of memory for the duration of incoming transfers.

@node Supported operating system
@section Supported operating system

Knot DNS itself is written in a portable way, but it depends on
several libraries. Namely userspace-rcu, which could be a constraint when it
comes to the operating system support.  As far as we know the
Knot DNS can be compiled and run on Linux, FreeBSD, OpenBSD, NetBSD and Mac OS X.
