Skip to content

Getting started guide requires ~9GB of memory #323

Description

@negz

What problem are you facing?

I followed the getting started guide up through "Set up the InferenceGateway". At idle, the single kind node container was using:

CONTAINER                  CPU %     MEM USAGE / LIMIT    MEM %
modelplane-control-plane   10-16%    9.3GiB / 19.4GiB      48%

That's a lot of memory for a getting started guide. I suspect it won't fit on a lot of potential users' development laptops - e.g. folks with 16GB MacBooks who allocate 8GB to the Docker VM.

Broken down by container (crictl stats inside the node):

Crossplane providers:

Memory Provider
426 MB provider-aws-ec2
341 MB provider-gcp-compute
301 MB provider-aws-iam
286 MB provider-aws-efs
285 MB provider-aws-eks
255 MB provider-family-aws
239 MB provider-gcp-cloudplatform
222 MB provider-gcp-container
220 MB provider-family-gcp
158 MB provider-helm
149 MB provider-kubernetes
2,882 MB Subtotal

Modelplane composition functions:

Memory Function
61 MB inference-gateway
44 MB eks-cluster
44 MB model-deployment
38 MB gke-cluster
35 MB serving-stack
34 MB model-replica
34 MB inference-cluster
33 MB model-cache
33 MB model-endpoint
33 MB inference-class
33 MB model-service
32 MB usages
454 MB Subtotal

Everything else:

Memory Component
3,028 MB kube-apiserver
554 MB Crossplane core (crossplane)
283 MB etcd
164 MB kube-controller-manager
141 MB MetalLB controller
31 MB kube-scheduler
27 MB Traefik
26 MB kindnet-cni
23 MB kube-proxy
22 MB crossplane-rbac-manager
48 MB MetalLB speaker (frr, speaker, frr-metrics)
33 MB CoreDNS (x2)
16 MB local-path-provisioner
~4,396 MB Subtotal

How could Modelplane help solve your problem?

In general we should minimize the amount of compute resources Modelplane needs to run. In particular there's no need for us to run providers that the user won't actually use. For example there's no need to install all the GKE providers if the user only intends to use AWS. This'll only get worse as we add support for more providers. Crossplane control plane projects don't have a concept of optional dependencies, but crossplane/crossplane#7573 tracks an upstream improvement that could help.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions