Current-Users archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

re: mysql sleep timeouts



On Sep 29, 20:51, John Nemeth wrote:
} On Sep 30, 13:22, matthew green wrote:
} } John Nemeth writes:
} } >      I'm seeing a problem in MySQL Cluster where sleep timeouts
} } > are running too long.  I don't know if this problem also affects
} } > regular MySQL, but since they share a lot of code, it is very
} } > possible.
} } >
} } >      After doing a fair bit of digging, I found a function called,
} } > NdbSleep_MilliSleep().  The primary line in this function is,
} } > "select(0, nullptr, nullptr, nullptr, &t);".  t is a "struct
} } > timeval".  I'm guessing that select() timeout doesn't provide
} } > millisecond level granularity?  Somebody can confirm.  What would
} } > be a better option (hopefully reasonably portable)?
} } 
} } what's "too long"?  note that you can't get sleeps with higher
} } resolution than hz currently, ie, default of 10ms, so if you're
} } seeing 10ms instead of 1ms, the only current workaround is to
} } run with HZ=1000 kernels.
} 
}      A sampling of log messages (these repeat many times):
} 
} 2024-05-26 21:58:51 [ndbd] INFO     -- Watchdog: User time: 10705  System time: 2339
} 2024-05-26 21:58:51 [ndbd] WARNING  -- Ndb kernel thread 0 is stuck in: JobHandling in block: 0, gsn: 0 elapsed=1654
} 2024-05-26 21:58:51 [ndbd] INFO     -- Watchdog: User time: 10705  System time: 2339
} 2024-05-26 21:58:51 [ndbd] WARNING  -- Time moved forward with 1678 ms
} 2024-05-26 21:58:51 [ndbd] WARNING  -- timerHandlingLab, expected 10ms sleep, not scheduled for: 1682 (ms)
} 2024-05-26 21:58:51 [ndbd] INFO     -- Bursty environment, mean burstiness of 92 pct, some risk of congestion issues
} 2024-05-26 21:58:53 [ndbd] WARNING  -- Ndb kernel thread 0 is stuck in: JobHandling in block: 0, gsn: 0 elapsed=109
} 2024-05-26 21:58:53 [ndbd] INFO     -- Watchdog: User time: 10782  System time: 2347
} 2024-05-26 21:58:53 [ndbd] INFO     -- timerHandlingLab, expected 10ms sleep, not scheduled for: 249 (ms)
} 2024-05-26 21:58:58 [ndbd] WARNING  -- Ndb kernel thread 0 is stuck in: JobHandling in block: 0, gsn: 0 elapsed=200
} 
} } when we have better timers available, the above method should
} } work fine -- select() passes microsecond precision we'd only have
} } to look it up to the future timer system.
} } 
} } (alternatively, if you _need_ this level of precision now, the
} } only real way is to hard-spin until time passes.)
} 
}       How would one do that from userland?
} 
} }-- End of excerpt from matthew green

     I guess I should mention that it is running in a Xen domU.
The host is netbsd-9 from September 17th, 2023 with Xen 4.15.5.
It is slated for an update.

}-- End of excerpt from John Nemeth


Home | Main Index | Thread Index | Old Index