dstat 如何测量延迟?

Posted

技术标签:

【中文标题】dstat 如何测量延迟?【英文标题】:How dstat measure latency? 【发布时间】:2016-02-27 01:28:55 【问题描述】:

dstat 提供了 --top-latency 和 --top-latency-avg 插件,以显示具有最高延迟(以毫秒为单位)的进程。

它是如何工作的? 我运行一个简单的 dd,它输出它的延迟,用这些插件运行 dstat,我总结了这个过程的延迟,结果不一样。

实际上,它更高! dd 显示 13s 和 dstat 21s,在对毫秒求和后。

我理解正确吗? 是否有任何其他工具可以测量每个进程的延迟?

【问题讨论】:

【参考方案1】:

考虑使用latencytop tool

概要 delaytop [--unknown] [进程...]

说明(来自手册):

“Latencytop 是一款面向软件开发人员(包括内核和用户空间)的 Linux* 工具,旨在识别系统延迟发生的位置,以及导致延迟发生的操作/动作,以便代码可以更改以避免最严重的延迟打嗝。”

【讨论】:

【参考方案2】:

dstat 命令正在使用来自/proc/<PID>/schedstat 的信息。该文件的格式记录在https://www.kernel.org/doc/Documentation/scheduler/sched-stats.txt

您可以在 dstat 的源代码中看到它是如何使用的: https://github.com/dagwieers/dstat/blob/master/plugins/dstat_top_latency.py#L42

【讨论】:

以上是关于dstat 如何测量延迟?的主要内容,如果未能解决你的问题,请参考以下文章

测量音频延迟

Lettuce命令延迟测量(CommandLatency)

使用 Prometheus 测量服务延迟

一种简易的音频信号延迟测量方案

Flink 全链路端到端延迟的测量方法

手把手写C++服务器(14):基于UDP测量两台机器之间的网络延迟