mirror of
https://gitcode.com/JianFeeeee/webui4frpc.git
synced 2026-09-20 00:47:57 +00:00
- netload_linux.go: 从 /proc/net/dev 字节增量 + /sys/class/net/<iface>/speed 计算网卡利用率 (rx+tx 合计, 多网卡按容量加权, [0,100] 钳制) - virtio VM speed=-1 时用 1Gbps 软容量兜底, 保持 VM 上采样有意义 - 排除 lo/docker*/br-*/veth*/tun/tap/wg/virbr* 等非物理 uplink, 容器桥接流量不再虚增主机负载 - netload_other.go: 非 Linux 平台编译期 fallback 返回 0 - main.go LoadFn: NetPct 从写死的 10 换成 cluster.SampleNetLoad() - Score = Forwards*100 + MemPct + NetPct: 主信号仍是转发数, net 在同转发数节点间打破平局 — NIC 已饱和的节点不再吸引新转发 - 单测: 采样范围断言 + 虚拟接口排除表 实测: 三台集群 net 列显示真实值 (0.02-0.03%), 不再是常量
13 lines
404 B
Go
13 lines
404 B
Go
//go:build !linux
|
|
|
|
// Package cluster — non-Linux fallback: no /proc/net/dev, so network load is
|
|
// reported as 0 (the ring's primary forward-count signal carries the load
|
|
// decision; mem/net only break ties, and an unknown net load leaves the tie
|
|
// break to memory).
|
|
package cluster
|
|
|
|
// SampleNetLoad returns 0 on platforms without /proc/net/dev sampling.
|
|
func SampleNetLoad() float64 {
|
|
return 0
|
|
}
|