且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

解决Exchange 2010邮件接收问题 事件ID1500X

更新时间:2022-08-22 09:36:54

在部署Exchange的时候,我们会去非常详细和细致的计算邮箱数据库的存储空间,比如用一些公式来进行评估,然后设置一个合理的邮箱数据库磁盘空间。因为邮箱数据库所在磁盘的空间如果低于1GB,那么Exchange便会停止接收和发送邮件,此时将严重的影响邮件系统用户的体验。所以对于磁盘空间的设计和考虑我们往往非常的小心,但有的时候我们发现即便邮箱数据库的可用空间还有非常多,但也会出现无法接收邮件的问题,并且往往不太好判断是什么问题,由于事件日志并没有详细的、明确的指出原因,或者说事件日志并没有说明磁盘空间不足的严重性,从而误导我们对问题的诊断。
下面我们来看一个非常有意思的问题:Exchange无法接收来自外部的邮件,并且这是一个突发现象,在出现问题之前并没有任何的征兆,我们也没有进行任何的修改,在事件日志中也没有较为明显的记录。其实这是一个非常初级的问题,那就是在我们进行邮箱数据库存储设计的时候考虑不周,或者没有将一些隐含的空间占用包括到我们的设计中。往往这个问题产生的事件日志容易被我们忽略,那就是C盘可用空间容量。
在了解原因之前,如果我们进行SMTP日志的分析,将可能会看到以下记录:
The server returned status code 452 - Insufficient system storage. The server response was: 4.3.1 Insufficient
这条记录造成的非常明显的现象是:
无法接收外部邮件
解决方法其实也非常的简单,那就是释放C盘空间,保证C盘空间至少满足
(100 * (硬盘大小 - 2GB) / 硬盘大小 )*0.05
举例:C盘总容量50G
至少需要:50*(100-(100 * (50 - 2GB) / 50)-4)= 4GB
导致这个问题的出现是由于Exchange所在的系统盘空间不足,Exchange进行的自动反压,反压是存在于 Microsoft Exchange Server 2010 集线器传输服务器和边缘传输服务器上的 Microsoft Exchange 传输服务的一种系统资源监视功能。Exchange 传输可以检测重要资源(例如可用硬盘空间和内存)何时具有压力,并采取操作以尝试阻止服务不可用性。
反压可以防止过多地使用系统资源,并且 Exchange 会尝试传递现有邮件。当系统资源使用率恢复到正常级别后,Exchange 服务器就可以逐渐恢复正常运行。
在 Exchange Server 2007 中,当集线器传输服务器或边缘传输服务器具有资源压力时,它会拒绝传入连接。在 Exchange 2010 中,会接受传入连接,但是会以更慢的速度接受或拒绝通过这些连接传入的邮件。SMTP 主机尝试连接到处于反压下的集线器传输服务器或边缘传输服务器时,连接会成功,但是该主机何时发出 MAIL FROM 命令来提交邮件,则取决于具有压力的资源,Exchange 可能会延迟确认 MAIL FROM 命令或拒绝该命令。
作为反压功能的一部分,将监视下列系统资源:
  • 存储邮件队列数据库的硬盘中的可用空间。
  • 存储邮件队列数据库事务日志的硬盘中的可用空间。
  • 内存中的未提交邮件队列数据库事务数目。
  • EdgeTransport.exe 进程使用的内存大小。
  • 所有其他进程使用的内存大小。
对于集线器传输服务器或边缘传输服务器中的每个受监视系统资源,可应用下列三种资源使用率级别:
  • 正常 资源的使用未过度。服务器可以接受新的连接和邮件。
  • 中等 资源的使用稍微过度。此时将以有限的方式对服务器应用反压功能。来自权威域中的发件人的邮件可以流动。但是,根据具有压力的特定资源,服务器会使用缓送技术延迟服务器响应或拒绝来自其他源的传入 MAIL FROM 命令。
  • 高 资源的使用严重过度。此时将充分应用反压功能。所有邮件都停止流动,服务器将拒绝一切新传入的 MAIL FROM 命令。
