diff --git a/support/doc/production.md b/support/doc/production.md index 3d1be6b45..35c7de3b5 100644 --- a/support/doc/production.md +++ b/support/doc/production.md @@ -134,6 +134,19 @@ On FreeBSD you can use [Dehydrated](https://dehydrated.io/) `security/dehydrated $ sudo pkg install dehydrated ``` +### TCP/IP Tuning + +**On Linux** + +``` +$ sudo cp /var/www/peertube/peertube-latest/support/sysctl.d/30-peertube-tcp.conf /etc/sysctl.d/ +$ sudo sysctl -p /etc/sysctl.d/30-peertube-tcp.conf +``` + +Your distro may enable this by default, but at least Debian 9 does not, and the default FIFO +scheduler is quite prone to "Buffer Bloat" and extreme latency when dealing with slower client +links as we often encounter in a video server. + ### systemd If your OS uses systemd, copy the configuration template: diff --git a/support/sysctl.d/30-peertube-tcp.conf b/support/sysctl.d/30-peertube-tcp.conf new file mode 100644 index 000000000..09285bb56 --- /dev/null +++ b/support/sysctl.d/30-peertube-tcp.conf @@ -0,0 +1,9 @@ +# In a video server, we are often sending files to a client +# which can't accept it as fast as our local network connection +# could produce packets. To prevent packet loss and buffer bloat, +# it's especially important to use a modern CoDel scheduler which +# knows how to delay outgoing packets to match slower client links. + +net.core.default_qdisc = fq_codel +net.ipv4.tcp_congestion_control = bbr +