Skip to content

Performance of async_hooks scope manager #695

Closed

Description

Describe the bug
In our application we noticed a significant performance overhead from using the default async_hooks-based scope manager. After adding scope: 'noop' to our config, we saw the following improvements.

CPU usage halved:

CPU Usage-2

Significantly smaller GC pauses, with less variance:

Garbage Collection Pause Time

After researching this further, we found that use of async_hooks is known to cause significant performance degradation:

Are there any official recommendations for configuring the node environment and/or dd-trace-js to reduce the overhead of DataDog's async_hooks usage? Is using scope: 'noop' a viable approach? What effects would this have on plugins?

Environment

  • Operation system: Debian
  • Node version: 10.16.3
  • Tracer version: 0.15.2
  • Agent version: 6.13.0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    async_hooks-perfPerformance issues related to async_hooks.communityquestionFurther information is requested

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions