运行时线程池配置
资产网关和企业网关运行时组件的实现包括一个可配置的工作线程池。这些线程是在运行时进程的上下文中运行的操作系统线程。这些工作线程执行各种任务,包括支持:
- 执行触发器动作
- 读取设备变量
- 与外部进程的通信,包括工作台和事务服务器。
工作线程池的原始实现将被称为线程池 V2.0。
线程池 V2.0 是资产网关和企业网关的默认配置。其功能可以根据您的系统和应用设计和资源使用量进行配置。
对于一些资源使用量高的应用程序,线程池 V2.0 的实现和可配置的功能提供了应用设计和资源使用量所需的系统行为改进。
运行时线程池选项
线程池的配置是一个高级主题。在大多数情况下,将根据您与您的支持代表的互动,将您引导到这些信息和配置选项。
线程池属性、系统变量和默认值
其中一些属性存在于属性文件中。其他属性不存在于提供的属性文件中,但在代码中有一个默认值。
对于一个节点来说,许多属性及其当前值可以通过 Workbench(工作台) -> Administration(帐户管理) -> System Variables(系统变量)选项卡来查看。
以下部分列出的默认值是大多数资产网关和企业网关产品的默认值。一些系统资源有限的产品对某些属性有不同的默认值。如果有问题,可以通过 Workbench(工作台) -> Administration(帐户管理) -> System Variables(系统变量)选项卡查看节点的值。
线程池 V2.0
线程池 V2.0 实现的可配置功能的可用属性,以及相关的系统变量有:
- 最小线程数:
- 这个概念已移除。没有使用 pool.threads.min 属性。
- 这个概念已移除。没有使用 pool.threads.min 属性。
- 最大线程数:
- 没有使用线程池 V1.0 属性 pool.threads.max,而是使用 pool.v2.threads.max。
- 运行时初始化期间启动的工作线程数。
- 如果当前的、正在使用的工作线程数量达到这个最大值,则不会创建新的工作线程。
- 取而代之的是,对新的工作项进行排队,等待当前工作线程完成其工作项并可用于处理排队的工作项。
- 默认值为:
- 资产网关:pool.v2.threads.max=120。
- 企业网关:pool.v2.threads.max=500。
- 系统变量为:pool.v2.threads.max。
- 工作线程限制器计数。在线程池 V2.0 实现中,这是一个线程数,而不是最大线程数的百分比:
- 没有使用线程池 V1.0 的属性 pool.limiter.count,而是使用 pool.v2.limiter.count。
- 当达到工作线程计数限制时,系统将创建一个队列,并将该特定任务工作类型的所有新工作项放入该队列中。
- 默认值为:
- 资产网关:pool.v2.limiter.count=40。
- 企业网关:pool.v2.limiter.count=150。
- 系统变量为:pool.v2.limiter.count。
- 线程堆栈大小:
- 每个工作线程的堆栈大小,以字节为单位。
- 默认值是:pool.threads.stack=65536。
- 系统变量为:pool.queue.threads.stack。
属性文件管理
有关属性文件管理的信息,包括在产品安装或产品更新期间的文件覆盖,请参见属性文件管理。