Hi,

I am working on [YUNIKORN-86] (Set proper resource request and limit for
YuniKorn pods) issues and I would like to hear your feedback on this issue.
Link:https://issues.apache.org/jira/browse/YUNIKORN-86

Currently I am working on finding a justified request and limit value for
the scheduler and shim pods in k8s. So far:
- Researched a bit on the k8s default scheduler (kube-scheduler) and even
though it can be configured, that are no defaults for that pod. On AKS
there is a default that I could find on the internet:
>>>
      resources:
        requests:
          cpu: 100m
          memory: 128Mi
        limits:
          cpu: 4
          memory: 2Gi
>>>
- Tried to obtain some values from a deployed k8s cluster, but had troubles
with the metrics-server (in some old version there was heapster deployed)
- Ran the yunikorn-core/pkg/scheduler/tests/scheduler_perf_tests.go and
monitored the cpu/memory consumption. I don't have the run's full graph,
but these are the approximate values that I experienced
   - for most of the time cpu was on around 4 cores
   - on peak time it was around 5.2 cores
   - the memory consumption was moderate, it was around 4.3% of the 16Gb
memory of my laptop - which is around 700Mb when the perf test was ended.
The memory depends on the stored/currently running applications, so I think
1Gb should be fine for this for general purpose.
Note that the cpu numbers are related to the peak usage, when the scheduler
was under pressure, but when only a small amount of pods are
scheduled, this is a much smaller number.

I suggest the following (similar to AKS) number:
>>>
      resources:
        requests:
          cpu: 200m
          memory: 512Mi
        limits:
          cpu: 4
          memory: 2Gi
>>>

One additional thing: there were some measurements of YuniKorn in kubemark.
Could you please share your outputs if there's something related to the
scheduler and the shim pod's resource usage?

Regards,
Adam

Reply via email to