Skip to content

EventDispatcher的数量和火焰图堆栈中看到的并不一致 #2892

@Paragrf

Description

@Paragrf
  1. 问题背景

    • 首先注意到 EventDispatcher 的数量受以下两个参数限制:
      • FLAGS_task_group_ntags
      • FLAGS_event_dispatcher_num
    • 通过 view 观察到这两个 flag 的值均为 1,因此预期服务端应仅在 1 个 pthread 上执行 EventDispatcher::RunThis
  2. 测试现象

    • 部署了一个 9 线程 的 brpc 服务端进行压力测试
    • 火焰图显示 9 个 worker 上均存在 EventDispatcher::RunThis 的堆栈
  3. 疑问

    • 预期(单线程执行)与实际观测(多线程执行)存在差异,如何解释此现象?
  4. 附件

    • 火焰图(svg图,可点选)
      Image

    • brpc 设置 EventDispatcher 数量的源码
      Image
      Image

    • view 上看到的 flag 值
      Image
      Image

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions