KCP improve
This commit is contained in:
@@ -15,10 +15,34 @@ LAYLINK_MAX_SEND_BUFFER_BYTES=67108864
|
||||
# 单连接发送缓冲区上限;单位字节。大文件下载建议 33554432 或 67108864,内存紧张时调小。
|
||||
LAYLINK_BACKPRESSURE_HIGH_WATERMARK_BYTES=33554432
|
||||
# 背压触发水位;单位字节。应小于 LAYLINK_MAX_SEND_BUFFER_BYTES,达到后会暂停上游读取直到缓冲排空。
|
||||
|
||||
[kcp]
|
||||
LAYLINK_KCP_BACKEND=ffi
|
||||
# KCP 实现后端;可选 ffi、php。ffi 使用 native ikcp.c 动态库,生产建议使用;php 是调试回退实现。
|
||||
LAYLINK_KCP_FFI_LIB=native/kcp/liblaylink_kcp.so
|
||||
# native KCP 动态库路径;LAYLINK_KCP_BACKEND=ffi 时使用。相对路径按项目根目录解析,先运行 scripts/build-kcp-ffi.sh 构建。
|
||||
LAYLINK_KCP_NODELAY=1
|
||||
# KCP nodelay 开关;1 更低延迟,0 更保守。拥堵明显时可保持 1 并调大 interval 或关闭 nc。
|
||||
LAYLINK_KCP_INTERVAL_MS=10
|
||||
# KCP 内部 update 间隔;单位毫秒。常用 10、20、30,越小越低延迟但 CPU/发包更高。
|
||||
LAYLINK_KCP_FAST_RESEND=2
|
||||
# KCP 快速重传阈值;0 关闭,2 是常见低延迟设置,丢包网络可尝试 2-4。
|
||||
LAYLINK_KCP_NO_CONGESTION_CONTROL=0
|
||||
# 是否关闭 KCP 拥塞控制;0 开启拥塞控制更稳,1 更激进但容易挤爆 UDP 发送缓冲。
|
||||
LAYLINK_KCP_SEND_WINDOW=256
|
||||
# KCP 发送窗口;越大吞吐潜力越高但更容易拥堵,常用 128、256、512、1024。
|
||||
LAYLINK_KCP_RECV_WINDOW=512
|
||||
# KCP 接收窗口;应不小于发送窗口,常用 256、512、1024。
|
||||
LAYLINK_KCP_MTU_BYTES=1200
|
||||
# KCP MTU;建议 1200 避免公网路径分片,内网可尝试 1350。
|
||||
LAYLINK_KCP_TICK_MS=10
|
||||
# PHP transport tick 间隔;单位毫秒。通常与 LAYLINK_KCP_INTERVAL_MS 一致。
|
||||
LAYLINK_KCP_UDP_SEND_QUEUE_BYTES=16777216
|
||||
# UDP EAGAIN 发送队列上限;单位字节。发送缓冲暂满时会排队重试,超过后关闭该 KCP 会话。
|
||||
LAYLINK_KCP_UDP_FLUSH_PACKETS=256
|
||||
# 每次 tick 最多刷出的 UDP packet 数;拥堵时可调低到 64 或 128,追求吞吐可调高。
|
||||
LAYLINK_KCP_OUTPUT_DRAIN_PACKETS=256
|
||||
# 每次从 native KCP 输出队列搬到 UDP 发送队列的最大 packet 数;调低可减少单个大下载占用事件循环时间。
|
||||
|
||||
[client-agent]
|
||||
NODE_ID=client-01
|
||||
@@ -75,3 +99,7 @@ POP_AGENT_LISTEN=0.0.0.0:9001
|
||||
# POP Server 监听 Agent 长连接的地址;格式为 host:port,例如 0.0.0.0:9001 或 127.0.0.1:9001。
|
||||
POP_ALLOWED_AGENT_TRANSPORTS=tcp,kcp
|
||||
# POP Server 允许 Client Agent 使用的传输协议;可写逗号数组 tcp,kcp,也可写 JSON 数组 ["tcp","kcp"];当前已实现 tcp、kcp,udp 为预留实现。
|
||||
POP_AGENT_TCP_WORKERS=1
|
||||
# POP Server TCP Agent listener 的 worker 数量;TCP 模式可按 CPU 和并发提高到 2、4、8。只使用 KCP 时该值不影响 KCP。
|
||||
POP_AGENT_KCP_WORKERS=1
|
||||
# POP Server KCP/UDP Agent listener 的 worker 数量;当前必须为 1,因为 KCP 会话状态在单 worker 内维护,多 worker 会导致 UDP 包跨进程丢状态。
|
||||
|
||||
Reference in New Issue
Block a user