Analysis Services 中的服务器属性配置:
https://docs.microsoft.com/zh-cn/sql/analysis-services/server-properties/server-properties-in-analysis-services?view=sql-server-2017
线程池属性配置:
https://docs.microsoft.com/zh-cn/sql/analysis-services/server-properties/thread-pool-properties?view=sql-server-2017
msmdsrv.ini文件位置:E:\Program Files\Microsoft SQL Server\MSAS14.MSSQLSERVER\OLAP\Config
线程池属性参考
本节介绍在每个 Analysis Services 实例的 msmdsrv.ini 文件中找到的线程池属性。 这些属性中的一部分也出现在 SQL Server Management Studio 中。
按字母顺序列出属性。
“属性” | 类型 | Description | 默认 | 指导 |
---|---|---|---|---|
IOProcess \ Concurrency | double | 一个双精度浮点值,确定用于设置可同时排队的线程数目标的算法。 | 2.0 | 这是一项高级属性,除非有 Microsoft 技术支持的指导,否则不应更改此属性。 并发用于初始化线程池,这些线程池使用 Windows 中的 IO 完成端口来实施。 有关详细信息,请参阅 I/O 完成端口 。 仅适用于多维模型。 |
IOProcess \ GroupAffinity | string | 一个十六进制值的数组,这些值与系统上的处理器组相对应,用于设置 IOProcess 线程池中的线程与每个处理器组中的逻辑处理器的关联。 | none | 可以使用此属性创建自定义关联。 该属性默认为空。 有关详细信息,请参阅 设置 GroupAffinity 以便将线程关联到处理器组中的处理器 。 仅适用于多维模型。 |
IOProcess \ MaxThreads | ssNoversion | 有符号 32 位整数,用于指定线程池中要包含的最大线程数。 | 0 | 0 指示由服务器确定默认值。 默认情况下,服务器将此值设置为 64 或设置为逻辑处理器数的 10 倍,以较大者为准。 例如,在采用超线程的 4 核系统上,线程池最大值是 80 个线程。 如果将此值设置为负值,则服务器将该值乘以逻辑处理器数。例如,当在具有 32 个逻辑处理器的服务器上设置为 -10 时,最大值是 320 个线程。 最大值取决于按以前定义的任何自定义关联掩码可用的处理器数。 例如,如果您已将线程池关联设置为使用 32 个处理器中的 8 个,并且现在将 MaxThreads 设置为 -10,则线程池的上限将为 10 乘以 8(即 80 个线程)。 服务启动时,此线程池属性所使用的实际值即会写入 msmdsrv log 文件。 可在 Analysis Services 操作指南中找到有关优化线程池设置的详细信息。 仅适用于多维模型。 |
IOProcess \ MinThreads | ssNoversion | 一种 32 位有符号整数,用于指定为线程池预分配的最小线程数。 | 0 | 0 指示由服务器确定默认值。 默认情况下,最小值为 1。 如果将此值设置为负值,则服务器将该值乘以逻辑处理器数。 服务启动时,此线程池属性所使用的实际值即会写入 msmdsrv log 文件。 可在 Analysis Services 操作指南中找到有关优化线程池设置的详细信息。 仅适用于多维模型。 |
IOProcess \ PerNumaNode | ssNoversion | 有符号 32 位整数,用于确定为 msmdsrv 进程创建的线程池数。 | -1 | 有效值为 -1、0、1、2 -1 = 服务器根据 NUMA 节点数选择不同的 IO 线程池策略。在 NUMA 节点数少于 4 个的系统上,服务器行为与值为 0 时的行为相同(为系统创建一个 IOProcess 线程池)。 在具有 4 个或更多个节点的系统中,行为与 1 相同(为每个节点创建 IOProcess 线程池)。 0 = 禁用每节点 NUMA 多个线程池,以便 msmdsrv.exe 进程仅使用一个 IOProcess 线程池。 1 = 为每个 NUMA 节点启用一个 IOProcess 线程池。 2 = 每个逻辑处理器一个 IOProcess 线程池。 每个线程池中的线程数与逻辑处理器的 NUMA 节点关联,且理想处理器设置为逻辑处理器。 有关详细信息,请参阅 设置 PerNumaNode 以使 IO 线程与 NUMA 节点中的处理器关联 。 仅适用于多维模型。 |
IOProcess \ PriorityRatio | ssNoversion | 有符号 32 位整数,可用于确保即使高优先级队列不为空,有时也能执行低优先级线程。 | 2 | 这是一项高级属性,除非有 Microsoft 技术支持的指导,否则不应更改此属性。 仅适用于多维模型。 |
IOProcess \ StackSizeKB | ssNoversion | 一种 32 位有符号整数,可用于调整线程执行期间的内存分配。 | 0 | 这是一项高级属性,除非有 Microsoft 技术支持的指导,否则不应更改此属性。 仅适用于多维模型。 |
Parsing \ Long\ Concurrency | double | 一个双精度浮点值,确定用于设置可同时排队的线程数目标的算法。 | 2.0 | 这是一项高级属性,除非有 Microsoft 技术支持的指导,否则不应更改此属性。 并发用于初始化线程池,这些线程池使用 Windows 中的 IO 完成端口来实施。 有关详细信息,请参阅 I/O 完成端口 。 |
Parsing \ Long\ GroupAffinity | string | 一个十六进制值的数组,这些值与系统上的处理器组相对应,用于设置分析线程与每个处理器组中的逻辑处理器的关联。 | none | 可以使用此属性创建自定义关联。 该属性默认为空。 有关详细信息,请参阅 设置 GroupAffinity 以便将线程关联到处理器组中的处理器 。 |
Parsing \ Long\ NumThreads | ssNoversion | 有符号 32 位整数属性,用于定义可为长命令创建的线程数。 | 0 | 0 指示由服务器确定默认值。 默认行为是将 NumThreads 设置为绝对值 4,或逻辑处理器数的两倍,取两者中的较大值。 如果将此值设置为负值,则服务器将该值乘以逻辑处理器数。例如,当在具有 32 个逻辑处理器的服务器上设置为 -10 时,最大值是 320 个线程。 最大值取决于按以前定义的任何自定义关联掩码可用的处理器数。 例如,如果已将线程池关联设置为使用 32 个处理器中的 8 个,并且现在将 NumThreads 设置为 -10,则线程池的上限将为 10 乘以 8,即 80 个线程。 服务启动时,此线程池属性所使用的实际值即会写入 msmdsrv log 文件。 |
Parsing \ Long\ PriorityRatio | ssNoversion | 有符号 32 位整数,可用于确保即使高优先级队列不为空,有时也能执行低优先级线程。 | 0 | 这是一项高级属性,除非有 Microsoft 技术支持的指导,否则不应更改此属性。 |
Parsing \ Long\ StackSizeKB | ssNoversion | 一种 32 位有符号整数,可用于调整线程执行期间的内存分配。 | 0 | 这是一项高级属性,除非有 Microsoft 技术支持的指导,否则不应更改此属性。 |
Parsing \ Short \ Concurrency | double | 一个双精度浮点值,确定用于设置可同时排队的线程数目标的算法。 | 2.0 | 这是一项高级属性,除非有 Microsoft 技术支持的指导,否则不应更改此属性。 并发用于初始化线程池,这些线程池使用 Windows 中的 IO 完成端口来实施。 有关详细信息,请参阅 I/O 完成端口 。 |
Parsing \ Short \ GroupAffinity | string | 一个十六进制值的数组,这些值与系统上的处理器组相对应,用于设置分析线程与每个处理器组中的逻辑处理器的关联。 | none | 可以使用此属性创建自定义关联。 该属性默认为空。 有关详细信息,请参阅 设置 GroupAffinity 以便将线程关联到处理器组中的处理器 。 |
Parsing \ Short \ NumThreads | ssNoversion | 有符号 32 位整数属性,用于定义可为短命令创建的线程数。 | 0 | 0 指示由服务器确定默认值。 默认行为是将 NumThreads 设置为绝对值 4,或逻辑处理器数的两倍,取两者中的较大值。 如果将此值设置为负值,则服务器将该值乘以逻辑处理器数。例如,当在具有 32 个逻辑处理器的服务器上设置为 -10 时,最大值是 320 个线程。 最大值取决于按以前定义的任何自定义关联掩码可用的处理器数。 例如,如果已将线程池关联设置为使用 32 个处理器中的 8 个,并且现在将 NumThreads 设置为 -10,则线程池的上限将为 10 乘以 8,即 80 个线程。 服务启动时,此线程池属性所使用的实际值即会写入 msmdsrv log 文件。 |
Parsing \ Short \ PriorityRatio | ssNoversion | 有符号 32 位整数,可用于确保即使高优先级队列不为空,有时也能执行低优先级线程。 | 0 | 这是一项高级属性,除非有 Microsoft 技术支持的指导,否则不应更改此属性。 |
Parsing \ Short \ StackSizeKB | ssNoversion | 一种 32 位有符号整数,可用于调整线程执行期间的内存分配。 | 64 * 逻辑处理器数 | 这是一项高级属性,除非有 Microsoft 技术支持的指导,否则不应更改此属性。 |
Process \ Concurrency | double | 一个双精度浮点值,确定用于设置可同时排队的线程数目标的算法。 | 2.0 | 这是一项高级属性,除非有 Microsoft 技术支持的指导,否则不应更改此属性。 并发用于初始化线程池,这些线程池使用 Windows 中的 IO 完成端口来实施。 有关详细信息,请参阅 I/O 完成端口 。 |
Process \ GroupAffinity | string | 一个十六进制值的数组,这些值与系统上的处理器组相对应,用于设置处理线程与每个处理器组中的逻辑处理器的关联。 | none | 可以使用此属性创建自定义关联。 该属性默认为空。 有关详细信息,请参阅 设置 GroupAffinity 以便将线程关联到处理器组中的处理器 。 |
Process \ MaxThreads | ssNoversion | 有符号 32 位整数,用于指定线程池中要包含的最大线程数。 | 0 | 0 指示由服务器确定默认值。 默认情况下,服务器将此值设置为绝对值 64,或逻辑处理器数,取两者中的较大值。 例如,在启用超线程的 64 核系统上(一共 128 个逻辑处理器),线程池最大值是 128 个线程。 如果将此值设置为负值,则服务器将该值乘以逻辑处理器数。例如,当在具有 32 个逻辑处理器的服务器上设置为 -10 时,最大值是 320 个线程。 最大值取决于按以前定义的任何自定义关联掩码可用的处理器数。 例如,如果您已将线程池关联设置为使用 32 个处理器中的 8 个,并且现在将 MaxThreads 设置为 -10,则线程池的上限将为 10 乘以 8(即 80 个线程)。 服务启动时,此线程池属性所使用的实际值即会写入 msmdsrv log 文件。 可在 Analysis Services 操作指南中找到有关优化线程池设置的详细信息。 |
Process \ MinThreads | ssNoversion | 一种 32 位有符号整数,用于指定为线程池预分配的最小线程数。 | 0 | 0 指示由服务器确定默认值。 默认情况下,最小值为 1。 如果将此值设置为负值,则服务器将该值乘以逻辑处理器数。 服务启动时,此线程池属性所使用的实际值即会写入 msmdsrv log 文件。 可在 Analysis Services 操作指南中找到有关优化线程池设置的详细信息。 |
Process \ PriorityRatio | ssNoversion | 有符号 32 位整数,可用于确保即使高优先级队列不为空,有时也能执行低优先级线程。 | 2 | 这是一项高级属性,除非有 Microsoft 技术支持的指导,否则不应更改此属性。 |
Process \ StackSizeKB | ssNoversion | 一种 32 位有符号整数,可用于调整线程执行期间的内存分配。 | 0 | 这是一项高级属性,除非有 Microsoft 技术支持的指导,否则不应更改此属性。 |
Query \ Concurrency | double | 一个双精度浮点值,确定用于设置可同时排队的线程数目标的算法。 | 2.0 | 这是一项高级属性,除非有 Microsoft 技术支持的指导,否则不应更改此属性。 并发用于初始化线程池,这些线程池使用 Windows 中的 IO 完成端口来实施。 有关详细信息,请参阅 I/O 完成端口 。 |
Query \ GroupAffinity | string | 一个十六进制值的数组,这些值与系统上的处理器组相对应,用于设置处理线程与每个处理器组中的逻辑处理器的关联。 | none | 可以使用此属性创建自定义关联。 该属性默认为空。 有关详细信息,请参阅 设置 GroupAffinity 以便将线程关联到处理器组中的处理器 。 |
Query \ MaxThreads | ssNoversion | 有符号 32 位整数,用于指定线程池中要包含的最大线程数。 | 0 | 0 指示由服务器确定默认值。 默认情况下,服务器将此值设置为绝对值 10 或逻辑处理器数的 2 倍,以较大者为准。 例如,在 4 核超线程系统上,最大线程数 16。 如果将此值设置为负值,则服务器将该值乘以逻辑处理器数。例如,当在具有 32 个逻辑处理器的服务器上设置为 -10 时,最大值是 320 个线程。 最大值取决于按以前定义的任何自定义关联掩码可用的处理器数。 例如,如果您已将线程池关联设置为使用 32 个处理器中的 8 个,并且现在将 MaxThreads 设置为 -10,则线程池的上限将为 10 乘以 8(即 80 个线程)。 服务启动时,此线程池属性所使用的实际值即会写入 msmdsrv log 文件。 可在 Analysis Services 操作指南中找到有关优化线程池设置的详细信息。 |
Query \ MinThreads | ssNoversion | 一种 32 位有符号整数,用于指定为线程池预分配的最小线程数。 | 0 | 0 指示由服务器确定默认值。 默认情况下,最小值为 1。 如果将此值设置为负值,则服务器将该值乘以逻辑处理器数。 服务启动时,此线程池属性所使用的实际值即会写入 msmdsrv log 文件。 可在 Analysis Services 操作指南中找到有关优化线程池设置的详细信息。 |
Query \ PriorityRatio | ssNoversion | 有符号 32 位整数,可用于确保即使高优先级队列不为空,有时也能执行低优先级线程。 | 2 | 这是一项高级属性,除非有 Microsoft 技术支持的指导,否则不应更改此属性。 |
Query \ StackSizeKB | ssNoversion | 一种 32 位有符号整数,可用于调整线程执行期间的内存分配。 | 0 | 这是一项高级属性,除非有 Microsoft 技术支持的指导,否则不应更改此属性。 |
VertiPaq \ CPUs | ssNoversion | 一种 32 位有符号整数,用于指定要用于表格查询的最大处理器数。 | 0 | 0 指示由服务器确定默认值。 默认情况下,服务器将此值设置为绝对值 10 或逻辑处理器数的 2 倍,以较大者为准。 例如,在 4 核超线程系统上,最大线程数 16。 如果将此值设置为负值,则服务器将该值乘以逻辑处理器数。例如,当在具有 32 个逻辑处理器的服务器上设置为 -10 时,最大值是 320 个线程。 最大值取决于按以前定义的任何自定义关联掩码可用的处理器数。 例如,如果您已将线程池关联设置为使用 32 个处理器中的 8 个,并且现在将 MaxThreads 设置为 -10,则线程池的上限将为 10 乘以 8(即 80 个线程)。 服务启动时,此线程池属性所使用的实际值即会写入 msmdsrv log 文件。 |
VertiPaq \ GroupAffinity | string | 一个十六进制值的数组,这些值与系统上的处理器组相对应,用于设置处理线程与每个处理器组中的逻辑处理器的关联。 | none | 可以使用此属性创建自定义关联。 该属性默认为空。 有关详细信息,请参阅 设置 GroupAffinity 以便将线程关联到处理器组中的处理器 。 仅适用于表格。 |