diff options
| author | Christophe Besson <cbesson@gmail.com> | 2026-10-11 20:47:42 +0200 |
|---|---|---|
| committer | Christophe Besson <cbesson@gmail.com> | 2026-10-11 20:47:42 +0200 |
| commit | 2ef0c215ea4af421a4b22ab543a5999320998f68 (patch) | |
| tree | d0c5d25fca95042c3c58724e1058f4d56b415f9f /packages/meshbay-node/src/meshbay_node/transport/webrtc_server.py | |
| parent | 176b5ed563f7022009b70751e62b7ee7901e6da0 (diff) | |
| download | meshbay-2ef0c215ea4af421a4b22ab543a5999320998f68.tar.gz | |
fix(node): a receive buffer that holds an upload's window
Uploads ran at 6.5 MB/s because the kernel dropped datagrams at the
node's 256 KB socket. Asking for 4 MB gave 19.5 MB/s, no drop.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'packages/meshbay-node/src/meshbay_node/transport/webrtc_server.py')
| -rw-r--r-- | packages/meshbay-node/src/meshbay_node/transport/webrtc_server.py | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/packages/meshbay-node/src/meshbay_node/transport/webrtc_server.py b/packages/meshbay-node/src/meshbay_node/transport/webrtc_server.py index 0baaf19..1976ad4 100644 --- a/packages/meshbay-node/src/meshbay_node/transport/webrtc_server.py +++ b/packages/meshbay-node/src/meshbay_node/transport/webrtc_server.py @@ -42,6 +42,7 @@ from meshbay_node.indexer import GroupIndex from meshbay_node.roots import ( RootSet, ) +from meshbay_node.transport.webrtc import udp_buffer from meshbay_node.transport.webrtc.admin import AdminMixin from meshbay_node.transport.webrtc.admission import AdmissionMixin from meshbay_node.transport.webrtc.apps.music import MusicMixin @@ -152,6 +153,17 @@ class WebRTCTransport: # Above one, the peer connections live in that many processes of their # own and the sessions here speak to them (transport/webrtc/workers.py). # At one, this process holds them itself and none is started. + got = udp_buffer.granted() + if got < udp_buffer.WANTED: + # Said once, with what to change: nothing else would tell an + # operator why uploads to this node stay around 6 MB/s. + log.warning( + "UDP receive buffer is %d KB per socket, below the %d KB an " + "upload needs to run at full speed; raise net.core.rmem_max " + "to %d to lift it", got // 1024, udp_buffer.WANTED // 1024, + udp_buffer.WANTED) + else: + log.info("UDP receive buffer: %d KB per socket", got // 1024) self._workers = WorkerPool( min(max(1, int(connection_processes or 1)), max_processes()), self._stun, ice_interfaces) |