From ce4434286cf5b1e4798835d094d353abe2b39e7f Mon Sep 17 00:00:00 2001 From: rock Date: Sun, 1 Nov 2026 03:27:56 +0000 Subject: [PATCH] =?UTF-8?q?fix(forgejo):=20raise=20Gitea=20CPU=20limit=20?= =?UTF-8?q?=E2=80=94=20it=20was=20throttled=2016%=20of=20the=20time=20(#93?= =?UTF-8?q?)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: rock --- .../phase3-forgejo/forgejo-values.yaml | 25 ++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/k8s/bootstrap/phase3-forgejo/forgejo-values.yaml b/k8s/bootstrap/phase3-forgejo/forgejo-values.yaml index 5df79e3..106785f 100644 --- a/k8s/bootstrap/phase3-forgejo/forgejo-values.yaml +++ b/k8s/bootstrap/phase3-forgejo/forgejo-values.yaml @@ -134,12 +134,31 @@ ingress: # wildcard. The wildcard covers this host. # Resources +# +# The 1000m ceiling throttled Gitea badly. Measured on a running pod: +# nr_throttled 189528 of 1169014 CFS periods (16.2%) +# throttled_usec 4424898602 us (~74 minutes lost) +# actual usage 951m against the 1000m limit +# The visible symptom was slow Actions traffic: FetchTask took 3469.9ms and +# repository compare endpoints took 3091-3811ms, so runners timed out and +# retried, which added more load to an already saturated process. +# +# The database was never the bottleneck. A real action_runner UPDATE measured +# 2.133ms with zero lock waits, so this is CPU starvation in Gitea itself. +# +# requests.cpu rises to 750m because a request below real usage earns the pod +# little scheduling weight during contention. limits.cpu rises to 3000m +# because diff computation is bursty and needs room to run without throttling. +# +# Caution: this pod runs on talos-cp-3, a control-plane node. 3000m is 25% of +# that node's 11950m allocatable CPU. If Gitea sustains near this limit, move +# the workload off the control plane rather than raising the limit again. resources: requests: - cpu: 200m - memory: 512Mi + cpu: 750m + memory: 768Mi limits: - cpu: 1000m + cpu: 3000m memory: 2Gi # Tolerations for control-plane