aboutsummaryrefslogtreecommitdiffstats
path: root/packages/meshbay-node/src/meshbay_node/transport
diff options
context:
space:
mode:
Diffstat (limited to 'packages/meshbay-node/src/meshbay_node/transport')
-rw-r--r--packages/meshbay-node/src/meshbay_node/transport/webrtc_server.py11
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(