locked
Exchange 2010 message sending rate RRS feed

  • Question

  • I'm looking for info on the expected send rate for Exchange 2010. We are sending individual 6kb emails to customers, not the same message and not BCC or CC, these are emails with one address going to that specific customer. When we sent out the most recent batch of about 900+ emails they went at a rate of 4.4 per second. How fast is reasonable and are there any other adjustments I can make that could lower the send rate to 3.4 a second or even more?

    I tested my mtu and set it for persistent 1472 as my best also now disabling rss, chimney and autotuninglevel. I also turned off all logging hoping for an additional reduction.

    netsh interface tcp set global rss=disabled
    netsh interface tcp set global chimney=disabled
    netsh interface tcp set global autotuninglevel=disabled


    Thanks

    Sunday, December 20, 2015 7:56 PM

Answers

  • Hi,

    As per your original question, you want to reduce the rate from 4.4 per second to 3.4 per second which means you'd need to set some throttling to reduce the rate. 

    If you need to increase the rate then perhaps you can look at changing the settings under "Message throttling options on transport servers" here: https://technet.microsoft.com/en-us/library/bb232205(v=exchg.150).aspx. You can increase the number of concurrent deliveries and the below settings:

    • MaxConcurrentMailboxSubmissions
    • MaxOutboundConnections
    • PickupDirectoryMaxMessagesPerMinute

    However, if you're sending bulk email in this way then you're better off separating this from your Exchange setup by configuring another SMTP server to send email through (e.g. windows SMTP). If you can export your Access data into SQL then you could use a bulk email program or write a PowerShell script to send email quicker than Outlook. Using this method you can configure the SMTP server on the connections to use the dedicated SMTP server.

    Thanks.


    Please mark as an answer if this answers your question

    Mark Gossa

    MCSE 2003, MCITP Enterprise Administrator 2008 R2, MCSA 2012 R2, MCTS Exchange 2010, MCTS SQL 2012, MCTS SharePoint 2007, VCP4, VCP5, CCNA

    Blog: http://markgossa.blogspot.com   LinkedIn:

    Posts are provided “AS IS” without warranty of any kind, either expressed or implied.

    Monday, December 21, 2015 10:01 PM
  • Hi,

    There are a number of different places where Exchange throttles messages. It can do this on a mailbox level using Throttling Policies but this already has a MessageRateLimit set to unlimited so this is what you want - no new throttling policy is required and you don't need to make any changes. 

    As per this article, https://technet.microsoft.com/en-us/library/bb232205(v=exchg.150).aspx, message throttling can also be set on the transport service, the receive connector and the send connector. If you are sending emails through Exchange by specifying an SMTP server on the client then you will be sending email through a receive connector then Exchange processes the email using the transport service and eventually sends it to the external users using the send connector. See below screenshots from the above article for settings that have limits that can be increased in an attempt to increase message delivery rate. Please change the relevant settings and see if this improves the performance:


    Thanks.


    Please mark as an answer if this answers your question

    Mark Gossa

    MCSE 2003, MCITP Enterprise Administrator 2008 R2, MCSA 2012 R2, MCTS Exchange 2010, MCTS SQL 2012, MCTS SharePoint 2007, VCP4, VCP5, CCNA

    Blog: http://markgossa.blogspot.com   LinkedIn:

    Posts are provided “AS IS” without warranty of any kind, either expressed or implied.

    Sunday, December 27, 2015 12:26 AM
  • clindell, I'm going to side with Mark here - You don't need a modified throttling policy, you need to change how fast your receive connector will accept the messages you are sending out.  I'm assuming you haven't modified your system from the default, which means that your hub servers' receive connectors MaxInboundConnectionPercentagePerSource setting is still set to the default - which means 2% of that connector's 5000 available MaxInboundConnection connections, or 100 connections.  If your server is sleeping most of the time (as it appears to be, from your statements), you can increase this former setting  - and I suggest you make changes first, to see how it affects your system.  I'd start by setting it to 3%, then 4%, just to see how things work.  If things appear to be working OK and can give you an idea of how your CPU and memory are going to be affected when you increase it further, then try larger increases.

    Will Martin ...
    -join ('77696c6c406d617274696e2d66616d696c6965732e6f7267' -split '(?<=\G.{2})' | ? { $_ } | % { [char][int]"0x$_" })

    Sunday, December 27, 2015 3:59 AM

