Redis SLOWLOG在redis中记录缓慢命令的时间。记录的时间以微秒为单位。但是,我不确定时间是CPU时间还是实时。因此,如果机器负载过重,并且redis进程被饿死,那么会导致在其他快速命令上更慢的日志条目?redis SLOWLOG命令是否测量CPU时间或实时?
回答
SLOWLOG为墙上时钟感提供时间,而不是CPU。当命令超过配置的执行时间阈值时,条目将被添加到日志中。如果CPU处于饥饿状态,并且正常或快速操作需要较长时间才能完成并超过阈值,则确实会将其添加到日志中。
Redis使用实时而不是CPU。
通过互联网搜索后,我发现有关redis slowlog的有趣链接](http://blog.wjin.org/posts/redis-slowlog.html),这让我有一个想法来搜索Redis的源代码。
根据事实证明,在slowlog数据是由this function
void slowlogPushEntryIfNeeded(client *c, robj **argv, int argc, long long duration);
呼叫添加的源代码。
搜索后,只在server.c文件中调用此功能。
所以持续时间被记录在那里,它是从[此代码段]产生(https://github.com/antirez/redis/blob/bb3b5ddd1968d2715acc37b63124ccf461276160/src/server.c#L2207)
start = ustime();
c->cmd->proc(c);
duration = ustime()-start;
而ustime产生与following source code:
/* Return the UNIX time in microseconds */
long long ustime(void) {
struct timeval tv;
long long ust;
gettimeofday(&tv, NULL);
ust = ((long long)tv.tv_sec)*1000000;
ust += tv.tv_usec;
return ust;
}
所以gettimeofday是负责持续时间的生产,它显示的是实际的时间而不是CPU。
不错的答案,但我已经给了另一个答案的正确答案。 –
- 1. 在java中是否有命令来测量执行时间?
- 2. 实时总CPU平均负载命令
- 3. 是否在NetBeans CPU探查使用挂钟时间或CPU时间?
- 4. Windows Phone PeriodicTask实时或CPU时间的25秒运行时间?
- 5. CPU缓存命中时间
- 6. LoadRunner是否测量UI响应时间?
- 7. Redis复合命令或命令管道
- 8. 如何设置redis-cli命令的超时时间?
- 9. kafka或redis实时BI
- 10. Redis是否连续处理命令?
- 11. Redis的CPU使用率是否正常?
- 12. 在命令行中运行命令时的CPU使用情况
- 13. 从命令行在Windows上查找CPU时间
- 14. 是否有内置的时间命令在SqlCommand中花了多长时间?
- 15. 实时测量鼠标点击间隔
- 16. 测量进程消耗的CPU时钟
- 17. UNIX时间命令 - 是输入时间的因素?
- 18. 用户+系统时间是否等于实时/挂钟时间?
- 19. 测量时间差
- 20. System.currentTimeMillis测量时间
- 21. 如何检查变量或命令是否来自bash或unix?
- 22. linux时间格式命令
- 23. 命令限制时间
- 24. cp命令时间差异
- 25. DIFF时间戳命令
- 26. 如何测量一段程序的用户/系统CPU时间?
- 27. 在JAVA中测量部分代码的CPU使用时间
- 28. 测量插件CPU随着时间的推移
- 29. 可靠地使用cudaEvent_t来测量CPU时间吗?
- 30. 如何测量Clojure函数执行的CPU时间?
谢谢。因此,要明确一点,如果我们有一台CPU不足的机器,我们可以期待比使用free-er CPU的机器更多的慢日志条目。 –
是的,这是正确的。 –