3

我正在运行一个服务于大量 QPS 的服务器应用程序,并且对于每个查询,我都会执行一些 CPU 受限的计算。

我进行了跟踪并在下面放了一个屏幕截图。在此处输入图像描述 x 轴是时间,y 轴是 goroutines 的数量。在深绿色,我们可以看到处于 Running 状态的 goroutine 的数量,在浅蓝色,我们可以看到处于 Runnable 状态的 goroutine 的数量。

由此,很难知道是同一个 goroutines 在排队还是发生了一些上下文切换。
我想知道是否有可能获得 goroutines 的平均等待时间(他们在被安排之前等待的时间)。

4

1 回答 1

0

Go 在那里公开了一些运行时指标:https ://pkg.go.dev/runtime/metrics

公开的指标之一是:

/sched/latencies:seconds
    Distribution of the time goroutines have spent in the scheduler
    in a runnable state before actually running.
于 2022-02-17T13:11:52.940 回答