App Store
The following properties are auto-configured during Unravel App Store installation. However, you can override the values later if required.
Property/Description | Set by user | Unit | Default |
---|---|---|---|
com.unravel.appstore.apps.enabled To enable/disable Appstore UI. Set to true to enable and false to disable. | Optional | boolean | true |
unravel.appstore.flask.port The port on which the Appstore’s flask process will listen. This can be any free port on Unravel’s core node. | Optional | integer | 5001 |
unravel.appstore.apps.port.range.start Defines the start value of a range of ports on which Individual apps will run. This can be any valid port on Unravel's core node. | Optional | integer | 8190 |
unravel.appstore.apps.port.range.end Defines end value of a range of ports on which Individual apps will run. This can be any valid port on Unravel's core node. This value should be greater than the value set for unravel.appstore.apps.port.range.start. Make sure to have enough ports allocated for apps to run. Each app requires 1 port. A good practice is to have at least 50 ports reserved. However, this number will depend on the number of apps you want to run. | Optional | integer | 8290 |
gUnicorn
The apps are served via gUnicorn, which has a master-worker model. The following properties define how many workers and worker threads should be allocated to the app when you start an app.
Property/Description | Set by user | Unit | Default |
---|---|---|---|
unravel.appstore.apps.gunicorn.worker.count The default number of gUnicorn workers to be started for each app. This is calculated based on the number of cores of Unravel core node. The value to be set depends on the number of concurrent requests you want to serve with the app.
| Optional | integer | Default is calculated based on the number of cores of Unravel core node. |
unravel.appstore.apps.<app_id>.gunicorn.worker.count The default number of gUnicorn workers to be started for a specific app. The value to be set depends on the number of concurrent requests you want to serve with the app. This must be set to a higher value if the app is CPU-bound.
| Optional | integer | Defaults to value set for unravel.appstore.apps.gunicorn.worker.count |
unravel.appstore.apps.gunicorn.thread.count The default number of gUnicorn threads to be started per gUnicorn worker for each app. The value to be set depends on the number of concurrent requests you want to serve with the app.
| Optional | integer | Default is based on the number of cores of the Unravel core node. |
unravel.appstore.apps.<app_id>.gunicorn.thread.count The default number of gUnicorn threads to be started per gUnicorn worker for a specific app. The value to be set depends on the number of concurrent requests you want to serve with the app. Set to a higher value if the app is I/O bound. | Optional | integer | Defaults to value set for unravel.appstore.apps.gunicorn.thread.count |
Resource limit
Property/Description | Set by user | Unit | Default |
---|---|---|---|
unravel.appstore.resource_limit.rss.gb Total RSS memory in GB that all running apps can consume. The value must be set to less than the total memory of Unravel core node. NoteIf the sum of the RSS memory limits of all the running apps reaches this value, then another app cannot be started. | Optional | float | The default value is set to half of the system memory of the Unravel core node. |
unravel.appstore.apps.resource_limit.process_count The default maximum limit on the number of processes that can be running for each app. The value set should be less than 100. | Optional | integer | 5 x value set forunravel.appstore.apps.gunicorn.worker.count |
unravel.appstore.apps.<app_id>.resource_limit.process_count The default maximum limit on the number of processes that can be running for a specific app. A higher value is required if the app uses multiprocessing. NoteAfter app installation, this value can be overridden via the Process Countsetting on the Unravel Appstore UI for Resource limit. | Optional | integer | Same as set for unravel.appstore.apps.resource_limit.process_count |
unravel.appstore.apps.resource_limit.sum.thread_count Limit on the sum of the number of threads across processes belonging to an app. The recommended values are:
| Optional | integer | No limit |
unravel.appstore.apps.<app_id>.resource_limit.sum.thread_count Limit on the sum of the number of threads across processes belonging to a specific app. NoteAfter app installation, this value can be overridden via Num of Threads on the Unravel Appstore UI for Resource limit. The recommended minimum value should be 2 x (unravel.appstore.apps.gunicorn.worker.count x unravel.appstore.apps.gunicorn.thread.count) for the apps that do not use multi-processing or multi-threading. | Optional | integer | The same value set for unravel.appstore.apps.resource_limit.sum.thread_count If this property is not set, then the default is: 5 x (unravel.appstore.apps.<app_id>.gunicorn.worker.count x unravel.appstore.apps.<app_id>.gunicorn.thread.count) |
unravel.appstore.apps.resource_limit.sum.rss Limit on the sum of RSS in bytes across processes belonging to an app. This value can be the maximum RSS bytes that can be set for each app without disrupting the processes on the system. | Optional | integer | 1/10 x Total system memory on Unravel core node |
unravel.appstore.apps.<app_id>.resource_limit.sum.rss Limit on the sum of RSS in bytes across processes belonging to a specific app. This value can be the maximum RSS bytes that can be set for a specific app without disrupting the processes on the system. NoteAfter app installation, this value can be overridden via the RSS setting on the Unravel Appstore UI for Resource limit. | Optional | integer | Same value set for unravel.appstore.apps.resource_limit.sum.rss |
unravel.appstore.apps.resource_limit.sum.vms Limit on the sum of VMS in bytes across processes belonging to an app. This value can be the maximum VMS bytes that can be set for each app without disrupting the processes on the system. | Optional | integer | No limit |
>>unravel.appstore.apps.<app_id}.resource_limit.sum.vms Limit on the sum of VMS in bytes across processes belonging to a specific app. NoteAfter app installation, this value can be overridden via the VMS setting on the Unravel Appstore UI for Resource limit. | Optional | float | Same value set for unravel.appstore.apps.resource_limit.sum.vms |
unravel.appstore.apps.resource_limit.sum.memory_percent Limit on the sum of memory percentage across processes belonging to an app. Can be set on a scale of 0-100. This value can be the maximum memory percentage that can be set for each app without disrupting the processes on the system. | Optional | float | No limit |
unravel.appstore.apps.<app_id>.resource_limit.sum.memory_percent Limit on the sum of memory percentage across processes belonging to a specific app. NoteAfter app installation, this value can be overridden via the Memory Percent setting on the Unravel Appstore UI for Resource limit. Can be set on a scale of 0-100. This value can be the maximum memory percent that can be set for a specific app without disrupting the processes on the system. | Optional | float | Same value set forunravel.appstore.apps.resource_limit.sum.memory_percent |
unravel.appstore.apps.resource_limit.sum.cpu_percent Limit on the sum of CPU percentage across processes belonging to an app. Can be set on a scale of 0-100. This value can be the maximum CPU percentage that can be set for each app without disrupting the processes on the system. | Optional | float | No limit |
unravel.appstore.apps.<app_id>.resource_limit.sum.cpu_percent Limit on the sum of memory percentage across processes belonging to a specific app. NoteAfter app installation, this value can be overridden via the CPU Percent setting on the Unravel Appstore UI for Resource limit. Can be set on a scale of 0-100. This value can be the maximum CPU percent that can be set for a specific app without disrupting the processes on the system. | Optional | float | Same value set for unravel.appstore.apps.resource_limit.sum.cpu_percent |
unravel.appstore.apps.resource_limit.sum.cpu_time Limit on the sum of CPU time in seconds across processes belonging to an app. This value can be the maximum CPU time that can be set for each app without disrupting the processes on the system. | Optional | float | No limit |
unravel.appstore.apps.{app_id}.resource_limit.sum.cpu_time Limit on the sum of cpu_time in seconds across processes belonging to a specific app. NoteAfter app installation, this value can be overridden via the CPU Time setting on the Unravel Appstore UI for Resource limit. This value can be the maximum CPU time that can be set for a specific app without disrupting the processes on the system. | Optional | integer | Same value set for unravel.appstore.apps.resource_limit.sum.cpu_time |
unravel.appstore.apps.resource_limit.<aggregation>.<resource_name}> Property to set resource limits and aggregation methods for all the apps.
NoteThis property cannot be overridden from Unravel App Store UI. | Optional | - | No limit |
unravel.appstore.apps.<app_id>.resource_limit.<aggregation>.<resource_name> Property to set resource limits and aggregation methods for a specific app.
NoteThis property cannot be overridden from Unravel App Store UI. | Optional | - | No limit |
Others
Property/Description | Set by user | Unit | Default |
---|---|---|---|
unravel.appstore.apps.healthcheck.interval.seconds The interval at which the Health check process is run for the apps. It is recommended not to set a low value if there are a large number of apps running. The Resource limit violation checks are also part of this Health-check process. You can set a value between 30 to 300 seconds. As a general guideline keep it as 60 seconds for 5 apps. Increase the value if there are more apps or if there are a higher number of processes for any apps. | Optional | seconds | 60 |
unravel.appstore.apps.resource.usage.refresh.rate.seconds The interval at which resource usages will be updated. Do not set to a low value if there are a large number of apps running. You can set a value between 30 to 300 seconds. As a general guideline keep it as 60 seconds for 5 apps. Increase the value if there are more apps or if there are a higher number of processes for any apps. | Optional | seconds | 60 |