这一章咱们来讲讲Exchange中对邮件的QOS设置,这些设置平常也许大多数场景中不会涉及到,因为需要大批量发送邮件的场景里都会用到邮件中间件(发送大量宣传邮件或者报表)。但是一旦让咱们碰上了,咱们也得知道从哪下手去调整这些设置不是,关于这个话题Technet上已经写得非常好了,咱这里也是做个总结和搬运。

    在面对大批量邮件流量的时候,如何保证邮件流的处理井然有序,避免引起邮件阻塞,同时保护Exchange服务器防止其被过度使用,这是一个及其值得注意的问题。Exchange 2013当中引入了“邮件限制”(Message Throttling)这么一套算法来避免客户端无意或有意地造成 Exchange 服务器上的系统资源耗尽。当然,邮件限制设置值针对经过Exchange 2013传输系统的SMTP邮件流。

    Exchange2013中的邮件限制算法比较复杂,它基于Exchange 2010 SP1中引入的QOS算法,通过邮件大小、收件人数量、传输频率来计算邮件的邮件的平均传递成本。三个值都高那么平均传递成本也会高,这里的“高”主要是指超过500个收件人或者是体积大于1MB的邮件。Exchange的限制服务会监视这些开销,并且为每个用户设定一个预期的开销值,一旦用户超过这个预期值,他的邮件就会被置为低优先级,就会耗费更多的时间去传递。(在发送邮件时,这里的优先级会覆盖任何用户手动设置的优先级。)Exchange的限制服务还会在邮箱数据库层面汇总RPC连接的平均延迟和每秒请求数,以获得一个可被量化的健康值,这个健康值就可以反映某个数据库当前的负载情况。这个值最终会影响此数据库中所有用户的预期开销。

    这里还是说的比较笼统,而且都是比较不可控的Exchange内部原理性的东西,如果要深入了解以上说的这段话,请参考:邮件短信和邮件流限制https://technet.microsoft.com/zh-cn/library/bb232205(v=exchg.150).aspx#Cost

    你可以在以下设置里调整邮件限制选项:

  1. 传输服务:Set-TransportService与Set-MailboxTransportService命令。一般情况下,管理员只需要针对外部流量进行限制,或者针对某一台或某几台特别忙的传输服务器进行限制设置。

  2. 接收连接器:Set-ReceiveConnector命令,同样的,需要注意这个设置是用来限制从组织外部进来的邮件流量。

  3. 发送连接器:Set-SendConnector命令

    注意,默认的Exchange限制设置一般能满足大多数场景的需求,除非是性能监控上已经暴露出某些传输服务器、边缘服务器一直处于一个繁忙的负载状态。比如,在高峰时段有大量队列累计,且在高峰时段过了之后该队列依旧没有减少。这就有可能反应出该服务器处理能力已经跟不上,或者是其他的一些条件引起的,这些条件你可以通过调整参数来解决掉。下表汇总了你可以用来控制传输限制的不同参数。

命令集

参数

作用

Set-TransportService或Set-MailboxTransportService

MaxConcurrentMailboxDeliveries

此参数指定将邮件传递给邮箱时,传输服务可以打开的最大传递线程数。默认值为20,参数范围为1-256。微软特别表示:如非必要请在客户支持的建议下修改该值。

Set-TransportService 或

Set-MailboxTransportService

MaxConcurrentMailboxSubmissions

此参数指定从邮箱发送邮件时,传输服务可以打开的最大提交线程数。默认为20,参数范围为1-256。

Set-TransportService

MaxConnectionRatePerMinute

此参数指定允许入站连接对传输服务打开连接的最大速率。默认值为1200。

Set-TransportService 或

传输服务器属性

MaxOutboundConnections

此参数指定可以同时打开的最大出站连接数。如果输入值 unlimited,则不限制出站连接数。此参数的值必须大于或等于 MaxPerDomainOutboundConnections 参数的值。默认为1000

还可使用 “服务器” > “服务器” > “属性” > “传输限制” > “出站连接限制” 中的 EAC 配置该值。

Set-TransportService 或

传输服务器属性

MaxPerDomainOutboundConnections

此参数指定任何一个域的最大并发连接数。如果输入值 unlimited,则不限制每个域的出站连接数。默认为20

