Picking the right size for your flow app
App sizes are predefined resource profiles tailored to the app's specific compute power and memory requirements. This feature allows users to effortlessly select a size during deployment without having to deal with infrastructure-related parameters.
App Size Overview
The following sizes are available to cover different use cases of flows:
“Small” (Low consumption, default setting)
“Medium” (General Purpose)
“Large” (High Performance)
The app sizes make use of the following parameters:
CPU Min: The guaranteed amount of virtual CPU (vCPU) your application always has available. This ensures a baseline of processing power (measured in milliCPUs).
CPU Max: The upper limit of CPU your application can use when additional processing power is available. Your workload can temporarily “burst” up to this value when needed, depending on cluster capacity (measured in milliCPUs).
Memory Min: The guaranteed baseline amount of memory allocated to your application (measured in MiB).
Memory Max: The maximum amount of memory your application is allowed to consume. This provides headroom for handling larger tasks, but unlike CPU, memory cannot burst beyond this limit (measured in MiB).
App Size Limits
Numbers below are based on flow v5.0.0 release:
Small DEFAULT | Medium | Large | |
|---|---|---|---|
Purpose |
|
|
|
Job Management Usage | Recommended for workloads up to | Recommended for workloads up to | Recommended for workloads of up to |
App CPU Min/Max | 250/1200 milli CPU | 350/1650 milli CPU | 500/2400 milli CPU |
App Memory Min/Max | 250/500 MiB | 300/600 MiB | 400/800 MiB |
App Storage | 1 GiB | 1 GiB | 1 GiB |
App sizes are subject to change with new releases. Please note that we continuously adjust the parameters of app sizes of an app with each new release to improve performance and efficiency.
How is CPU managed?
We guarantee a minimum amount of processing power for your deployed apps. This means that each app always has enough CPU resources to run smoothly, no matter what. Your apps can also scale up to use more CPU when needed. If there's a spike in demand for your app, it can tap into extra processing power to handle the load efficiently. The CPU management boundaries are defined for each app individually using the CPU Min and Max parameters.
What happens if my app reaches the CPU Max limit?
If an app reaches the CPU limit, it will be temporarily throttled. Unlike memory limits, reaching the CPU limit won't cause your application to crash or restart. It will simply be unable to process tasks as quickly as it could with more CPU resources.
How is memory managed?
With the different app sizes, any use cases can be covered to ensure that your application always has enough memory to operate smoothly. This guarantees that it can run essential tasks without running out of resources. Your application can use more memory when needed, up to a set limit. This helps it handle larger tasks or sudden increases in workload without crashing. Note that an app can have temporary spikes in memory consumption, such as during the installation of new nodes.
The memory management boundaries are defined for each app individually using the Memory Min and Max parameters.
What happens if my app reaches the Memory Max limit?
When your app tries to use more memory than the maximum limit, it will be automatically stopped and restarted. This is because it can't allocate the additional memory it needs to continue operating. While the automatic restart helps to bring the app back online, it can cause a short temporary downtime and interrupt ongoing processes.
Resolving App Instability
If your app frequently hits the memory limit and restarts, it is unstable. To prevent interruptions, investigate the flow to identify and optimize memory-intensive nodes, processes, or leaks in your code. Alternatively, upgrade the app size to handle its workload. Ignoring this will harm your app's reliability and performance.
How is storage managed?
When apps are deployed in a cloud environment, they automatically take advantage of scalable storage accessed as a Network File System, offering flexibility without set storage constraints. On the other hand, every individual application deployed on-premises requires the automatic setup and connection of a dedicated virtual storage drive with a capacity of 1 GiB.