冻结默认属性

以下是冻结属性的名称及其默认值。 这些属性可以在 BizTalk 设置 仪表板中配置,或在 BizTalk 配置文件(BTSNTSvc.exe.config 或 BTSNTSvc64.exe.config) )中配置为 XML。 将首先应用 BizTalk 配置文件中的值, 然后,应用 BizTalk 设置仪表板设置。 所有包含业务流程的主机实例启动后,将读取冻结属性。

重要

并非所有业务流程设置都公开在 BizTalk 设置仪表板中。 对于这些设置,将使用 BizTalk 配置文件(BTSNTSvc.exe.config 或 BTSNTSvc64.exe.config)。 使用 BizTalk 配置文件时,许多属性并未列出, 但这些属性及其默认值仍然适用,即使并未在配置文件中明确指定它们。

若要更改默认值,可以使用 BizTalk 设置仪表板或将其显式添加到 BizTalk 配置文件。 有关详细信息,请参阅使用 设置 仪表板BizTalk Server优化和BTSNTSvc.exe.config 文件

脱水

  • MaxThreshold = 1800

  • MinThreshold = 1

  • ConstantThreshold = -1

    VirtualMemoryThrottlingCriteria

  • OptimalUsage = 900

  • MaximalUsage = 1300

  • IsActive = true

    PrivateMemoryThrottlingCriteria

  • OptimalUsage = 50

  • MaximalUsage = 350

  • IsActive = true

    PhysicalMemoryThrottlingCriteria

  • OptimalUsage = 90

  • MaximalUsage = 95

  • IsActive = false

    下面对每一个属性详细说明。

脱水

MaxThresholdMinThreshold 是可在订阅中阻止业务流程的上限和下限(以秒表示 (即,在冻结前被接收、侦听或延迟) 阻止)。 还会有一个运行时计算的值,称为 TestThreshold,其值(以秒为单位)介于 MinThresholdMaxThreshold 之间

如果为 ConstantThreshold 设置的值不是默认值 -1,则没有运行时值 TestThreshold。 在订阅中阻止业务流程,并且该订阅中阻止该业务流程的所有实例的历史记录大于 TestThreshold 的值时,业务流程将解冻结。 否则,如果历史记录小于 TestThreshold 值,业务流程将不会冻结。 此外,即使历史记录指示冻结不会发生,如果当前阻塞时间达到 2*TestThreshold,也会发生冻结。 历史记录由最后 10 个等待时间的平均值定义(秒),或者历史记录中所有等待时间的平均值定义(如果等待次数少于 10)。

TestThreshold 的值随着内存使用量的增加而倾向于 MinThreshold 时,它被称为"基于内存的冻结限制"。基于内存的冻结限制允许更多业务流程实例运行,因为当任何业务流程实例被阻止时 (等待工作 (即等待消息或延迟) 时,它们可以解冻结并占用内存。 TestThreshold 是内存使用量的单调递减函数,与内存使用量成反比。

以下是各个冻结属性的说明:

  • MaxThreshold:在取消冻结业务流程之前,可以在订阅中阻塞业务流程的上限(以秒表示)。

  • MinThreshold:在取消冻结业务流程之前,在订阅中可以阻止业务流程的下限(以秒表示)。

  • ConstantThreshold:动态阈值,通常在指定的最小值和最大值之间波动。 不过,可通过设置此属性使阈值成为不变值。 如果值为 -1,表示引擎不使用常数阈值。 不要将此属性设置为除 -1 之外的值,因为这样会禁用基于冻结的阻止。

VirtualMemoryThrottlingCriteria

目前,虚拟内存会由于未托管的堆碎片而成为 32 位计算机上的瓶颈,因此,你应该根据此资源进行阻止。 你应该重新配置是否设置 /3GB 或者主机是否运行在 64 位平台上。 最佳使用量和最大使用量的单位为 MB。

以下是各个 VirtualMemoryThrottlingCriteria 属性的说明:

  • OptimalUsage:冻结限制开始生效的虚拟内存使用量。 此时, TestThreshold 的值为 MaxThreshold ,任何大于 OptimalUsage 的内存使用量都会导致 TestThreshold 小于 MaxThreshold

  • MaximumalUsage:冻结限制达到最大值的虚拟内存使用量。 此时, TestThreshold 的值为 MinThreshold ,任何小于 MaximalUsage 的内存使用量都会导致 TestThreshold 大于 MinThreshold

  • IsActive:一个布尔值,指示虚拟内存限制是否处于活动状态。

PrivateMemoryThrottlingCriteria

此属性是一个用于阻止的有用标准,但其值是否合适取决于计算机是否运行其他 Windows 服务。 如果计算机有大量内存,并且不与其他 Windows 服务共享,你可以大幅增加这些值。

以下是各个 PrivateMemoryThrottlingCriteria 属性的说明:

  • OptimalUsage:专用内存使用量(以 MB 为单位)开始生效的冻结限制。 此时 ,TestThreshold 的值为 MaxThreshold ,任何大于 OptimalUsage 的内存使用量都会导致 TestThreshold 小于 MaxThreshold

  • MaximumalUsage:专用内存使用量(以 MB 为单位)的最大冻结限制。 此时 ,TestThreshold 的值为 MinThreshold ,任何小于 MaximalUsage 的内存使用量都会导致 TestThreshold 大于 MinThreshold

  • IsActive:一个布尔值,指示专用内存限制是否处于活动状态。

PhysicalMemoryThrottlingCriteria

另外,还有物理内存阻止,其度量单位为内存使用百分比,而不是 MB。 默认情况下,此属性禁用,但你可以根据需要启用它。

以下是各个 PhysicalMemoryThrottlingCriteria 属性的说明:

  • OptimalUsage:用于主机实例的最佳物理内存百分比。

  • MaximumalUsage:要用于主机实例的物理内存的最大百分比。

  • IsActive:指示物理内存限制是否处于活动状态的布尔值。

冻结属性行为

BizTalk Server 使用这些冻结属性来确定何时对业务流程冻结和解除冻结。 在正常的负载下,默认冻结值就足够了,但如果运行在较高的负载下,并且希望改变性能特征,应自己进行优化。

BizTalk Server 的冻结行为完全取决于有多少内存可用以及有多少内存正在使用中。 由于内存量不同以及 32 位和 64 位主机内存使用量不同,冻结行为也不同。

对于业务流程主机,冻结属性分“专用字节”和“虚拟字节”:

  • 虚拟字节数。 这是进程使用的虚拟地址空间的当前大小(以字节为单位)。 使用虚拟地址空间不一定意味着要使用磁盘或主内存页。 虚拟空间是有限的,进程可以限制其加载库的能力。

  • 专用字节数。 是此进程分配的不能与其他进程共享的内存量的当前大小(以字节为单位)。