Skip to content

How to improve the distributor's performance #4133

@liaol

Description

@liaol

I am using Pyroscope with the opentelemetry-ebpf-profiler to profile an entire host.

Here is my load test setup:

  • Distributor: 16 cores, 32 GB RAM
  • Ingesters: 8cores, 16GB RAM, SSD disk,3 instances
  • Method: Uses the /opentelemetry.proto.collector.profiles.v1development.ProfilesService/Export gRPC endpoint
  • Workload: Sends 8,000 samples (4 MB after gzip compression) every 5 seconds
  • Client Configuration: Write timeout set to 5 seconds

The distributor's performance is suboptimal, handling only 7 requests per second, indicating a bottleneck. The ingesters, however, are performing well.

How can I optimize the distributor's performance to handle higher throughput? Thanks~

Here is my config

storage:
    backend: "s3"

distributor:
    ring:
        kvstore:
            store: memberlist
            prefix: collectors/

ingester:
    lifecycler:
        ring:
            kvstore:
                store: memberlist
                prefix: collectors/

limits:
    max_profile_size_bytes: 33554432
    ingestion_rate_mb: 1024000
    max_global_series_per_tenant: 0
    max_profile_stacktrace_depth: 0
    compactor_blocks_retention_period: 48h

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