还可使用 “服务器” > “服务器” > “属性” > “传输限制” > “出站连接限制” 中的 EAC 配置该值。

Set-TransportService

PickupDirectoryMaxMessagesPerMinute

此参数指定分拣目录和重播目录每分钟处理的最大邮件数。每个目录都能够以此参数指定的速率独立处理邮件文件。默认为100

Set-ReceiveConnector

ConnectionInactivityTimeOut

此参数指定在关闭连接之前,已打开的、与源邮件传递服务器的 SMTP 连接可以保持空闲的最长时间。该参数的值必须小于 ConnectionTimeout 参数指定的值。

默认值:在邮箱服务器上的传输服务 5 分钟

在客户端访问服务器上的前端传输服务 5 分钟。

在边缘传输服务器上 1 分钟。

Set-ReceiveConnector

ConnectionTimeOut

此参数指定与源邮件传递服务器的 SMTP 连接可以保持打开状态的最长时间(即使源邮件传递服务器正在传输数据)。该参数的值必须大于 ConnectionInactivityTimeout 参数指定的值。

默认:在邮箱服务器上的传输服务 10 分钟

在客户端访问服务器上的前端传输服务 10 分钟。

在边缘传输服务器上 5 分钟。

Set-ReceiveConnector

MaxInboundConnection

此参数指定此接收连接器允许同时建立的最大入站 SMTP 连接数。

默认为5000

Set-ReceiveConnector

MaxInboundConnectionPercentagePerSource

此参数指定接收连接器允许同时从单个源邮件传递服务器建立的最大 SMTP 连接数。该值以接收连接器上的可用剩余连接百分比表示。接收连接器允许的最大连接数通过 MaxInboundConnection 参数定义。

默认:

100 % 在邮箱服务器上的传输服务中的默认接收连接器

2 % 在邮箱服务器上的传输服务器、客户端访问服务器上的前端传输服务中的其他接收连接器。

Set-ReceiveConnector

MaxInboundConnectionPerSource

此参数指定接收连接器允许同时从单个源邮件传递服务器建立的最大 SMTP 连接数。默认值:

unlimited 在邮箱服务器上的传输服务中的默认接收连接器(受MaxInboundConnection限制)

20 在邮箱服务器上的传输服务器、客户端访问服务器上的前端传输服务中的其他接收连接器。

Set-ReceiveConnector

MaxProtocolErrors

此参数指定在接收连接器断开与源邮件传递服务器的连接之前,接收连接器允许出现的最大 SMTP 协议错误数。默认为5次。

Set-ReceiveConnector

TarpitInterval

此参数指定缓送技术中使用的延迟。缓送技术是针对表明存在帐户搜集***或其他不受欢迎的邮件的特定 SMTP 通信模式,人为延迟 SMTP 响应的一种方法。帐户搜集***尝试从特定组织收集有效的电子邮件地址,作为商业垃圾邮件的目标。

TarpitInterval 参数指定的延迟只适用于匿名连接。

默认为5 秒。

Set-SendConnector

ConnectionInactivityTimeOut

此参数指定在关闭连接之前,已打开的、与目标邮件传递服务器的 SMTP 连接可以保持空闲的最长时间。

默认为10分钟


    最后还要一提的是,在 Exchange 2013 中,每个邮箱都具有 ThrottlingPolicy 设置。此设置的默认值为空 ($null)。可以创建好限制策略,然后在 Set-Mailbox cmdlet 上使用 ThrottlingPolicy 参数为需要应用的用户邮箱配置限制策略。一般不建议进行限制策略的修改,除非你非常在意这些用户对以下功能的资源占用,这里的设置主要是用户可通过特定连接或在特定时间内对 Exchange 执行的活动数量,这些设置会影响用户的预期开销值:

  • · Exchange ActiveSync

  • · Exchange Web 服务 (Exchange Web Services)

  • · Outlook Web App

  • · 统一消息

  • · IMAP4

  • · POP3

  • · Outlook 客户端连接(MAPI 或 RPC 连接)

  • · 邮件流设置

  • · PowerShell 命令

  • · CPU 使用情况

    主要涉及到的命令就是Get/REMOVE/NEW/SET-ThrottlingPolicy,然后绑定到用户邮箱即可。

OK,邮件限制就聊到这里,下一章咱们聊聊另一个Exchange应对高峰流量时的自我保护措施-反压。