Page MenuHomePhabricator

[SPIKE][NEEDS GROOMING] resource allocation for co-located wdqs-qlever instances
Open, Needs TriagePublic

Description

Since we won't auto-scale, we need to experiment with resource allocation for main and scholarly_articles graphs on the same tainted nodes.

The QLever team recommends starting by giving the databse a number of threads that is 2x the cores available. We need to validate how this maps to k8s.

Internal and external traffic patterns are significantly different, both in terms of query classes (latencies) as well as throughput (internal scholarly endpoint serves 2 orders of magnitude more requests than external ones). We expect to end up with different constraints and configs.

Goal:

  • We should test and document our choices, and have a process in place for periodic review.
  • Set qlever memory request == limit so each pod gets a non-overcommitted,

eviction-safe memory footprint instead of a Burstable 32Gi->100Gi (main)

  • Increase number of replicas to > 1 in both datacenters.

Questions:

What is a good partitioning (memory/cores) for main and scholarly dbs running on the same node?

Event Timeline

Change #1311052 had a related patch set uploaded (by Gmodena; author: Gmodena):

[operations/deployment-charts@master] WIP: wdqs: pin qlever memory request == limit

https://gerrit.wikimedia.org/r/1311052

Change #1313874 had a related patch set uploaded (by Trueg; author: Trueg):

[operations/deployment-charts@master] WDQSv2: scale resource limits to max with respect to the dedicated wdqs nodes.

https://gerrit.wikimedia.org/r/1313874

Change #1313874 merged by jenkins-bot:

[operations/deployment-charts@master] WDQSv2: scale resource limits to max with respect to the dedicated wdqs nodes.

https://gerrit.wikimedia.org/r/1313874

Change #1318730 had a related patch set uploaded (by Trueg; author: Trueg):

[operations/deployment-charts@master] WDQSv2: Set resourcequota for the wdqs namespace

https://gerrit.wikimedia.org/r/1318730

Change #1318730 merged by jenkins-bot:

[operations/deployment-charts@master] WDQSv2: Set resourcequota for the wdqs namespace

https://gerrit.wikimedia.org/r/1318730

Change #1318733 had a related patch set uploaded (by Trueg; author: Trueg):

[operations/deployment-charts@master] WDQSv2: Scheduling based on resource requests

https://gerrit.wikimedia.org/r/1318733

Change #1318733 merged by jenkins-bot:

[operations/deployment-charts@master] WDQSv2: Scheduling based on resource requests

https://gerrit.wikimedia.org/r/1318733

Change #1311052 abandoned by Trueg:

[operations/deployment-charts@master] WIP: wdqs: pin qlever memory request == limit

Reason:

Superceeded by https://gerrit.wikimedia.org/r/c/operations/deployment-charts/+/1318733

https://gerrit.wikimedia.org/r/1311052

Gehel subscribed.

Movign "Blocked / Waiting" on DPE SRE side, as the experimentation seems to be going forward with Wikidata Platform Team. If you need our help, please ping!

Change #1342298 had a related patch set uploaded (by Gmodena; author: Gmodena):

[operations/deployment-charts@master] wdqs: set QLEVER_NUM_QUERIES to 2x allocated CPU cores

https://gerrit.wikimedia.org/r/1342298

Change #1342298 merged by jenkins-bot:

[operations/deployment-charts@master] wdqs: set QLEVER_NUM_QUERIES to 2x allocated CPU cores

https://gerrit.wikimedia.org/r/1342298