As a PaaS, it is important on operating Flynn to be able to know and tweak some limits of the applications so a single one can’t bring down the cluster as whole.

Flynn offers such limits with sensible defaults:

  • cpu=1000
  • max_fd=10000
  • memory=1GB
  • temp_disk=100MB

How to set those limits and what they mean will be discussed now.

How to set a limit

The limit command of the Flynn CLI sets a limit per application and process type. Here is an example for setting the allowed memory of the web process to 512MB:

flynn limit set web memory=512MB

The CPU Limit

The “cpu” limit controls how much processing power the application is granted.

It is expressed in the unit “milliCPU”. One core of the system is equivalent to 1000 milliCPUs.

1000 milliCPUs are mapped to the Linux default of 1024 CPU shares. They are relative to each other so a process with twice as much CPU shares gets twice as much computation time.

The File Descriptors Limit

“max_fd” expresses the maximum allowed amount of parallel open file descriptors within the processes container.

The Memory Limit

“memory” specifies the amount of memory granted to the process container. It is written as with the unit describing the size dimension like "MB" or "GB". Examples: 512MB, 2GB

The Disk Limit

“temp_disk” sets the size of the temporary disk within the container process. It is written just like the memory limit.