diff options
Diffstat (limited to 'packages/meshbay-node/src/meshbay_node')
| -rw-r--r-- | packages/meshbay-node/src/meshbay_node/transport/webrtc_server.py | 11 |
1 files changed, 8 insertions, 3 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 1976ad4..fea642a 100644 --- a/packages/meshbay-node/src/meshbay_node/transport/webrtc_server.py +++ b/packages/meshbay-node/src/meshbay_node/transport/webrtc_server.py @@ -24,6 +24,7 @@ Signaling flow (handled externally by the hub): import asyncio import logging +import sys import time from typing import Any @@ -157,11 +158,15 @@ class WebRTCTransport: 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. + # The remedy is Linux's: Windows grants what is asked (measured, + # 4 MB and beyond), and naming a sysctl there would send its + # operator looking for a setting the system does not have. + remedy = (f"; raise net.core.rmem_max to {udp_buffer.WANTED} to lift it" + if sys.platform.startswith("linux") else "") 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) + "upload needs to run at full speed%s", + got // 1024, udp_buffer.WANTED // 1024, remedy) else: log.info("UDP receive buffer: %d KB per socket", got // 1024) self._workers = WorkerPool( |