是否可以通过观察 tikv 主动被动 context switch 来调整各模块线程数

【 TiDB 使用环境】生产环境
【 TiDB 版本】6.5.0

根据中显示的 voluntary/nonvoluntary context switches,是否可以有以下推断?

  • 主动切换上下文的,说明线程 cpu 负载较小
  • 被动切换上下文的,说明线程 cpu 负载较大,
  • 被动切换上下文的次数越多,越说明 kv 中对应模块存在 cpu 瓶颈

另外也想看看大家这部分监控平常的状态

主动切换本身并不直接说明CPU负载小。更多地是反映了线程的行为和调度策略吧

嗯感觉有理,那反过来的话被动切换多可以说明负载大么?能不能认为,这些被动切换的线程,都是因为cpu资源不足,被迫跟其它线程共享cpu资源?

被动切换次数多可以认为是CPU负载较大的一个表现

1 个赞

正常情况是这样的。
例外的情况就是,主动切换多也有可能是程序设计有问题。

1 个赞

被动切换上下文的次数越多,确实越可能表明系统中存在 CPU 瓶颈。这通常意味着 CPU 资源不足以满足所有线程或进程的需求,导致它们在等待 CPU 时间片的过程中频繁被中断

1 个赞

那基于被动切换次数和cpu负载之间的关系关系,在被动切换上下文的线程中,切换的次数可以相互比较么?比如能否认为,被动切换次数较高的线程相对于次数较低的线程,前者的负载要更高一些?能否通过分析这些表现来调整模块的线程数呢?

我是感觉这个指标只能当是一种佐证或者补充。单独使用的效果并不会太好。

毕竟也没有什么设置能明确的降低切换数。就算是感觉有问题,下一步行动也没有什么好的选择。

就像负载问题,直接观察cpu占用或者load可能都比这个指标强。对应的行动措施也更明显。

此话题已在最后回复的 7 天后被自动关闭。不再允许新回复。