gocrane / crane

Crane is a FinOps Platform for Cloud Resource Analytics and Economics in Kubernetes clusters. The goal is not only to help users to manage cloud cost easier but also ensure the quality of applications.
https://gocrane.io
Apache License 2.0
1.85k stars 378 forks source link

upgrade cadvisor to reduce cpu usage #846

Closed xrmzju closed 1 year ago

xrmzju commented 1 year ago

What type of PR is this?

bugfix

What this PR does / why we need it:

upgrade cadvisor to v0.41.0 to reduce cpu usage

Which issue(s) this PR fixes:

Fixes https://github.com/gocrane/crane/issues/845

Special notes for your reviewer:

xrmzju commented 1 year ago
WeCom20230808-110755@2x
github-actions[bot] commented 1 year ago

🎉 Successfully Build Images. Now Support ARM Platforms. Comment Post Time: 2023-08-08 18:00 Git Version: 7498706

Docker Registry

Overview: https://hub.docker.com/u/gocrane

Image Pull Command
crane-agent:pr-846-7498706 docker pull gocrane/crane-agent:pr-846-7498706
dashboard:pr-846-7498706 docker pull gocrane/dashboard:pr-846-7498706
metric-adapter:pr-846-7498706 docker pull gocrane/metric-adapter:pr-846-7498706
craned:pr-846-7498706 docker pull gocrane/craned:pr-846-7498706

Quick Deploy - Helm

helm repo add crane https://finops-helm.pkg.coding.net/gocrane/gocrane
helm install crane -n crane-system --create-namespace \
                   --set craned.image.repository=gocrane/craned \
                   --set craned.image.tag=pr-846-7498706 \
                   --set metricAdapter.image.repository=gocrane/metric-adapter \
                   --set metricAdapter.image.tag=pr-846-7498706 \
                   --set craneAgent.image.repository=gocrane/crane-agent \
                   --set craneAgent.image.tag=pr-846-7498706 \
                   --set cranedDashboard.image.repository=gocrane/dashboard \
                   --set cranedDashboard.image.tag=pr-846-7498706 crane/crane

Coding Registry

Overview: https://finops.coding.net/public-artifacts/gocrane/crane/packages

Image Pull Command
crane-agent:pr-846-7498706 docker pull finops-docker.pkg.coding.net/gocrane/crane/crane-agent:pr-846-7498706
dashboard:pr-846-7498706 docker pull finops-docker.pkg.coding.net/gocrane/crane/dashboard:pr-846-7498706
metric-adapter:pr-846-7498706 docker pull finops-docker.pkg.coding.net/gocrane/crane/metric-adapter:pr-846-7498706
craned:pr-846-7498706 docker pull finops-docker.pkg.coding.net/gocrane/crane/craned:pr-846-7498706

Quick Deploy - Helm

helm repo add crane https://finops-helm.pkg.coding.net/gocrane/gocrane
helm install crane -n crane-system --create-namespace \
                   --set craned.image.repository=finops-docker.pkg.coding.net/gocrane/crane/craned \
                   --set craned.image.tag=pr-846-7498706 \
                   --set metricAdapter.image.repository=finops-docker.pkg.coding.net/gocrane/crane/metric-adapter \
                   --set metricAdapter.image.tag=pr-846-7498706 \
                   --set craneAgent.image.repository=finops-docker.pkg.coding.net/gocrane/crane/crane-agent \
                   --set craneAgent.image.tag=pr-846-7498706 \
                   --set cranedDashboard.image.repository=finops-docker.pkg.coding.net/gocrane/crane/dashboard \
                   --set cranedDashboard.image.tag=pr-846-7498706 crane/crane

Ghcr Registry

Overview: https://github.com/orgs/gocrane/packages?repo_name=crane

Image Pull Command
crane-agent:pr-846-7498706 docker pull ghcr.io/gocrane/crane/crane-agent:pr-846-7498706
dashboard:pr-846-7498706 docker pull ghcr.io/gocrane/crane/dashboard:pr-846-7498706
metric-adapter:pr-846-7498706 docker pull ghcr.io/gocrane/crane/metric-adapter:pr-846-7498706
craned:pr-846-7498706 docker pull ghcr.io/gocrane/crane/craned:pr-846-7498706

Quick Deploy - Helm

helm repo add crane https://finops-helm.pkg.coding.net/gocrane/gocrane
helm install crane -n crane-system --create-namespace \
                   --set craned.image.repository=ghcr.io/gocrane/crane/craned \
                   --set craned.image.tag=pr-846-7498706 \
                   --set metricAdapter.image.repository=ghcr.io/gocrane/crane/metric-adapter \
                   --set metricAdapter.image.tag=pr-846-7498706 \
                   --set craneAgent.image.repository=ghcr.io/gocrane/crane/crane-agent \
                   --set craneAgent.image.tag=pr-846-7498706 \
                   --set cranedDashboard.image.repository=ghcr.io/gocrane/crane/dashboard \
                   --set cranedDashboard.image.tag=pr-846-7498706 crane/crane
borgerli commented 1 year ago

My Test Results

Scenario

on 16c/32G node, create 200 pods of nginx deployment and a svc for nginx pods. Use ab -n 999999999 -c 500 http://<nginx-svc-ip>/ to do stress.

Without this PR

Before stress, crane agent avg. cpu usage: 398m After, 857m

With this PR

Before stress, 237m After, 380m