SAP IQ 缓冲区高速缓存监控器的 调试输出有一个有趣的线程部分,可以在其中收集详细的线程信息。通过 sp_iqsysmon 过程也可以获得相同的信息。
从示例报表中:
ThreadLimit= 1499 ( 100.0 %)
ThrNumThreads= 1499 ( 100.0 %)
ThrReserved= 566 ( 37.8 %)
ThrNumFree= 787 ( 52.5 %)
NumThrUsed 712 ( 47.5 %)
我们注意到此示例中的一些内容。
首先,ThreadLimit 始终等于 ThrNumThreads,始终为 -iqmt 减去 1 的值,或计算的总线程数缺省值减一。SAP IQ 保留一个线程以供紧急连接使用。上述 1499 来自将 -iqmt 设置为 1500 的系统。
秒,(ThrNumFree + NumThrUsed) 始终等于 ThreadLimit。在任何时间点,可用线程数加上使用的数量等于可用线程总数。NumThrUsed 没有计数器;其计算方式为 (ThreadLimit - ThrNumFree)。
SAP IQ 通过 ThrReserved 计数保留线程。这通常表示连接线程池中的线程数。此计数器与其他计数器没有直接关系 -- -- 它可能会稍有波动,而不会看到其他计数器向上或向下移动相同的数量。轻微波动来自为 I/O 操作预留的线程。
通过 ThrNumFree 跟踪可用线程。这表示可用于所有服务器活动的线程数:连接线程和服务器线程。当 ThrNumFree 显示与 ThrReserved 相同的数字时,这意味着正在使用所有可用的工作线程,并且只有那些为连接保留的工作线程可用。如果出现这种情况,或发现它们接近于数值时,建议使用 -iqmt 来提供更多工作线程。