Explorar el Código

tune: ignore sub-millisecond write jitter in TX late detection

tags/v0.9.0
Jan hace 1 mes
padre
commit
7d0efe3a38
Se han modificado 1 ficheros con 5 adiciones y 3 borrados
  1. +5
    -3
      internal/app/engine.go

+ 5
- 3
internal/app/engine.go Ver fichero

@@ -112,6 +112,7 @@ type RuntimeTransition struct {

const (
lateBufferIndicatorWindow = 5 * time.Second
writeLateTolerance = 1 * time.Millisecond
queueCriticalStreakThreshold = 3
queueMutedStreakThreshold = queueCriticalStreakThreshold * 2
queueMutedRecoveryThreshold = queueCriticalStreakThreshold
@@ -588,12 +589,13 @@ func (e *Engine) writerLoop(ctx context.Context) {
queueStats := e.frameQueue.Stats()
e.evaluateRuntimeState(queueStats, e.hasRecentLateBuffers())

if writeDur > e.chunkDuration {
lateOver := writeDur - e.chunkDuration
if lateOver > writeLateTolerance {
late := e.lateBuffers.Add(1)
e.lateBufferAlertAt.Store(uint64(time.Now().UnixNano()))
if late <= 5 || late%20 == 0 {
log.Printf("TX LATE: write=%s budget=%s over=%s queueResidence=%s pipeline=%s",
writeDur, e.chunkDuration, writeDur-e.chunkDuration, queueResidence, pipelineLatency)
log.Printf("TX LATE: write=%s budget=%s over=%s tolerance=%s queueResidence=%s pipeline=%s",
writeDur, e.chunkDuration, lateOver, writeLateTolerance, queueResidence, pipelineLatency)
}
}



Cargando…
Cancelar
Guardar