Throttling
Concepts
GreenArrow Engine can throttle delivery attempts both for groups of IP addresses via its Throttle Templates, and on a per-sending-IP-address basis via Throttle Overrides. Each “Throttle Template” or “Throttle Override” entry is referred to as a “Throttle Rule”.
The throttle template is applied only to IP address VirtualMTAs. Relay server VirtualMTAs have their own, independent throttling settings.
Each Throttle Rule applies to a specific recipient domain or collection of recipient domains. For example, one Throttle Rule could apply to gmail.com
, while another applies to yahoo.com
and ymail.com
. Within each Throttle Rule, you can define the following:
See GreenArrow Cluster for information on how to coordinate throttles between multiple GreenArrow instances.
Domains
The domain(s) that this rule should apply to, listed one per line.
Domains can be defined with the following wildcards:
- A domain that is prefixed with
[*.]
will match the given domain and all subdomains. For example,[*.]example.com
will matchexample.com
,subdomain.example.com
, andwww.subdomain.example.com
. - A domain that is prefixed with
*.
will match only subdomains. For example,*.example.com
will matchsubdomain.example.com
andwww.subdomain.example.com
, but will not matchexample.com
.
Domains can also be MX hostnames, specified like mx:mx1.example.com
. When
specified as an MX, throttling is performed based upon the resolved MX
hostnames of the recipient’s domain. If any resolved MX record matches an
mx:___
entry, that entry’s throttling configuration will be used. This search
is performed in MX priority order.
Settings to use for a domain are checked in this order. The first match is used:
- An exact IP name match, exact match of recipient domain.
- An exact IP name match, wildcard match of recipient domain.
- An exact IP name match, exact match of MX domain.
- An exact IP name match, wildcard match of MX domain.
- The
*
IP record, exact match of recipient domain. - The
*
IP record, wildcard match of recipient domain. - The
*
IP record, exact match of MX domain. - The
*
IP record, wildcard match of MX domain.
For example, when looking up delivery to foo.example.com
(with an mx of mx1.example.com
) domain strings are searched for in the following order:
foo.example.com
[*.]foo.example.com
*.example.com
[*.]example.com
*.com
[*.]com
mx:mx1.example.com
mx:*.example.com
mx:[*.]example.com
mx:*.com
mx:[*.]com
All name or domain matches are case-insensitive.
Max Concurrent Connections
The maximum number of concurrent SMTP connections to make when delivering mail
to the listed domain(s). This is applied on a per-sending-IP addresses basis.
For example, if a Throttle Template Rule specifies a maximum of 20
concurrent
connections, and there are two sending IP addresses that the rule is applied
to, then a maximum of 40
total concurrent connections will be made at any
given time, with a maximum of 20
from each IP address.
Max Messages per Hour
The maximum number of messages to attempt to deliver per hour to the listed
domain(s). This is applied on a per-sending-IP addresses basis. For example, if
a Throttle Template Rule specifies a maximum of 10,000
messages per hour, and
there are two sending IP addresses that the rule is applied to, then a maximum
of 20,000
total delivery attempts will occur per hour, with a maximum of
10,000
delivery attempts per hour for each IP address. Leaving this field
blank causes there to be no limit.
Throttle Program
The Throttle Program to use.
Each time that GreenArrow Engine attempts to deliver a message, it first checks the configured Throttle Rules and applies the most specific matching rule. The order of precedence is:
- A Throttle Override rule that matches the sending IP address and recipient’s domain name
- A Throttle Template rule that matches the recipient’s domain name
- The Default Throttle Override of the sending IP address
- The Default Throttle Template Rule
Updating Throttle Template Settings
This section describes how to update throttle settings via GreenArrow Engine’s web interface. To update these settings by running SQL queries, see the Updating Throttle Settings in SQL page.
- Log into GreenArrow Engine’s web interface.
- Navigate to
Configure
=>Virtual MTAs
:
- Click the
Throttling Configuration
button:
- Click on the desired Throttling Template’s
Edit
button:
- To edit an existing rule, find it in the list, and post the desired updates:
- To create a new rule, scroll down until you see the
Add a rule
button towards the bottom of the page, click the button, and fill in the desired values:
Updating Throttle Overrides for Sending IP Addresses
This section describes how to update throttle settings via GreenArrow Engine’s web interface. To update these settings by running SQL queries, see the Updating Throttle Settings in SQL page. To update these settings via a command line interface, see the Updating Throttle Settings on the Command Line page.
- Log into GreenArrow Engine’s web interface.
- Navigate to
Configure
=>Virtual MTAs
:
- Scroll down to the IP address that you want to update, and click its
Edit
button:
- To override a Throttle Template rule, find it in the list, and click the
Override
button next to it. After clicking this button, a form appears which contains the fields described in theConcepts
section of this document:
- To edit an existing Throttle Override Rule, find it in the
Throttling Rules
list and update it.
- To create a new Throttle Override Rule that there isn’t a corresponding Throttle Template entry for, click the
Add a rule
button: