BizTalk 进程 BTSNTSvc.exe 定义为在内存无法释放不再需要的内存时发生内存泄漏,从而减少一段时间内的可用内存量。 可以通过查看任务管理器中可用的“进程”选项卡的“Mem 使用情况”列下的值来确定进程的内存使用情况。 如果进程在一段时间内继续消耗内存而不释放内存,则整体系统性能将受到不利影响。
本主题包含关于如何捕获 BizTalk 进程的内存转储的说明,该进程被怀疑泄漏内存。可以使用规则捕获内存转储,也可以手动执行此操作。 如果内存泄漏的发生不可预测,请使用捕获内存转储的手动方法。
使用规则捕获内存泄漏进程的内存转储
从开始、所有程序、IIS 诊断、调试诊断工具、调试诊断工具 1.0启动调试诊断工具。
如果未显示“选择规则类型”对话框,请单击“工具”菜单,选择“规则操作”,然后单击“添加规则”以显示“添加规则向导”。
在“选择规则类型”对话框中选择“内存和处理泄漏”选项,然后单击“下一步”。
选择涉嫌泄漏内存的 BTSNTSvc.exe 进程,然后单击“ 下一步”。
在 “配置跟踪持续时间 ”对话框中,执行以下步骤:
如果观察到的进程内存增长立即发生,请在 激活规则时立即选中“启动内存跟踪”选项。 如果观察到的进程内存增长不会立即发生,请在 “预热时间 ”文本框中指定适当的分钟数,之后将启动内存跟踪。
注释
如果在将特定组件加载到内存时导致内存泄漏,例如 BizTalk 业务流程引用外部组件,则观察到的进程内存增长可能不会立即发生。
在 “跟踪时间 ”文本框中指定适当的分钟数,之后内存跟踪将停止。 这应该是足够长的几分钟,以便重现内存泄漏。 在这个时间段结束后,将会捕获该进程的内存转储。
选中“ 自动创建崩溃规则”选项,以获取意外进程退出时的用户转储。
单击 “下一步” 。
在 “选择转储位置和规则名称 ”对话框中,单击“ 下一步 ”接受默认值。
在“ 规则完成 ”对话框中,单击“ 完成 ”以接受 “立即激活规则”的默认值。
默认情况下,在配置跟踪持续时间对话框中指定的时间间隔过后,进程内存转储将保存到本地计算机的 \Program Files\IIS Resources\DebugDiag\Logs\<name of crash rule> directory。
手动捕获发生内存泄漏的进程的内存转储
从开始、所有程序、IIS 诊断、调试诊断工具、调试诊断工具 1.0启动调试诊断工具。
如果显示“添加 规则向导”的“选择规则类型 ”对话框,请单击“ 取消”。
单击以选择调试诊断工具的“ 进程 ”选项卡。
右键单击涉嫌泄漏内存的 BTSNTSvc.exe 进程,然后单击“监视泄漏”。
监视 任务管理器 中进程的内存使用情况,以及当进程的内存使用率接近 60-80% BizTalk 计算机上可用的内存时;右键单击进程并选择“ 创建完整用户dump”选项,手动捕获进程的内存转储。
默认情况下,进程的内存转储将保存到本地计算机的 \Program Files\IIS Resources\DebugDiag\Logs\Misc\ 目录。