Skip to content

iroh-dns-server: very heavy disk write load #2972

@PaulOlteanu

Description

@PaulOlteanu

The iroh dns server seems to do a lot of writing. I have about 30,000 clients at the moment with a republish interval of 2 minutes (so that should average to 250/sec), and I'm seeing a write throughput of about 7Mb/sec from 1,500 writes/sec on the dns server disk.

I'm surprised to see this much load considering the records should be around 1KB, so I'd expect more like 0.25Mb/sec.
This seems so wrong I'm wondering if my Endpoint is somehow misconfigured?

let discovery = ConcurrentDiscovery::from_services(vec![
    Box::new(PkarrPublisher::with_options(
        self.secret_key.clone(),
        self.iroh_config.pkarr_url.clone(),
        30,
        Duration::from_secs(60 * 2),
    )),
    Box::new(DnsDiscovery::new(self.iroh_config.dns_url.clone())),
]);

let endpoint = Endpoint::builder()
    .secret_key(self.secret_key.clone())
    .alpns(vec![ALPN.to_vec()])
    .relay_mode(RelayMode::Custom(relay_map))
    .discovery(Box::new(discovery))
    .transport_config(transport_config)
    .bind()
    .await
    .unwrap();

I don't have prometheus set up to scrape the server metrics yet, but I'll try to see if there's any crazy metrics tomorrow. Update: The number of update requests to pkarr seems to line up with the expected number of clients, so I don't think the number of writes is a result of a large amount of client requests to write

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Status

    ✅ Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions