• Home
  • Manage
  • Dynatrace Configuration as Code
  • Dynatrace Configuration as Code via Monaco
  • Reference
  • Hardware requirements

Hardware requirements for Dynatrace Monaco CLI

This page provides an overview of the hardware requirements for Dynatrace Configuration as Code via Monaco.

Required memory

The main hardware requirement of the Dynatrace Monaco CLI is memory.

When executing in a container with a hard memory limit or limited physical hardware, make sure to set a reasonably high memory limit or ensure that swap space is available.

The required memory is mostly defined by the number of configurations and the size of their JSON template files. The following table gives you an idea of memory requirements for sample project sizes; your project might need more or less memory.

Project size / Number of configurationsStorage size on diskRequired memory (RAM+swap)
125800 kB5 MB
6253.2 MB20 MB
250012.8 MB76.2 MB
500025.5 MB152 MB
1000050.9 MB303 MB
25000127.3 MB757 MB
50000254.5 MB1500 MB
100000509 MB3000 MB

As a general rule, available memory should be around 6.5 times the storage required by your configurations on disk.

Memory limits

You can configure a soft memory limit for the Dynatrace Monaco CLI by setting the GOMEMLIMIT environment variable.

GOMEMLIMIT is a numeric value with an optional unit suffix of B, KiB, MiB, GiB, or TiB. If no suffix is supplied, the value is assumed to be in bytes (B).

For example, to set a limit of 3 gibibytes, set the environment variable as GOMEMLIMIT=3GiB.

shell
GOMEMLIMIT=3GiB monaco deploy manifest.yaml
shell
$env:GOMEMLIMIT=3GiB monaco deploy manifest.yaml

As a soft limit, this limit can be exceeded if your deployment needs more memory. Setting too low a limit, however, will result in increased runtime, as more time is spent to free memory when the limit is exceeded. See the table above for estimated memory requirements.

Differences in CLI versions

  • Dynatrace Monaco CLI version 2.8.0+ A default memory limit of 2GiB is applied. To change it, set GOMEMLIMIT.

  • Dynatrace Monaco CLI version 2.7.0 or earlier No default memory limit is applied. The Dynatrace Monaco CLI may consume excessive memory. To apply a memory limit, set GOMEMLIMIT.

CPU impact on deployment times

Available CPU mostly impacts deployment time needed and, unlike memory, doesn't impose hard limits; on more limited hardware, deployments simply take more time.

For example, deploying from a container limited to a single vCPU takes significantly longer than one with several available vCPUs or running directly on a system with a multi-core processor.

The following table gives a rough overview of how the number of configurations impacts deployment times. This merely illustrates the relationship between project size and deployment time and probably won't match deployment time on your specific hardware.

This table demonstrates that deployment time doesn't grow linearly with the size of your projects. This is because of the behavior of the Dynatrace API as the number of requests and existing configurations increases—this causes increased rate limiting and processing time when adding configurations.

Project size / Number of configurationsEstimated deployment time
12520 s
62535 s
25002 min 30 s
50003 min 45 s
1000010 min
2500050 min

The deployment times above are measured for parallel deployments available by default with Dynatrace Monaco CLI version 2.7.0+.

Dynatrace Monaco CLI version 2.6.0 or earlier Earlier versions deploy fully sequentially and are notably slower.

Project size / Number of configurationsEstimated deployment time
12520 s
6252 min
25008 min 20 s
500018 min 20 s