backend: resource limits:

- set resource mem and cpu requests/limits for all used services (not minio for now)
- add readiness proble to redis, mongo
- adjust crawler limits, set via configmap
This commit is contained in:
Ilya Kreymer 2022-02-08 19:52:00 -08:00
parent c577e36b74
commit ca85edc8b3
6 changed files with 62 additions and 11 deletions

View File

@ -50,6 +50,11 @@ class K8SManager:
self.redis_url = os.environ["REDIS_URL"]
self.requests_cpu = os.environ["CRAWLER_REQUESTS_CPU"]
self.limits_cpu = os.environ["CRAWLER_LIMITS_CPU"]
self.requests_mem = os.environ["CRAWLER_REQUESTS_MEM"]
self.limits_mem = os.environ["CRAWLER_LIMITS_MEM"]
self.loop = asyncio.get_running_loop()
self.loop.create_task(self.run_event_loop())
self.loop.create_task(self.init_redis(self.redis_url))
@ -689,20 +694,14 @@ class K8SManager:
):
"""Return crawl job template for crawl job, including labels, adding optiona crawl params"""
requests_memory = "384M"
limit_memory = "2G"
requests_cpu = "500m"
limit_cpu = "2000m"
resources = {
"limits": {
"cpu": limit_cpu,
"memory": limit_memory,
"cpu": self.limits_cpu,
"memory": self.limits_mem,
},
"requests": {
"cpu": requests_cpu,
"memory": requests_memory,
"cpu": self.requests_cpu,
"memory": self.requests_mem,
},
}

View File

@ -17,6 +17,12 @@ data:
CRAWL_TIMEOUT: "{{ .Values.crawl_timeout }}"
CRAWL_RETRIES: "{{ .Values.crawl_retries }}"
CRAWLER_REQUESTS_CPU: "{{ .Values.crawler_requests_cpu }}"
CRAWLER_LIMITS_CPU: "{{ .Values.crawler_limits_cpu }}"
CRAWLER_REQUESTS_MEM: "{{ .Values.crawler_requests_memory }}"
CRAWLER_LIMITS_MEM: "{{ .Values.crawler_limits_memory }}"
REDIS_URL: "{{ .Values.redis_url }}"
REDIS_CRAWLS_DONE_KEY: "crawls-done"

View File

@ -57,10 +57,12 @@ spec:
resources:
limits:
cpu: {{ .Values.nginx_limit_cpu }}
cpu: {{ .Values.nginx_limits_cpu }}
memory: {{ .Values.nginx_limits_memory }}
requests:
cpu: {{ .Values.nginx_requests_cpu }}
memory: {{ .Values.nginx_requests_memory }}
readinessProbe:
httpGet:

View File

@ -73,6 +73,11 @@ spec:
containers:
- name: mongo
image: {{ .Values.mongo_image }}
{{- if .Values.mongo_run_repair }}
command: ["mongod", "--repair"]
{{- end }}
imagePullPolicy: {{ .Values.mongo_pull_policy }}
envFrom:
- secretRef:
@ -83,6 +88,21 @@ spec:
mountPath: /data/db
subPath: mongo
resources:
limits:
cpu: {{ .Values.mongo_limits_cpu }}
memory: {{ .Values.mongo_limits_memory }}
requests:
cpu: {{ .Values.mongo_requests_cpu }}
memory: {{ .Values.mongo_requests_memory }}
readinessProbe:
exec:
command:
- mongo
- --eval
- db.adminCommand('ping')
---
apiVersion: v1
kind: Service

View File

@ -70,6 +70,21 @@ spec:
mountPath: /data
subPath: redis
resources:
limits:
cpu: {{ .Values.redis_limits_cpu }}
memory: {{ .Values.redis_limits_memory }}
requests:
cpu: {{ .Values.redis_requests_cpu }}
memory: {{ .Values.redis_requests_memory }}
readinessProbe:
exec:
command:
- redis-cli
- ping
---
apiVersion: v1
kind: Service

View File

@ -128,6 +128,15 @@ spec:
mountPath: /data
subPath: signer
resources:
limits:
cpu: {{ .Values.signer_limits_cpu }}
memory: {{ .Values.signer_limits_memory }}
requests:
cpu: {{ .Values.signer_requests_cpu }}
memory: {{ .Values.signer_requests_memory }}
---
apiVersion: v1
kind: Service