Explorar el Código

build: Package sysctl configuration to raise UDP buffer size on Linux (#7417)

* Provide a sysctl config to raise max UDP buffer size

* Add sysctl config to deb

* Check if `deb-systemd-invoke` is available

Co-authored-by: otbutz <[email protected]>
bt90 hace 4 años
padre
commit
c1d06d9501
Se han modificado 4 ficheros con 30 adiciones y 0 borrados
  1. 1 0
      build.go
  2. 3 0
      etc/linux-sysctl/30-syncthing.conf
  3. 21 0
      etc/linux-sysctl/README.md
  4. 5 0
      script/post-upgrade

+ 1 - 0
build.go

@@ -115,6 +115,7 @@ var targets = map[string]target{
 			{src: "etc/linux-systemd/system/[email protected]", dst: "deb/lib/systemd/system/[email protected]", perm: 0644},
 			{src: "etc/linux-systemd/system/syncthing-resume.service", dst: "deb/lib/systemd/system/syncthing-resume.service", perm: 0644},
 			{src: "etc/linux-systemd/user/syncthing.service", dst: "deb/usr/lib/systemd/user/syncthing.service", perm: 0644},
+			{src: "etc/linux-sysctl/30-syncthing.conf", dst: "deb/usr/lib/sysctl.d/30-syncthing.conf", perm: 0644},
 			{src: "etc/firewall-ufw/syncthing", dst: "deb/etc/ufw/applications.d/syncthing", perm: 0644},
 			{src: "etc/linux-desktop/syncthing-start.desktop", dst: "deb/usr/share/applications/syncthing-start.desktop", perm: 0644},
 			{src: "etc/linux-desktop/syncthing-ui.desktop", dst: "deb/usr/share/applications/syncthing-ui.desktop", perm: 0644},

+ 3 - 0
etc/linux-sysctl/30-syncthing.conf

@@ -0,0 +1,3 @@
+# Increase maximum receive socket buffer size to 2MiB for QUIC connections
+# see https://github.com/lucas-clemente/quic-go/wiki/UDP-Receive-Buffer-Size
+net.core.rmem_max = 2097152

+ 21 - 0
etc/linux-sysctl/README.md

@@ -0,0 +1,21 @@
+sysctl configuration to raise UDP buffer size
+===================
+Installation
+-----------
+**Please note:** When you installed syncthing using the official deb package, you can skip the copying.
+
+Copy the file `30-syncthing.conf` to `/etc/sysctl.d/` (root permissions required).
+
+In a terminal run
+```
+sudo sysctl -q --system
+```
+to apply the sysctl changes.
+
+
+Verification
+----------
+You can verify that the new limit is active using
+```
+sysctl net.core.rmem_max
+```

+ 5 - 0
script/post-upgrade

@@ -1,3 +1,8 @@
 #!/bin/sh
 
+if command -v deb-systemd-invoke > /dev/null; then
+	deb-systemd-invoke restart procps.service
+else
+	sysctl -q --system
+fi
 pkill -HUP -x syncthing || true