@@ -671,20 +671,22 @@ func (s *ServerHandler) updateTrafficIncremental(server *model.Server, state *mo
671671 // 处理入站流量
672672 if originalNetInTransfer < prevIn {
673673 // 检测到流量回退
674- if float64 (prevIn - originalNetInTransfer )/ float64 (prevIn + 1 ) < 0.1 {
674+ backwardAmount := prevIn - originalNetInTransfer
675+ backwardPercent := float64 (backwardAmount ) / float64 (prevIn + 1 )
676+
677+ if backwardPercent < 0.05 { // 从10%降低到5%,减少误判
675678 // 小幅度回退,可能是统计误差,不计入增量
676679 increaseIn = 0
677680 } else {
678681 // 大幅度回退,可能是重启,重置基准点
679682 server .PrevTransferInSnapshot = int64 (originalNetInTransfer )
680- // 重要:不计算负增量
681683 increaseIn = 0
682684 }
683685 } else {
684686 // 正常增量
685687 increaseIn = originalNetInTransfer - prevIn
686- // 检查增量是否合理(防止异常大值)
687- if increaseIn > 1000 * 1024 * 1024 * 1024 { // 增量超过1TB ,可能是异常值
688+ // 检查增量是否合理(防止异常大值)- 调整阈值为10TB,更适合高流量服务器
689+ if increaseIn > 10 * 1024 * 1024 * 1024 * 1024 { // 增量超过10TB ,可能是异常值
688690 log .Printf ("警告:服务器 %d 入站流量增量异常大 (%d),可能是统计错误,本次不计入" , server .ID , increaseIn )
689691 increaseIn = 0
690692 } else if server .CumulativeNetInTransfer > 0 &&
@@ -701,20 +703,22 @@ func (s *ServerHandler) updateTrafficIncremental(server *model.Server, state *mo
701703 // 处理出站流量
702704 if originalNetOutTransfer < prevOut {
703705 // 检测到流量回退
704- if float64 (prevOut - originalNetOutTransfer )/ float64 (prevOut + 1 ) < 0.1 {
706+ backwardAmount := prevOut - originalNetOutTransfer
707+ backwardPercent := float64 (backwardAmount ) / float64 (prevOut + 1 )
708+
709+ if backwardPercent < 0.05 { // 从10%降低到5%,减少误判
705710 // 小幅度回退,可能是统计误差,不计入增量
706711 increaseOut = 0
707712 } else {
708713 // 大幅度回退,可能是重启,重置基准点
709714 server .PrevTransferOutSnapshot = int64 (originalNetOutTransfer )
710- // 重要:不计算负增量
711715 increaseOut = 0
712716 }
713717 } else {
714718 // 正常增量
715719 increaseOut = originalNetOutTransfer - prevOut
716- // 检查增量是否合理(防止异常大值)
717- if increaseOut > 1000 * 1024 * 1024 * 1024 { // 增量超过1TB ,可能是异常值
720+ // 检查增量是否合理(防止异常大值)- 调整阈值为10TB,更适合高流量服务器
721+ if increaseOut > 10 * 1024 * 1024 * 1024 * 1024 { // 增量超过10TB ,可能是异常值
718722 log .Printf ("警告:服务器 %d 出站流量增量异常大 (%d),可能是统计错误,本次不计入" , server .ID , increaseOut )
719723 increaseOut = 0
720724 } else if server .CumulativeNetOutTransfer > 0 &&
@@ -732,7 +736,7 @@ func (s *ServerHandler) updateTrafficIncremental(server *model.Server, state *mo
732736 state .NetInTransfer = server .CumulativeNetInTransfer
733737 state .NetOutTransfer = server .CumulativeNetOutTransfer
734738
735- // 仅在异常大流量增量时记录日志,减少日志输出
739+ // 仅在异常大流量增量时记录警告日志
736740 if increaseIn > 100 * 1024 * 1024 * 1024 || increaseOut > 100 * 1024 * 1024 * 1024 {
737741 log .Printf ("注意:服务器 %d 流量增量较大 (入站=%d, 出站=%d)" , server .ID , increaseIn , increaseOut )
738742 }
0 commit comments