> ## Documentation Index
> Fetch the complete documentation index at: https://developer.upsun.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Container profile

> Defines the container profile of the application.

Optional in [single-runtime](/docs/configure-apps/app-reference/single-runtime-image#primary-application-properties) and [composable](/docs/configure-apps/app-reference/composable-image#primary-application-properties) images.

A *container profile* is a CPU-to-memory ratio that defines how much CPU and RAM a container can use. Four container profiles are available: `HIGH_CPU`, `BALANCED`, `HIGH_MEMORY`, and `HIGHER_MEMORY`.

By default, Upsun assigns a container *profile* and container *size* to each application and service upon the first deployment of a project. You can configure this *resource initialization strategy*- for details, see the [Resource initialization](/docs/manage-resources/resource-init) topic.

When you change the container *size* assigned to an app or service (by using the CLI or Console; see [below](#changing-the-container-size)), the profile enforces the CPU-to-RAM ratio, ensuring your container is sized correctly.

To choose a different CPU-to-memory *ratio*, change the `container_profile` key. See [Adjust a container profile](/docs/manage-resources/adjust-resources#adjust-a-container-profile) in the "Resource configuration" topic.

### Single-runtime images

In a single-runtime image, you typically don't need to change the `container_profile` key of any of the apps and services. For the default profile values assigned for each runtime and service, refer to the [Default container profiles](/docs/manage-resources/adjust-resources#default-container-profiles) table in the "Resource configuration" topic.

### Composable images

The default container profile for an app or service in a composable image is `HIGH_CPU`.<br />
<br />If your `.applications.<app_name>.stack.runtimes` key defines multiple runtimes, you need to do one of the following:

* Change
  the `.applications.<app_name>.container_profile `[default container\_profile](/docs/manage-resources/adjust-resources#advanced-container-profiles)
* Change [default CPU and RAM ratio](/docs/manage-resources/resource-init) on first deployment using the following
  commands:

  ```bash theme={null}
  upsun push --resources-init=manual
  ```

### Changing the container size

You can change the container *size* assigned to an app or service by using the Upsun CLI or Console:

* For detailed steps, see the [Resource configuration](/docs/manage-resources/adjust-resources) topic.
* For details about container sizes for each resource allocation strategy (shared CPU, guaranteed CPU, and initial allocation), see the [Advanced: Container profiles](/docs/manage-resources/adjust-resources#advanced-container-profiles) section of the "Resource configuration" topic.