默认情况下,邮件队列数据库存储在 C:\Program Files\Microsoft\Exchange Server\V14\TransportRoles\data\Queue 中。Exchange 监视该位置的硬盘空间使用率。可使用以下公式计算高级别的硬盘空间使用率:
100 * (硬盘大小 - 固定常量) / 硬盘大小
固定常量的值为 500 MB。
该公式的结果用所用硬盘驱动器空间占全部硬盘空间百分比的形式表示。该公式的结果总是向下舍入为最接近的整数。默认情况下,中等级别硬盘使用率比高级别硬盘驱动器使用率低 2%。默认情况下,正常级别硬盘使用率比高级别硬盘使用率低 4%。
默认情况下,邮件队列数据库事务日志存储在 C:\Program Files\Microsoft\ExchangeServer\V14\TransportRoles\data\Queue 中。Exchange 监视该位置的硬盘空间使用率。EdgeTransport.exe.config 文件包含一个 DatabaseCheckPointDepthMax 参数,其默认值为 512 MB。此参数控制硬盘上允许存在的所有未提交的事务日志的总大小。在计算硬盘使用率的公式中,将使用此参数。
我们可以使用以下公式计算高级别的硬盘使用率:
100 *(硬盘大小 - Max(5 GB, 3*DatabaseCheckPointDepthMax))/硬盘大小
该公式的结果总是向下舍入为最接近的整数。默认情况下,中等级别硬盘使用率比高级别硬盘驱动器使用率低 2%。正常级别硬盘驱动器使用率比高级别硬盘使用率低 4%。
下表汇总了磁盘资源具有压力时 Exchange 传输执行的操作。
具有压力的资源
使用率级别
执行的操作
邮件队列数据库的硬盘空间
中等
    • 拒绝来自非 Exchange 服务器的传入邮件
    • 拒绝拾取目录和重播目录中的邮件提交
邮件队列数据库的硬盘空间
    • 拒绝来自其他 Exchange 服务器的传入邮件
    • 拒绝来自邮箱服务器上的存储驱动程序中的邮件提交(仅适用于集线器传输服务器)
    • 拒绝来自非 Exchange 服务器的传入邮件
    • 拒绝拾取目录和重播目录中的邮件提交
邮件队列数据库事务日志的硬盘空间
中等
    • 拒绝来自非 Exchange 服务器的传入邮件
    • 拒绝拾取目录和重播目录中的邮件提交
邮件队列数据库事务日志的硬盘空间
    • 拒绝来自其他 Exchange 服务器的传入邮件
    • 拒绝来自邮箱服务器上的存储驱动程序中的邮件提交(仅适用于集线器传输服务器)
    • 拒绝来自非 Exchange 服务器的传入邮件
    • 拒绝拾取目录和重播目录中的邮件提交
反压功能的所有配置选项都位于 EdgeTransport.exe.config 应用程序配置文件中。
Exchange 2010 中特定反压事件生成的事件日志条目:
  • 因任何资源使用率级别的增加而生成的事件日志条目 
    事件类型:错误 
    事件来源:MSExchangeTransport 
    事件类别:资源管理器 
    事件 ID: 15004 
    说明:资源压力已从先前使用率级别增加到当前使用率级别。
  • 因任何资源使用率级别降低而生成的事件日志条目 
    事件类型:信息 
    事件源:MSExchangeTransport 
    事件类别:资源管理器 
    事件 ID: 15005 
    说明:资源压力已从先前使用率级别降低到当前使用率级别。
  • 非常低的可用磁盘空间的事件日志条目 
    事件类型:错误 
    事件源:MSExchangeTransport 
    事件类别:资源管理器 
    事件 ID: 15006 
    说明:Microsoft Exchange 传输服务拒绝邮件,因为可用磁盘空间低于所配置的阀值。可能需要执行管理操作以释放磁盘空间,以便服务可以继续进行操作。
当我们无法接收外部邮件时,如果在事件日志中查看日志出现了1500X记录的时候,我们就应该关心C盘可用空间是否足够了,然而这往往是较为容易被忽略。这个问题并不是新的东西,但当我们遇到的时候,可以作为一个checkpoint,通过多个方面,不同方向来快速诊断Exchange系统故障。




 本文转自 reinxu 51CTO博客,原文链接:http://blog.51cto.com/reinember/1123756,如需转载请自行联系原作者