All replies

  • Hi,

    You can reduce the message rate limit by creating a new throttling policy and specifying the MessageRateLimit parameter as below which sets the limit to 100 messages per minute for example:

    New-ThrottlingPolicy -Name MessageRateLimit -MessageRateLimit 100 -ThrottlingPolicyScope Regular

    For more information, see here: https://technet.microsoft.com/en-us/library/dd351045%28v=exchg.160%29.aspx.

    Once done, you need to assign the throttling policy to the users who are sending the email:

    Set-Mailbox User1 -ThrottlingPolicy MessageRateLimit

    Thanks.


    Please mark as an answer if this answers your question

    Mark Gossa

    MCSE 2003, MCITP Enterprise Administrator 2008 R2, MCSA 2012 R2, MCTS Exchange 2010, MCTS SQL 2012, MCTS SharePoint 2007, VCP4, VCP5, CCNA

    Blog: http://markgossa.blogspot.com   LinkedIn:

    Posts are provided “AS IS” without warranty of any kind, either expressed or implied.

    • Proposed as answer by Roger Lu Monday, December 21, 2015 9:39 AM
    Monday, December 21, 2015 1:24 AM
  • Okay, sounds like we may be close, what was the policy, how do I find the exisiting number before I change it so if necessary I can change it back? I'd also prefer to apply this to all, not just a few, we only have 15 users.

    I ran "Get-ThrottlingPolicy | Format-List" these are my results. From the searching I found I couldn't really find much on send throttling as much as I saw for incoming.

    I did read this "Note that no value (or $null) means the settings is unthrottled" and it seems to indicate based on what I found that we are already operating wide open yet still only sending at a rate of one email every 4.4 seconds which seems slow. My MessageRateLimit has no value as indicated on the bottom.

    IsDefault                                 : True
    AnonymousMaxConcurrency                   : 1
    AnonymousPercentTimeInAD                  :
    AnonymousPercentTimeInCAS                 :
    AnonymousPercentTimeInMailboxRPC          :
    EASMaxConcurrency                         : 10
    EASPercentTimeInAD                        :
    EASPercentTimeInCAS                       :
    EASPercentTimeInMailboxRPC                :
    EASMaxDevices                             : 10
    EASMaxDeviceDeletesPerMonth               :
    EWSMaxConcurrency                         : 10
    EWSPercentTimeInAD                        : 50
    EWSPercentTimeInCAS                       : 90
    EWSPercentTimeInMailboxRPC                : 60
    EWSMaxSubscriptions                       : 5000
    EWSFastSearchTimeoutInSeconds             : 60
    EWSFindCountLimit                         : 1000
    IMAPMaxConcurrency                        :
    IMAPPercentTimeInAD                       :
    IMAPPercentTimeInCAS                      :
    IMAPPercentTimeInMailboxRPC               :
    OWAMaxConcurrency                         : 5
    OWAPercentTimeInAD                        : 30
    OWAPercentTimeInCAS                       : 150
    OWAPercentTimeInMailboxRPC                : 150
    POPMaxConcurrency                         : 20
    POPPercentTimeInAD                        :
    POPPercentTimeInCAS                       :
    POPPercentTimeInMailboxRPC                :
    PowerShellMaxConcurrency                  : 18
    PowerShellMaxTenantConcurrency            :
    PowerShellMaxCmdlets                      :
    PowerShellMaxCmdletsTimePeriod            :
    ExchangeMaxCmdlets                        :
    PowerShellMaxCmdletQueueDepth             :
    PowerShellMaxDestructiveCmdlets           :
    PowerShellMaxDestructiveCmdletsTimePeriod :
    RCAMaxConcurrency                         : 20
    RCAPercentTimeInAD                        : 5
    RCAPercentTimeInCAS                       : 205
    RCAPercentTimeInMailboxRPC                : 200
    CPAMaxConcurrency                         : 20
    CPAPercentTimeInCAS                       : 205
    CPAPercentTimeInMailboxRPC                : 200
    MessageRateLimit                          :
    RecipientRateLimit                        :
    ForwardeeLimit                            :
    CPUStartPercent                           : 75


    Thanks


    • Edited by clindell Monday, December 21, 2015 5:38 AM more info
    Monday, December 21, 2015 2:13 AM
  • Hi,

    Generally speaking, exchange server using default throttling policy and the message rate value was set to null. In your scenario, since the value of Message rate was set to null, after you create another new throttling policy and want to revert to default, just set it key to null should be fine.

    You can access to the link below for more details about Client Throttling Policies:

    https://technet.microsoft.com/en-us/library/dd297964(v=exchg.141).aspx#defaultnondefault


    Please remember to mark the replies as answers if they help, and unmark the answers if they provide no help. If you have feedback for TechNet Support, contact tnmff@microsoft.com.

    Monday, December 21, 2015 9:36 AM
  • If set to null there should be no restrictions and the message sending rate would be unlimited already correct?

    Please explain why a new throttling policy would make any changes or improve the default policy if it is already set to null which seems to be unlimited already and therefore wouldn't change anything based on my understanding.

    In any ThrottlingPolicy what determines the sending rate from MS Outlook in a domain as the default client with a local Exchange server and what I think may be auto configured when Outlook was initially setup. Maybe I can ask the question of how fast can Exchange send a single 6kb message or 100 or 1000 of them each being a unique email to a unique external recipient?


    Thanks



    • Edited by clindell Monday, December 21, 2015 7:51 PM additional info
    Monday, December 21, 2015 4:39 PM
  • Hi,

    You can reduce the message rate limit by creating a new throttling policy and specifying the MessageRateLimit parameter as below which sets the limit to 100 messages per minute for example:

    New-ThrottlingPolicy -Name MessageRateLimit -MessageRateLimit 100 -ThrottlingPolicyScope Regular

    For more information, see here: https://technet.microsoft.com/en-us/library/dd351045%28v=exchg.160%29.aspx.

    Once done, you need to assign the throttling policy to the users who are sending the email:

    Set-Mailbox User1 -ThrottlingPolicy MessageRateLimit

    Thanks.


    Please mark as an answer if this answers your question

    Mark Gossa

    MCSE 2003, MCITP Enterprise Administrator 2008 R2, MCSA 2012 R2, MCTS Exchange 2010, MCTS SQL 2012, MCTS SharePoint 2007, VCP4, VCP5, CCNA

    Blog: http://markgossa.blogspot.com   LinkedIn:

    Posts are provided “AS IS” without warranty of any kind, either expressed or implied.

    Hi,

    Your users will be using the default throttling policy which has no limit set on the MessageRateLimit. 

    If you follow the above instructions, you can create a new throttling policy where the MessageRateLimit is set to 100 or so then assign the policy to your senders. This will override the default throttling policy so those users will only be able to send 100 emails per minute. 

    "how fast can Exchange send a single 6kb message or 100 or 1000 of them each being a unique email to a unique external recipient" - this will depend on many factors such as the number of Exchange mailbox servers, number of CAS servers, storage speed, network speed etc. 

    Thanks.


    Please mark as an answer if this answers your question

    Mark Gossa

    MCSE 2003, MCITP Enterprise Administrator 2008 R2, MCSA 2012 R2, MCTS Exchange 2010, MCTS SQL 2012, MCTS SharePoint 2007, VCP4, VCP5, CCNA

    Blog: http://markgossa.blogspot.com   LinkedIn:

    Posts are provided “AS IS” without warranty of any kind, either expressed or implied.

    Monday, December 21, 2015 8:43 PM
  • YES, users will be using the default throttling policy which has no limit set on the MessageRateLimit this is exactly what I want no limit!

    I don't want to set a limit, I'm wondering if you understood my request as what you are suggesting seems to set a limit rather than allowing the maximum possible send rate.

    This is a single Exchange server running from SBS2011, no other connected servers and an internal SMTP connector to connect to MS Access which is what actually sends the email via the domain user who is logged in.


    Thanks

    Monday, December 21, 2015 9:10 PM
  • Hi,

    As per your original question, you want to reduce the rate from 4.4 per second to 3.4 per second which means you'd need to set some throttling to reduce the rate. 

    If you need to increase the rate then perhaps you can look at changing the settings under "Message throttling options on transport servers" here: https://technet.microsoft.com/en-us/library/bb232205(v=exchg.150).aspx. You can increase the number of concurrent deliveries and the below settings:

    • MaxConcurrentMailboxSubmissions
    • MaxOutboundConnections
    • PickupDirectoryMaxMessagesPerMinute

    However, if you're sending bulk email in this way then you're better off separating this from your Exchange setup by configuring another SMTP server to send email through (e.g. windows SMTP). If you can export your Access data into SQL then you could use a bulk email program or write a PowerShell script to send email quicker than Outlook. Using this method you can configure the SMTP server on the connections to use the dedicated SMTP server.

    Thanks.


    Please mark as an answer if this answers your question

    Mark Gossa

    MCSE 2003, MCITP Enterprise Administrator 2008 R2, MCSA 2012 R2, MCTS Exchange 2010, MCTS SQL 2012, MCTS SharePoint 2007, VCP4, VCP5, CCNA

    Blog: http://markgossa.blogspot.com   LinkedIn:

    Posts are provided “AS IS” without warranty of any kind, either expressed or implied.

    Monday, December 21, 2015 10:01 PM
  • Thanks Mark,

    I believe you are doing your best to answer my question, however I'm not sure if you can see some confusion over what has been posted?

    If a MessageRateLimit is already set with no limit how could anything specified here cause an outgoing message to go any faster? After all if there are NO LIMITS so anything else using logic would be slower? Creating a new policy and specifying any numerical value would be less than the exisiting policy of unlimited based on logic so maybe you can explain this?

    We had another SMTP server running on Linux, however it wasn't a legitimate email server and the messages were not authenticated by some domains and not all email was reaching our customers. By using Exchange since it matches our cert all email is accepted by all domains after validating lookups.

    The link you included does nothing for a send connector other than setting a timeout.

    Message throttling on Send connectors

    The following table shows the message throttling option that's available on Send connectors. You need to use the Exchange Management Shell to configure this option.

    Message throttling option available on Send connectors

    Source Parameter Default value Description

    Set-SendConnector

    ConnectionInactivityTimeOut

    10 minutes

    This parameter specifies the maximum time that an open SMTP connection with a destination messaging server can remain idle before the connection is closed.


    Thanks


    • Edited by clindell Monday, December 21, 2015 11:51 PM more info
    Monday, December 21, 2015 11:48 PM
  • Hi,

    The section "Message throttling options on transport servers" provides some settings that can be modified on the transport server to increase the limits. 

    As for sending from the Linux server, the public IP needs to have a reverse DNS record and be included on the SPF record. This way, your email should not be blocked by recipients. For more information see below:

    Thanks.


    Please mark as an answer if this answers your question

    Mark Gossa

    MCSE 2003, MCITP Enterprise Administrator 2008 R2, MCSA 2012 R2, MCTS Exchange 2010, MCTS SQL 2012, MCTS SharePoint 2007, VCP4, VCP5, CCNA

    Blog: http://markgossa.blogspot.com   LinkedIn:

    Posts are provided “AS IS” without warranty of any kind, either expressed or implied.

    Tuesday, December 22, 2015 5:18 PM
  • Mark, with all the info you suggested and pointed me to there has been no explanation of MessageRateLimit.

    If a MessageRateLimit is already set with no limit how could anything specified here cause an outgoing message to go any faster? After all if there are NO LIMITS so anything else using logic would be slower? Creating a new policy and specifying any numerical value would be less than the exisiting policy of unlimited based on logic so maybe you can explain this?

    I'm not going to run a 2nd email server


    Thanks

    Tuesday, December 22, 2015 5:56 PM
  • Hi,

    There are a number of different places where Exchange throttles messages. It can do this on a mailbox level using Throttling Policies but this already has a MessageRateLimit set to unlimited so this is what you want - no new throttling policy is required and you don't need to make any changes. 

    As per this article, https://technet.microsoft.com/en-us/library/bb232205(v=exchg.150).aspx, message throttling can also be set on the transport service, the receive connector and the send connector. If you are sending emails through Exchange by specifying an SMTP server on the client then you will be sending email through a receive connector then Exchange processes the email using the transport service and eventually sends it to the external users using the send connector. See below screenshots from the above article for settings that have limits that can be increased in an attempt to increase message delivery rate. Please change the relevant settings and see if this improves the performance:


    Thanks.


    Please mark as an answer if this answers your question

    Mark Gossa

    MCSE 2003, MCITP Enterprise Administrator 2008 R2, MCSA 2012 R2, MCTS Exchange 2010, MCTS SQL 2012, MCTS SharePoint 2007, VCP4, VCP5, CCNA

    Blog: http://markgossa.blogspot.com   LinkedIn:

    Posts are provided “AS IS” without warranty of any kind, either expressed or implied.

    Sunday, December 27, 2015 12:26 AM
  • clindell, I'm going to side with Mark here - You don't need a modified throttling policy, you need to change how fast your receive connector will accept the messages you are sending out.  I'm assuming you haven't modified your system from the default, which means that your hub servers' receive connectors MaxInboundConnectionPercentagePerSource setting is still set to the default - which means 2% of that connector's 5000 available MaxInboundConnection connections, or 100 connections.  If your server is sleeping most of the time (as it appears to be, from your statements), you can increase this former setting  - and I suggest you make changes first, to see how it affects your system.  I'd start by setting it to 3%, then 4%, just to see how things work.  If things appear to be working OK and can give you an idea of how your CPU and memory are going to be affected when you increase it further, then try larger increases.

    Will Martin ...
    -join ('77696c6c406d617274696e2d66616d696c6965732e6f7267' -split '(?<=\G.{2})' | ? { $_ } | % { [char][int]"0x$_" })

    Sunday, December 27, 2015 3:59 AM