Skip to content
This repository has been archived by the owner on Sep 30, 2024. It is now read-only.

jaeger integration substantially harms search performance #5363

Closed
emidoots opened this issue Aug 26, 2019 · 2 comments
Closed

jaeger integration substantially harms search performance #5363

emidoots opened this issue Aug 26, 2019 · 2 comments
Assignees
Milestone

Comments

@emidoots
Copy link
Member

I have evidence that enabling "useJaeger": true substantially harms search performance on single-node deployments with the Jaeger deployment described in https://github.com/sourcegraph/deploy-sourcegraph-docker

It is possible the performance implications are not as severe in deployments that:

  1. Are spread across more machines / not ran on a single beefy machine.
  2. Are connected to a more aggressively tuned (discarding more spans), or beefier, Jaeger deployment.

To confirm my findings, run a search performance benchmark before and after setting "useJaeger": true and measure the change. I will share my results here soon.

@emidoots emidoots changed the title jaeger integration substantially harms performance jaeger integration substantially harms search performance Aug 26, 2019
emidoots referenced this issue in sourcegraph/deploy-sourcegraph-docker Aug 26, 2019
emidoots referenced this issue in sourcegraph/deploy-sourcegraph-docker Aug 27, 2019
@beyang
Copy link
Member

beyang commented Mar 18, 2020

Underlying issue: search fan-out generates a lot of Jaeger spans for a given trace. Network I/O becomes flooded/bottleneck.

Subsampling may work? Need to try it, because downsampling may happen at the collector, rather than the agent. (< Need to answer this question.) Traffic is generated both from client to agent and from agent to collector. Other options if subsampling doesn't work:

Test plan: try it out with Jaeger on and off and see if there's an perf discrepancy

  • Test with and without indexed search code path
  • Test with commit search
  • Test with multiple replicas of searcher
  • Test on both Docker Compose (single node) and Kubernetes (multi-node)
    • Docker Compose: all the network traffic gets generated from a single node
    • Kubernetes: you'll get more network bandwidth with more nodes (and less traffic from each node), but more traffic will get generated with more replicas (e.g., of searcher)

@beyang beyang self-assigned this Apr 8, 2020
@beyang beyang added this to the Backlog milestone Apr 8, 2020
@beyang
Copy link
Member

beyang commented Apr 14, 2020

Closing given we now have the selective tracing option.

@beyang beyang closed this as completed Apr 14, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants