mirror of
https://gitcode.com/JianFeeeee/webui4frpc.git
synced 2026-10-03 15:43:59 +00:00
refactor: 审查修复 — netload 消除重复 /sys 读 + 全项目 gofmt
- netload_linux.go: SampleNetLoad 聚合循环不再对每接口重复 readIfaceSpeed (snapshot 已汇总 cur.capMbps), 每次采样省 N 次 /sys 读 - gofmt -w: ring.go/ring_engine.go/auth.go/handlers.go/handlers_logs.go/ handlers_users.go/store.go 结构体字段对齐与注释缩进 - README.md: markdownlint 自动修复 (MD028/MD040) 审查结论: 令牌环本身即互斥协议 — OnToken(收令牌)与 StartRing(发令牌) 在同一节点上由令牌串行化, 不存在需要加锁的竞争; WatchLeader 的读为 良性读, 无需 mutex
This commit is contained in:
@ -196,8 +196,9 @@ func SampleNetLoad() float64 {
|
||||
//
|
||||
// rx+tx counts BOTH directions — a forward proxies in AND out, so a NIC
|
||||
// that's saturated in one direction is saturated for forwarding purposes.
|
||||
// Capacity comes from the CURRENT snapshot's capMbps (already summed in
|
||||
// snapshotNet) — no extra /sys reads per interface here.
|
||||
var deltaBits float64
|
||||
sharedCap := uint64(0)
|
||||
for name, c := range cur.bytes {
|
||||
p, ok := prev.bytes[name]
|
||||
if !ok {
|
||||
@ -209,15 +210,11 @@ func SampleNetLoad() float64 {
|
||||
continue
|
||||
}
|
||||
deltaBits += float64(c-p) * 8
|
||||
// approximate this interface's capacity contribution proportional to
|
||||
// its share of the summed speed — read back from /sys would be noisy
|
||||
// per call, so reuse the prior snapshot's capMbps scaling.
|
||||
sharedCap += readIfaceSpeed(name)
|
||||
}
|
||||
if sharedCap == 0 {
|
||||
if cur.capMbps == 0 {
|
||||
return 0
|
||||
}
|
||||
capBitsPerSec := float64(sharedCap) * 1e6
|
||||
capBitsPerSec := float64(cur.capMbps) * 1e6
|
||||
pct := (deltaBits / dt) / capBitsPerSec * 100
|
||||
if pct < 0 {
|
||||
return 0
|
||||
|
||||
Reference in New Issue
Block a user