Skip to content

Commit

Permalink
auto make -f Makefile.doc
Browse files Browse the repository at this point in the history
Signed-off-by: coredns[bot] <[email protected]>
  • Loading branch information
coredns[bot] committed Jan 26, 2025
1 parent d8ecde1 commit f2a1790
Showing 1 changed file with 92 additions and 0 deletions.
92 changes: 92 additions & 0 deletions man/coredns-multisocket.7
Original file line number Diff line number Diff line change
@@ -0,0 +1,92 @@
.\" Generated by Mmark Markdown Processer - mmark.miek.nl
.TH "COREDNS-MULTISOCKET" 7 "January 2025" "CoreDNS" "CoreDNS Plugins"

.SH "NAME"
.PP
\fImultisocket\fP - allows to start multiple servers that will listen on one port.

.SH "DESCRIPTION"
.PP
With \fImultisocket\fP, you can define the number of servers that will listen on the same port. The SO_REUSEPORT socket
option allows to open multiple listening sockets at the same address and port. In this case, kernel distributes incoming
connections between sockets.

.PP
Enabling this option allows to start multiple servers, which increases the throughput of CoreDNS in environments with a
large number of CPU cores.

.SH "SYNTAX"
.PP
.RS

.nf
multisocket [NUM\_SOCKETS]

.fi
.RE

.IP \(bu 4
\fBNUM_SOCKETS\fP - the number of servers that will listen on one port. Default value is equal to GOMAXPROCS.


.SH "EXAMPLES"
.PP
Start 5 TCP/UDP servers on the same port.

.PP
.RS

.nf
\&. {
multisocket 5
forward . /etc/resolv.conf
}

.fi
.RE

.PP
Do not define \fB\fCNUM_SOCKETS\fR, in this case it will take a value equal to GOMAXPROCS.

.PP
.RS

.nf
\&. {
multisocket
forward . /etc/resolv.conf
}

.fi
.RE

.SH "RECOMMENDATIONS"
.PP
The tests of the \fB\fCmultisocket\fR plugin, which were conducted for \fB\fCNUM_SOCKETS\fR from 1 to 10, did not reveal any side
effects or performance degradation.

.PP
This means that the \fB\fCmultisocket\fR plugin can be used with a default value that is equal to GOMAXPROCS.

.PP
However, to achieve the best results, it is recommended to consider the specific environment and plugins used in
CoreDNS. To determine the optimal configuration, it is advisable to conduct performance tests with different
\fB\fCNUM_SOCKETS\fR, measuring Queries Per Second (QPS) and system load.

.PP
If conducting such tests is difficult, follow these recommendations:
1. Determine the maximum CPU consumption of CoreDNS server without \fB\fCmultisocket\fR plugin. Estimate how much CPU CoreDNS
actually consumes in specific environment under maximum load.
2. Align \fB\fCNUM_SOCKETS\fR with the estimated CPU usage and CPU limits or system's available resources.
Examples:
- If CoreDNS consumes 4 CPUs and 8 CPUs are available, set \fB\fCNUM_SOCKETS\fR to 2.
- If CoreDNS consumes 8 CPUs and 64 CPUs are available, set \fB\fCNUM_SOCKETS\fR to 8.

.SH "LIMITATIONS"
.PP
The SO_REUSEPORT socket option is not available for some operating systems. It is available since Linux Kernel 3.9 and
not available for Windows at all.

.PP
Using this plugin with a system that does not support SO_REUSEPORT will cause an \fB\fCaddress already in use\fR error.

0 comments on commit f2a1790

Please sign in to comment.