冻结默认属性

以下是冻结属性的名称及其默认值。 这些属性可在 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

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

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

PrivateMemoryThrottlingCriteria

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

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

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

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

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

PhysicalMemoryThrottlingCriteria

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

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

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

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

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

冻结属性行为

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

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

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

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

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