Memory Utilization
This document contains an estimate of memory utilization by several components of GreenArrow. This is not a complete list of those components and does not represent all memory used by GreenArrow. We will expand this page in the future to cover other parts of the application.
The estimates found below are bare minimums and may increase as the software grows or changes. We strongly recommend that you have a healthy margin of available resources for this growth.
This document should be used as a guide to calculate additional memory requirements needed when changing a component’s relevant configuration directives.
Passenger Web Processes
GreenArrow’s web process memory utilization is mostly determined by the following configuration directives:
These processes should use less than 200MB each when reviewed in passenger-memory-stats
.
Thus, estimated memory utilization of the web processes is:
200MB * passenger_max_application_instances
Studio Worker Processes
GreenArrow’s worker process memory utilization is determined by the following configuration directives:
- studio_message_generation_processes_per_campaign
- studio_workers_shared
- studio_workers_campaigns
- studio_workers_general
- studio_workers_imports
- studio_workers_transactional
Each worker process can use 100MB of memory, plus an additional 100MB per concurrently running campaign.
This yields an estimated memory utilization of the worker processes of:
200MB * ( studio_workers_shared + studio_workers_campaigns ) +
( 50MB + ( 25MB * studio_message_generation_processes_per_campaign ) ) * ( studio_workers_general + studio_workers_imports + studio_workers_transactional )
GreenArrow will run the above calculation for you if you run the greenarrow_config show_dynamic_defaults
command and review the “Studio worker processes” line’s “As Configured” value:
Estimated memory requirements Default As Configured
--------------------------------------------------------------------------------------------------
Passenger web processes 800 MB 600 MB
Studio worker processes (/service/hvmail-studio-worker) 1300 MB 2500 MB
Engine-only
This estimate for Studio worker process memory does not apply to Engine-only configurations, as these workers do not run on those installations. If you’re running an Engine-only install, you can verify that the Studio worker processes are down by running:
hvmail_init status | grep hvmail-studio-worker
If the service is running when it should not, see the installation guide for information on shutting it off.